SessionDeck is a VS Code and Cursor extension that tracks every Claude Code, Codex CLI and Cursor agent session on your machine in one sidebar tree, grouped by project. Each row shows whether the session is working, waiting on you, finished or idle, and a click takes you to it.
VS Code Marketplace · Open VSX (Cursor) · GitHub · Questions
Install SessionDeck from the VS Code Marketplace (or Open VSX for Cursor). It reads each session's transcript and process state on disk, so every Claude Code session shows up as a row under its project, whichever window, terminal or tmux pane it runs in.
Each row carries a status: working, waiting on you, finished but unread, finished, or idle. Clicking a row opens its Claude tab, even in another window, or the terminal it runs in.
A Claude Code session that stops for a permission prompt or a question gets a red bell in the tree, and the activity bar and status bar count those sessions. Ctrl+Alt+] jumps to the one that has waited longest (Cmd+Alt+] on macOS).
Seeing permission prompts needs the Claude Code hooks that the SessionDeck: Install Hooks command adds; without them a waiting session looks like it is still working. Status is inferred from files on disk, so a row can lag for a moment.
With hooks installed, SessionDeck shows an editor notification that names what the session wants, for example permission to use Bash, with an Open button. Two settings, both off by default, reach you while the editor window is unfocused: sessionDeck.unfocusedSound and sessionDeck.unfocusedOsNotification.
Approval alerts need Linux, WSL or macOS; native Windows has no hooks, so there is no alert there. No notification is sent when a session finishes: its row turns to finished, unread instead.
Partly. The Agents window and the Chat view's sessions list manage sessions that run through VS Code's own agent harnesses: Copilot, Claude, and an experimental Codex integration. VS Code's documentation says it can also discover Claude Code and Codex sessions created in other applications so you can open and continue them; those external sessions are hidden until you change the External filter.
The documentation does not describe a live waiting-for-approval status for those external sessions. SessionDeck watches the running sessions themselves and gives each one a status row, in VS Code or Cursor.
Yes. Sessions started in a plain terminal, inside tmux, by cron, over SSH, or by an app built on the Agent SDK all appear in the tree, and sessions outside the editor get a small ↗ badge. Clicking a tmux session shows a rendered copy of its last message, and Move into Editor stops the outside process and resumes the same session in a Claude tab or terminal tab.
If you work in remote windows (SSH, WSL, containers), the SessionDeck Bridge companion shows each remote host as its own section in your local tree. Remote rows are read-only.
Yes. Install it from Open VSX: search for SessionDeck in Cursor's Extensions view, or run cursor --install-extension len5ky.sessiondeck. It shows Claude Code, Codex CLI and cursor-agent sessions.
Cursor's own Composer chats appear only after you run SessionDeck: Enable Cursor Monitoring, which adds a marked section to ~/.cursor/hooks.json. Codex, cursor-agent and Composer rows show working, idle and finished-unread, never a red bell, because those tools write no approval state to disk.
Yes. Running codex and codex exec sessions appear under their projects next to your Claude Code sessions, with working, idle and finished-unread states, and you can click through to them.
Codex writes no approval state to disk, so a Codex session waiting on approval shows as working or idle and never raises a notification.
Files. It reads the tail of each Claude Code transcript in your config homes (~/.claude and any others), Codex rollout files, Cursor's local store.db, the editor's tab-title storage, and on Linux the process table in /proc to confirm a session is still alive.
Install Hooks adds Stop, Notification and UserPromptSubmit entries to Claude's settings.json (backed up first) and a small script that appends events to a file under ~/.local/state/claude-overview/. The extension makes no network calls, licensing included.
No. It is source-available: the code is public at github.com/len5ky/sessiondeck under a custom license that lets you read it and change it for your own use, but not resell it or share modified copies. The SessionDeck Bridge companion is MIT licensed.
The first 3 days are unlimited. After that, 3 sessions stay free for good (subagents and remote hosts do not count), with no key or account. A license costs $5.99 a month or $18.99 once, plus tax where applicable, per person on any number of machines.
VS Code's Agents window is where you start and steer agent sessions that run inside VS Code: Copilot, Claude, and an experimental Codex integration. According to VS Code's documentation it can also list Claude Code and Codex sessions created in other applications, hidden by default, so you can open and continue them there.
SessionDeck does not start agents or approve anything for them. It watches the sessions already running, whether they were started from an editor tab, a terminal, tmux, cron or over SSH, and shows a status for each one, with a red bell when a Claude Code session waits for permission. It runs in Cursor as well as VS Code, and with the bridge it adds remote hosts to the same tree. It does not show Copilot sessions.
The two fit together. For agents you run through VS Code's own harnesses, the Agents window is the place to manage them. For CLI agents spread across terminals, windows and projects, SessionDeck shows which one is waiting on you.
Agents window details: Manage agent sessions in VS Code.