Webview panel tabs all show "Claude Code" — no way to distinguish multiple sessions

Resolved 💬 2 comments Opened Mar 15, 2026 by productstein Closed Mar 15, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Problem

When working with multiple Claude Code sessions across different projects, every tab displays the same title: "Claude Code". With 20+ sessions open, it's impossible to tell which tab belongs to which project without clicking through each one.

This is a significant UX issue for power users who work across multiple repositories simultaneously.

Current Behavior

  • createWebviewPanel("claudeVSCodePanel", "Claude Code", ...) hardcodes the title
  • The extension internally tracks per-session titles via updateSessionState(sessionId, state, title) but never applies them to the actual VS Code tab
  • No setting exists to customize tab naming

Proposed Solution

Option A: Workspace-aware tab titles (minimal change)

const folderName = vscode.workspace.workspaceFolders?.[0]?.name ?? "";
const title = folderName ? `Claude Code — ${folderName}` : "Claude Code";
createWebviewPanel("claudeVSCodePanel", title, ...);

Option B: Dynamic title updates (richer)
Use the already-tracked session title from updateSessionState() to set panel.title dynamically. This could reflect conversation topic, project name, or a user-chosen label.

Option C: User-configurable title format
Add a setting like claudeCode.tabTitleFormat with variables:

${workspaceFolder} — workspace name
${sessionIndex} — session number (1, 2, 3...)
${timestamp} — session start time
Default: "Claude Code — ${workspaceFolder}"

### Alternative Solutions

Include the workspace folder name in the tab title. Minimal change:

const folderName = vscode.workspace.workspaceFolders?.[0]?.name ?? "";
const title = folderName ? `Claude Code — ${folderName}` : "Claude Code";
createWebviewPanel("claudeVSCodePanel", title, ...);

For a richer approach, add a setting like claudeCode.tabTitleFormat with variables:
- ${workspaceFolder} — workspace name
- ${sessionIndex} — session number
- ${timestamp} — session start time

Default: "Claude Code — ${workspaceFolder}"

- Terminal mode (claudeCode.useTerminal: true) supports the CLAUDE_CODE_TERMINAL_TITLE env var, but loses the rich webview UI
- Investigated building an external extension to rename tabs, but VS Code's WebviewPanel.title is only accessible to the owning extension — no external workaround is possible
- VS Code workspace color customizations can tint tab bars but don't scale to 20+ sessions


### Priority

High - Significant impact on productivity

### Feature Category

Interactive mode (TUI)

### Use Case Example

Use Case Example:


1. I have 20 projects open in separate VS Code windows
2. Each window has a Claude Code session running
3. When switching between windows or using the tab picker, all 20 show "Claude Code"
4. I have to click into each tab to figure out which project it belongs to
5. With workspace-aware titles, I'd instantly see "Claude Code — holomime" vs "Claude Code — TheWay" vs "Claude Code — game"
Additional Context:


Investigated the extension source (v2.1.76). The fix is ~3 lines in setupPanel() where createWebviewPanel() is called. The internal session state system already tracks titles — they just need to be applied to panel.title.

### Additional Context

Why This Can't Be Solved Externally
VS Code's WebviewPanel.title is only accessible to the owning extension
window.tabGroups exposes tab labels as read-only
No extension can be built to work around this
Terminal mode supports CLAUDE_CODE_TERMINAL_TITLE env var, but webview mode has no equivalent

Investigated the extension source (v2.1.76). The fix is ~3 lines in setupPanel() where createWebviewPanel() is called. The internal session state system already tracks titles — they just need to be applied to panel.title.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗