Agent Shells
Launch and manage Claude, Codex, opencode, and Lore sessions in VS Code editor
terminals. Sessions open as tabs beside your files, survive window reloads, and
come back with their titles and activity in a Secondary Side Bar view.
Features
- Native terminal sessions: Each agent runs in a real VS Code editor
terminal, so scrollback, wheel scrolling, and text selection behave exactly
as in a normal terminal. A new session opens as a tab in the editor group you
are working in.
- Sessions survive reloads: Reloading the window reconnects the live agent
process. Quitting VS Code or closing the window ends the agent, and the next
launch resumes the same conversation in its original working directory. To
restart a session after its window closes, the extension sets
terminal.integrated.persistentSessionReviveProcess to
onExitAndWindowClose by default. VS Code applies this to every terminal,
and your own value for the setting takes precedence.
- Live session view: The view in the Secondary Side Bar lists every active
session. A spinner shows while the agent works, and an attention icon shows
while it waits for your approval or input. A Claude session keeps its spinner
while a background shell, subagent, or Monitor watcher it started is still
running.
- Titles from the agent: Each row shows the title Claude, Codex, or
opencode gave the session. Until a title exists, the row shows a short form
of your first prompt.
- Prompt cache hint: An idle Claude or Codex session whose provider prompt
cache has probably expired gains a watch symbol in its title while the agent
icon stays, and its tooltip says so. Claude caches for 5 minutes or 1 hour
depending on your plan, and Codex for 30 minutes. The next message to an
expired session starts without that cache.
- Lore chat: Lore runs Claude Code as a chat over a personal wiki. When its
lore command is installed, Start Lore opens a Lore chat from any window,
with or without a folder open, and Past Sessions lists every Lore chat. The
lore command loads no Claude hooks, so a Lore chat's working and waiting
state comes from its transcript alone and an approval prompt shows no
attention icon.
- Past Sessions: Resume any previous Claude, Codex, opencode, or Lore
session from the history picker. The trash action hides an unwanted entry
without touching provider data.
/usage dashboard: A terminal-style editor tab shows Claude and Codex
token usage from local provider records, refreshed every minute. Account
limits and credits need the separate status-line data in
Requirements.
- Full session control: Rename, close, interrupt, and copy session IDs from
the view. Ctrl+C interrupts the running agent. A second Ctrl+C within one
second closes the session. Option+Command+C copies all selected session IDs
from the view, or the active one while a managed terminal is focused.
- Read-only: The extension reads provider transcript stores and never
modifies them.
Requirements
Install VS Code 1.106
or newer on macOS or Linux. Session launch requires /bin/sh. Install and sign
in to each CLI you want to use through its official setup guide:
Claude Code,
Codex, or
opencode. Its command must be reachable from your
login shell. Provider service use requires that provider's account.
A Start button appears only for an agent CLI your login shell finds. After
installing a CLI, reload the window.
The installed Codex CLI must expose codex app-server daemon start for
protocol access. A terminal can launch without the daemon, but Codex attention
and protocol access remain unavailable.
For opencode history, the VS Code Extension Host must provide node:sqlite.
When the host does not provide it, opencode history is empty.
Account limits and credits in /usage require a separate status-line producer.
It must provide statusline-command.sh and statusline-cost-state.json in the
Claude configuration directory under your home directory. Agent Shells does not
install that producer. Without it, local transcript usage remains available,
but account fields without state show as unavailable.
Getting started
- Install Agent Shells from the Marketplace.
- Open the Secondary Side Bar from the View menu and select the Agent Shells
icon.
- Select the Claude, Codex, opencode, or Lore symbol to start a session.
- Select
/usage to open the usage dashboard.
Titles come from the agent. Use the pencil beside a session, or Agent Shells:
Rename Session, to set your own. A manual title is never replaced by the
agent's title.
Commands
| Command |
What it does |
Agent Shells: Start Claude |
Launch a Claude session in a terminal editor tab |
Agent Shells: Start Codex |
Launch a Codex session in a terminal editor tab |
Agent Shells: Start opencode |
Launch an opencode session in a terminal editor tab |
Agent Shells: Start Lore |
Launch a Lore chat in a terminal editor tab |
Agent Shells: Past Sessions |
Open the history picker for previous sessions |
/usage |
Open the usage dashboard |
Agent Shells: Rename Session |
Set a custom session title |
Agent Shells: Close Session |
End a session and remove its row from the view |
Agent Shells: Interrupt Active Session |
Interrupt the agent; a second Ctrl+C within one second closes the session |
Agent Shells: Copy Session ID |
Copy the selected provider session identifiers |
Settings
| Setting |
Default |
Description |
agentShells.experimentalCodexAttention |
true |
Show an attention icon while Codex waits for approval or input |
agentShells.experimentalRemoteSupervision and
agentShells.experimentalLocalWifiSupervision are experimental, unfinished,
and off by default. The development guide in the source repository describes
them.
Privacy
Agent Shells runs locally. It reads Claude, Codex, opencode, and Lore
transcript stores on your machine and modifies only its own extension state.
The extension itself makes no external calls; your agent CLIs connect to their
own services under your accounts.
License
MIT