Skip to content
GBTI
VSCode Extension: Terminal Session Profiles icon

DevOps › IDE Plugins

VSCode Extension: Terminal Session Profiles

Save your VS Code terminals as one-click profiles and get them back, still running, after a restart. Built for long-lived agent sessions, with an optional column layout for the Explorer, editor, terminal and chat panes.

VSCode Extension: Terminal Session Profiles
v0.2.2 Free

The rise of coding agent tools such as Claude Code has made terminal management a much more central part of the day-to-day development workbench. Terminals are no longer temporary scratch space. They often represent distinct, long-running parts of a project, each with its own name, working directory, and purpose.

Our own terminal configuration commonly includes several named Claude Code sessions, each with its own name inside Claude Code and remote control enabled by default. We also tend to keep one PowerShell terminal open for running Windows commands and one WSL terminal for working directly within Windows Subsystem for Linux. It is therefore not unusual for us to have three to five terminal tabs open within a single project.

VS Code already supports persistent terminal sessions, but its native features are spread across terminal profiles, tasks, settings, and workspace permissions.

Terminal Session Profiles brings those pieces into one UI and adds reusable workspace or global profiles, ordered startup commands, automatic reprovisioning, and optional Claude session resume commands.

Terminal session profile manager

A profile is a saved terminal setup: which shell to open, where, and what to run once it is ready. Create one from the sidebar’s +, or right-click any terminal and choose Save as Instance Profile to start from a terminal you already have open.

The Session Profiles view, with a profile launching an agent in the terminal column

Profiles can be created from the Session Profiles sidebar or saved from a terminal that is already open. Once created, each profile remains available within the project and can be launched whenever it is needed.

A typical project might include separate profiles for several named Claude Code sessions, a development server, a build watcher, a general PowerShell terminal, and a WSL terminal. Instead of manually rebuilding each of these environments, they become reusable parts of the project.

Each profile includes:

  • A profile name
  • A shell
  • A working directory
  • An ordered list of commands

The profile editor showing the profile name, shell, working directory, and ordered commands

Commands are replayed literally and in the order they are written. Every command except the final one is awaited before the next begins. This allows a profile to prepare an environment before launching a long-running process such as an agent, development server, or file watcher.

For example, a profile can use:

claude --resume ClaudeCodeSessionName

to reopen a particular named Claude Code session.

This allows each terminal profile to correspond directly with a specific Claude Code session. A project can maintain several independently named agents, each launched in the correct working directory with its intended session restored.

Commands are not limited to coding agents. A profile can also activate an environment, start a local server, launch a build process, open a project-specific shell, or perform any other command-line preparation the project requires.

Profiles can optionally be added to the terminal + dropdown as named terminal profiles. This allows them to remain accessible through VS Code’s familiar terminal controls while still benefiting from the command replay managed by the extension.

Restoring profiles after a restart

VS Code includes native terminal persistence, but restoring a terminal tab is not necessarily the same as restoring the terminal session that previously occupied it.

A restored tab may retain its old name and scrollback while reopening as a new default shell with none of its previous processes running. The tab looks familiar, but the environment it represented is no longer there.

Terminal Session Profiles handles the other half of that recovery.

Profiles that were running are remembered per workspace. When the project is opened again, the extension identifies the restored terminal tabs associated with those profiles and relaunches them using the correct shell, working directory, and command sequence.

Restoration happens automatically by default. It can also be started manually through the Restore control in the status bar.

Before replacing a restored terminal, the extension compares the process recorded when the profile was launched with the process that returned. If the original process genuinely survived, the terminal is left alone rather than being terminated and recreated.

The objective is simple: reopening a project should also restore the terminal environment that belongs to it.

Optional workspace layout

By default, VS Code places the terminal in a horizontal panel beneath the primary workspace, while the Explorer, editor, and AI chat interface occupy the taller areas above it. This arrangement reflects a workflow in which the terminal is treated as a supporting tool rather than one of the main places where work happens.

That was no longer true for us. As Claude Code and other terminal-based tools became a larger part of our development process, the terminal became just as central as the editor, and sometimes more important. We wanted the option to bring it into the primary workspace as its own column, alongside the Explorer, editor, and chat interface, rather than leaving it confined to a secondary row at the bottom of the IDE.

Four columns, one keystroke each: Explorer, editor, terminal, and chat with their status bar controls

Once each of these areas became a meaningful part of the daily workbench, we also needed better ways to control focus and move quickly between them. The layout enhancements provide status-bar controls for showing and hiding the Explorer, editor, terminal, and chat areas, with each workspace remembering its own arrangement.

The layout controls VS Code’s real interface containers rather than replacing or recreating them. The Explorer remains the standard Explorer. The terminal retains its normal terminal list and controls. Claude Code, Codex, and other chat interfaces continue to operate within their existing panels.

This is important because the layout enhancement does not attempt to introduce a replacement workspace. It provides faster controls for arranging the tools already present in VS Code.

One column always remains visible, preventing the workspace from being reduced to an empty window. A Reset Layout command restores the standard arrangement whenever needed.

We felt these improvements belonged naturally within the same extension because they address the workspace surrounding the terminal sessions it manages. The layout remains entirely optional and can be disabled through the extension settings without affecting session profiles, command replay, or terminal restoration.

Independent features

The terminal session profile manager and the column layout are related enhancements, but neither depends on the other.

Disabling the column layout does not disable profiles. Saved profiles can still be launched, their commands can still be replayed, and active profile sessions can still be restored when a project reopens.

Layout preferences are also remembered separately for each workspace. A project in which the layout has been disabled will remain that way across restarts, while another workspace can continue using the column arrangement.

There is deliberately no master switch inside the extension that disables every feature at once. The column controls manage the layout, while the session settings manage profile restoration. The extension itself can still be disabled through VS Code’s Extensions view.

Keyboard and workspace controls

The extension includes commands for managing profiles, restoring sessions, navigating the column layout, and resetting the workspace.

Default shortcuts include:

ActionShortcut
Toggle ExplorerCtrl+Alt+1
Toggle editorCtrl+Alt+2
Toggle terminalCtrl+Alt+3
Toggle chatCtrl+Alt+4
Open a new terminal in the terminal columnCtrl+Shift+`
Grow the focused columnCtrl+Alt+Right
Shrink the focused columnCtrl+Alt+Left

Additional commands are available through the Command Palette and status-bar controls for creating profiles, editing profiles, restoring the last session, enabling or disabling the layout, and resetting the workspace arrangement.

Install

Search for Terminal Session Profiles in the VS Code Extensions view.

You can also install it through Quick Open with Ctrl+P:

ext install GBTI.gbti-terminal-sessions

Terminal Session Profiles is published through the Visual Studio Marketplace as:

GBTI.gbti-terminal-sessions

It is also available through Open VSX for VSCodium and compatible editors.

Terminal Session Profiles is free, open source, and licensed under MIT.

A creator network, powered by Git

Join the GBTI Network

The GBTI Network is a creator network. Members showcase their work, write articles, share in network profits, and meet in weekly coaching calls with the community.

Publish your profile, blog posts, products, and prompts
Share in network profits
Join weekly coaching calls with the community

A 90-day limited-access trial lets you evaluate the community first, no card required. Full membership unlocks your public presence on the network: your profile, blog, products, and prompts.

Become a member You are reading atwellpub's work. Joining from this page credits atwellpub.

Written by

Hudson Atwell

Gethsemane, LLC Published 4th Aug 2026

View profile

From the author

atwellpub

Multiple terminals are now a staple of ongoing development work. Instead of rebuilding named Claude sessions, servers, PowerShell tabs, and WSL environments each time VS Code restarts, Terminal Session Profiles saves the complete setup and brings it back ready to use.

0 Comments

No comments yet. Be the first. Members comment from the GBTI local client, where comments are submitted as pull requests and auto-published for paid members.

Become a member

Members write comments from the GBTI client or browser extension. Become a member to join the conversation.

You are signed in as a member. .

Sign in to GBTI Network

Sign in on the web with GitHub to save, collect, and follow. To edit and publish your own content in place, add the free GBTI browser extension too.

Read about member benefits