[FEATURE] [FEATURE] Rename Claude Code Tabs
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
Tab's name is auto-named by the first question asked which can be very long.
I wonder if claude code would allow me to rename conversation tabs in VScode.
Proposed Solution
Proposed Solution
- Auto-generated intelligent titles (default behavior)
When a new conversation starts, after the first user message + assistant response, use the model to generate a short title (3-6 words) — similar to how Claude.ai and Cursor already do this. The title updates the WebviewPanel.title property and persists in the session metadata JSON (~/.claude/projects/*/sessions/).
- Manual rename via /rename slash command
/rename My Data Pipeline Work
This already exists in the CLI. The VSCode extension should honor the same command and immediately update the tab title by setting WebviewPanel.title.
- Right-click context menu on tab
Add a "Rename Session" entry to the tab's context menu (via vscode.window.registerCustomEditorProvider or menus contribution in package.json under editor/title/context). Clicking it opens a vscode.window.showInputBox() pre-filled with the current title.
- Persistence
Store the custom title in the existing session metadata (e.g. add a "title" field to the session JSON). On /resume or tab restore, read the stored title and set WebviewPanel.title accordingly.
Implementation sketch
// In the webview panel creation/management code:
// Auto-title after first exchange
async function autoGenerateTitle(conversation: Message[]): Promise<string> {
// Use a lightweight model call with a short prompt
const title = await generateTitle(conversation.slice(0, 2));
panel.title = Claude: ${title};
session.metadata.title = title;
await saveSessionMetadata(session);
return title;
}
// Manual rename via /rename command
function handleRenameCommand(args: string, panel: WebviewPanel, session: Session) {
const newTitle = args.trim();
panel.title = Claude: ${newTitle};
session.metadata.title = newTitle;
saveSessionMetadata(session);
}
// Right-click rename
vscode.commands.registerCommand('claude-code.renameSession', async () => {
const currentTitle = panel.title.replace('Claude: ', '');
const newTitle = await vscode.window.showInputBox({
prompt: 'Rename this Claude Code session',
value: currentTitle,
});
if (newTitle) {
panel.title = Claude: ${newTitle};
session.metadata.title = newTitle;
await saveSessionMetadata(session);
}
});
Priority order
/rename command — lowest effort, highest immediate value, already exists in CLI
Auto-generated titles — biggest UX improvement for most users
Right-click context menu — nice-to-have polish
Alternative Solutions
_No response_
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗