[FEATURE] VS Code extension: session-list status indicators + notifications when a background session finishes or needs attention

Status Open
Reported on v2.1.212
Maintainer reply None cached
Activity 4 comments · opened Jul 17, 2026

Environment

  • Claude Code VS Code extension 2.1.212 (native panel UI, not integrated terminal)
  • VS Code on Windows connected via Remote-SSH to a Linux host (Claude Code runs on the remote)
  • Workflow: several parallel sessions open as editor tabs, plus the extension's session list in the sidebar

Problem

When running multiple sessions in parallel, there is no way to notice that a background session finished its turn or is waiting for input/permission without manually clicking through every tab:

  • The session list in the sidebar is static — it only shows the session title and relative time. No spinner for a running session, no dot/badge for one that needs attention.
  • The colored dot indicator only appears on hidden editor tabs, which is easy to miss and not visible at all when the tab bar is crowded or when working in another editor group.
  • The extension sends no OS/VS Code notifications when a session ends its turn or hits a permission prompt. preferredNotifChannel appears to be CLI-only and has no effect in the extension.
  • In the Remote-SSH scenario, Notification/Stop hooks run on the remote Linux host, so desktop-notification hooks (notify-send etc.) can't reach the local Windows desktop either. The extension UI is the only component that lives on the local machine — so it's the only place that could reliably alert the user.

The result: with 3–5 parallel sessions, finished or blocked sessions silently sit there and the user has to poll tabs by hand.

Feature request

  1. Live status in the session list: spinner while a session is working, a distinct needs-attention indicator (permission prompt / waiting for input), and a finished marker — so the sidebar list works as a glanceable dashboard for parallel sessions.
  2. Optional notifications from the extension when a session finishes its turn or needs permission — e.g. via the VS Code notifications API (toast + bell), which would work in Remote-SSH setups too since the VS Code UI runs locally. A setting to opt in/out (and ideally filter: permission-needed only vs. all turn-ends) would cover both quiet and noisy preferences.

Either of the two would already remove most of the pain; together they'd make parallel-session workflows genuinely usable in the extension.

View original on GitHub ↗

3 Comments

carlosdealmeida · 2 months ago

A partial answer while there's no native one, in case it helps — disclosure: I'm the author of the extension below.

Claude Todos adds a sidebar panel with the live state of the session it tracks (agent tree, task progress, timings, tokens/context) and fires native toasts when that session goes idle waiting for you, when all its tasks complete, or when it's explicitly waiting on an answer (AskUserQuestion / a plan awaiting approval). Toasts only fire when the window is unfocused, so it doesn't nag while you're looking at it. Sessions are switchable from a picker (Ctrl+Alt+S).

Two honest limits against what you asked for:

  • It tracks one session at a time (the most recently active, or one you pin), so it does not yet show per-session status badges for every parallel session in a list — that's on my roadmap, not shipped.
  • Permission prompts aren't detectable from the transcripts, so "needs permission" isn't covered; idle / finished / waiting-for-answer are.

It reads ~/.claude/projects on whichever machine the extension host runs on — with Remote-SSH that's the remote, which is also where claude runs, though I haven't tested that setup myself. Also available for JetBrains IDEs. MIT, fully local: https://github.com/carlosdealmeida/claude-todos-vscode

kcarriedo · 2 months ago

The "polling tabs by hand" pattern you're describing is exactly where parallel-session workflows break down in practice. You end up spending more time checking on agents than actually doing the work they're supposed to free you from.

The two-part ask here is right. Status indicators in the sidebar are the minimum - even just a spinner vs. a checkmark vs. a needs-attention dot would cut the polling overhead significantly. The notification piece matters especially in your Remote-SSH scenario where the remote hooks can't reach the local desktop.

A few thoughts from running similar patterns at scale:

The "session finished" notification is more useful when it includes what the session stopped on - "finished turn" vs. "waiting for permission" vs. "hit an error" are very different situations and each calls for a different response. A generic done-ping without that context still makes you open the tab to find out.

For the VS Code extension specifically, the session list could surface the last tool call or a short status string (similar to what the desktop app's activity list shows) without the full transcript being visible. That turns the sidebar from a navigation list into a lightweight dashboard.

(I build Claudeverse which monitors parallel Claude Code session state locally - the same visibility gap is the most consistent thing people report as friction in multi-session workflows)

HensemLin · 1 month ago

Adding one case to the status-indicator ask, from a terminal setup rather than the extension: I run two or three sessions in parallel worktrees, with one session delegating to the others.

Your list has three states — working, needs attention, finished. The one that costs me the most time is a fourth that looks exactly like "working". A worker session ends its report with what it is about to do next — "fixing X next, with a test that fails on Y" — and then goes idle without ever starting it. The session delegating to it passes that sentence on to me as work in progress. Nothing has crashed and no status word is technically wrong: a stated intention has been read back to me as an observation, and I only find out when I open the tab.

So what I would push for is a last-activity timestamp in the sidebar rather than a status word. A status word cannot contradict itself. A row reading "working" next to "last activity 9 minutes ago" contradicts itself instantly, and that is the whole value. It also covers the case where no notification will ever fire, because nothing ever started.

Two questions for anyone here running several sessions at once. Nothing is built and nothing is for sale — I am trying to work out whether this is my setup or something general.

  1. On a normal working day, how many agent sessions do you have going at the same time — 1, 2-3, or more?
  2. What do you actually do today to tell whether they are still moving? Open each one and read, or have you got something better?

Showing cached comments. Read the full discussion on GitHub ↗