Claude Desktop: allow opening/resuming local sessions not present in the account's sidebar (multi-account support)
Problem
I run two claude.ai accounts on the same Claude Desktop install (personal + work, switching by logout/login for billing/usage-limit reasons). The Desktop sidebar session list is server-backed per claude.ai account, so after switching accounts, sessions started under the other account are invisible in the UI — even though the full transcripts exist locally in ~/.claude/projects and are account-agnostic.
The CLI proves the data layer supports this fine: claude --resume <session-id> happily resumes a Desktop-created session under either login (verified on Windows, Claude Code 2.1.201). Only the Desktop UI has no way to reach sessions that aren't in the logged-in account's server-side list.
Feature request
Any one of these would solve it:
- A "local sessions" view in the Desktop sidebar that lists sessions found on disk (equivalent to the CLI's
claude --resumepicker with its all-projects toggle), regardless of which account created them; or - An "open session by ID / open from disk" affordance or
claude://deep link; or - A way to re-associate/import a local session into the current account's sidebar.
Workaround today
Terminal claude --resume (interactive picker, Ctrl+A to widen to all projects) — works fully, but abandons the Desktop UI for that session, and the session never becomes visible in the other account's sidebar.
Environment
- Claude Code / Desktop: 2.1.201
- OS: Windows 11 Enterprise 10.0.26200
- Two claude.ai accounts (Pro/Max tier), same machine, same
~/.claudehome
🤖 Generated with Claude Code
3 Comments
Confirmed on macOS as well — Claude Code 2.1.196, Desktop app, two claude.ai Team workspaces (switching via
/login). Sessions created under workspace A vanish from the sidebar when logged into workspace B, while every transcript remains intact in~/.claude/projects.One extra data point supporting a straightforward fix: session JSONL entries carry no account/org identity at all — the per-line keys are
sessionId,cwd,gitBranch,userType,uuid,version,timestamp, etc. Local history is fully account-agnostic; the filtering happens only in the server-backed sidebar list.Proposed solution:
~/.claude/projects— the same source the CLIclaude --resumepicker already uses — merged with the account's server-backed list and de-duplicated by session id.Workaround for anyone hitting this today: run
claude --resumein the project directory from a terminal — it lists and resumes sessions regardless of which account created them; only the Desktop sidebar hides them.Built a small workaround for this on macOS: https://github.com/arunmauryaaa/restore-desktop-sessions
Root cause I found: the desktop Code → Recents list is built by enumerating per-session pointer files at
~/Library/Application Support/Claude/claude-code-sessions/<accountUuid>/<workspaceUuid>/local_<uuid>.json.
They're keyed by account, so after switching login the old account's sessions still exist on disk but sit under the other account's folder → hidden. (A scan of the claude.ai IndexedDB/LevelDB turned up none of the UUIDs, so at least locally the list is driven by these files.)
The script copies those pointer files into the currently logged-in account's active workspace, then a full app restart (⌘Q) lists the whole history again. The transcripts themselves are account-agnostic, so resume works. Non-destructive (cp -n), backs up first, dry-run by default.
Restored ~250 sessions across an account switch this way. Obviously unofficial and could break if the sidebar goes purely server-driven — sharing in case it helps others stuck here, and as a signal for a proper in-app "show local sessions" toggle.
Is it still needed since they released this feature?
https://x.com/claudedevs/status/2093368017304371503?s=46