Claude Session Manager
Browse, search, rename, and visualize your Claude Code session transcripts — all in one place, right inside VS Code.
Claude Code stores every conversation as a JSONL file under ~/.claude/projects/. Over time you end up with dozens or hundreds of them, with machine-generated names and no easy way to find or revisit a specific one. This extension gives you a dedicated side panel to manage the whole archive.
Features
Session tree, grouped by project
- Every project you've used with Claude Code appears as a folder, with its sessions listed inside.
- The current workspace's project is auto-expanded and marked as
current.
- Each session shows its title, relative last-modified time, and file size.
Full-text search across sessions
Title search is never enough once you have a few dozen conversations. This extension searches inside the JSONL transcripts too.
- 🔍 icon at the top of the panel → searches every session in every project.
- 🔍 icon next to any project row (appears on hover) → searches only that project's sessions.
Type any phrase and the extension scans all matching transcripts for occurrences in user prompts and assistant responses. Matches appear in a QuickPick with:
- The session title and relative time
- A 👤 / 🤖 snippet showing the surrounding context so you can tell which side said it
- The project path so you can disambiguate
Press Enter on a result to launch that session in a Claude Code editor tab. Leave the search box empty to just list sessions by title.
One-click launch (configurable destination)
- Click a session title to resume it.
- Where it opens is controlled by the
claudeSessionsManager.launchLocation setting:
"editor" (default) — opens in a new editor tab, matching Claude Code's "Open in New Tab"
"sidebar" — opens in the Claude Code side bar panel, matching Claude Code's built-in sessions list behavior
Active session highlighting
The session currently being written to by Claude Code is automatically selected and revealed in the tree. Switch sessions in Claude Code and the tree follows along — no manual searching for where you are.
Restore default permission mode on session resume
The stock Claude Code extension has a long-standing quirk: resumed sessions always start in "default" (Ask before edits), even if you've configured claudeCode.initialPermissionMode to something else. The setting only applies to new conversations.
On startup, this extension silently patches Claude Code so resumed sessions honor your configured default instead. Resolution order:
- VS Code setting
claudeCode.initialPermissionMode
- Claude Code extension's own
defaultPermissionMode global state
~/.claude/settings.json → permissions.defaultMode (the CLI's settings file)
"default" (Ask before edits — the original behavior)
The patch never blindly bypasses anything — it only propagates what you have already configured. If none of the above is set, behavior is identical to vanilla Claude Code.
The patch is reapplied automatically whenever Claude Code updates and overwrites it. No popups, no prompts — the extension just keeps things working silently. Disable with the claudeSessionsManager.autoPatchClaudeCode setting if you'd rather the extension didn't modify Claude Code's files.
Rename and delete
- Rename a session directly from the tree — the extension rewrites the JSONL transcript, updates Claude Code's title cache (
.tree-cache.json), and patches VS Code's workspace SQLite (agentSessions.model.cache, editor memento) so the new name sticks across CLI and the Claude Code sidebar.
- Delete cleans up the JSONL file, the project cache, VS Code's
hiddenSessionIds, and all related workspace storage entries.
HTML transcript viewer
Right-click any session → View as HTML:
- User prompts are highlighted in bold amber; assistant responses in green.
- Tool calls, tool results, thinking, and system blocks are collapsed by default so conversations read cleanly.
- Full-text search with live highlighting, match counter, and next/previous navigation (
Enter / Shift+Enter).
- Expand-all / collapse-all buttons, plus a quick "collapse tools" toggle.
- Light mode by default, with a one-click theme toggle that remembers your choice.
- Cached by file mtime — reopening an unchanged session is instant.
Open in external browser
Right-click → View as HTML in Browser writes a self-contained, themeable HTML file to your temp directory and opens it in your default browser. Great for sharing, archiving, or reading a long transcript without the VS Code chrome.
Open the raw JSONL
Right-click → Open Raw JSONL to inspect the underlying transcript as plain text.
Settings
| Setting |
Values |
Default |
Description |
claudeSessionsManager.launchLocation |
editor, sidebar |
editor |
Where to open a session when you click it — a new editor tab, or the Claude Code side bar. |
claudeSessionsManager.autoPatchClaudeCode |
true, false |
true |
Silently patch Claude Code on startup so resumed sessions honor your configured default permission mode. Set to false to disable. |
- macOS, Windows, and Linux are all supported. Paths under
~/.claude/projects/ and the OS-specific VS Code User directory are detected automatically.
- On systems without the
sqlite3 CLI (most Windows installs by default), rename and delete still work but skip the workspace-SQLite cleanup silently — the JSONL file, project cache, and tree view remain consistent. If you want the VS Code caches cleaned too, install sqlite3 and put it on your PATH.
Requirements
- Claude Code extension installed — required for the "Launch in Claude" action
Commands
| Command |
Where |
Description |
Refresh |
View title |
Rescan the projects directory |
Search Sessions |
View title |
Full-text search across all sessions in all projects |
Search Sessions |
Project row (hover / right-click) |
Full-text search within just that project |
Launch in Claude |
Click session title |
Resume the session — destination controlled by launchLocation setting |
View as HTML |
Right-click session |
Open the rendered transcript in a VS Code webview |
View as HTML in Browser |
Right-click session |
Write to /tmp and open in your default browser |
Open Raw JSONL |
Right-click session |
Open the underlying .jsonl as text |
Rename |
Hover session / right-click |
Rename the session (syncs across Claude Code caches) |
Delete |
Hover session / right-click |
Delete the session and all related cache entries |
Privacy
Everything this extension does is local. It reads and writes files under ~/.claude/projects/ and VS Code's own storage directories. No network calls, no telemetry.
Disclaimer
This is an independent third-party tool. It is not affiliated with or endorsed by Anthropic. "Claude" and "Claude Code" are trademarks of their respective owners.
Feedback and issues
Please file issues and feature requests on the repository.