Desktop Recents list doesn't surface sessions previously created via the CLI
Summary
When installing Claude Desktop on a machine that has been running Claude Code CLI for a while, the Code tab's Recents list does not surface historical CLI sessions, despite the account-level stats correctly reporting the full session count and all session jsonl files being present on disk under ~/.claude/projects/.
Reproduce
- Use Claude Code CLI on macOS for several weeks across multiple projects (in my case: 50+ sessions across 5 projects under
~/.claude/projects/-Users-...). - Install Claude Desktop (
brew install --cask claude) and open the Code tab. - Observe the Recents list.
Expected
Desktop Code tab Recents shows historical CLI sessions, since:
- Skills, memories, plugins, settings under
~/.claude/are correctly shared between CLI and Desktop. - The dashboard stats (e.g. "Sessions: 65", "Messages: 12,460") correctly count all historical CLI sessions.
- Desktop bundles its own copy of
claude-codeat~/Library/Application Support/Claude/claude-code/<version>/claude— suggesting it's the same CLI engine underneath.
Actual
Recents shows only 3 sessions, all of which were started in the iOS Claude mobile app. Zero CLI-originated sessions are surfaced. Removing the branch/project chip filters, expanding \"More,\" and using the search affordance don't surface any of the CLI sessions. The 50+ CLI sessions are still readable on disk and resumable via \claude --resume <id>\ from the terminal, but invisible in Desktop.
Diagnostic notes
- CLI sessions: \
~/.claude/projects/-Users-<encoded-path>/<uuid>.jsonl\— 50+ files in my case, intact. - Desktop local state: \
~/Library/Application Support/Claude/IndexedDB/https_claude.ai_0.indexeddb.leveldb/\is only ~48KB and contains no session UUIDs (verified by \strings\on the log). It's UI cache, not a session index. - The Recents list appears to be sourced from a server-side endpoint and only contains sessions originated by first-party clients (iOS, web, Desktop) — not local CLI sessions.
- Visible vs invisible session jsonl files are structurally identical (same \
permission-mode\opening event). No on-disk marker distinguishes the registered-with-server ones from the others.
Suggested resolution
Either (a) Desktop scans \~/.claude/projects/\ on launch and surfaces any local CLI sessions in Recents alongside server-known ones; or (b) ship an \import-sessions\ command (CLI or Desktop) that registers local CLI sessions with the server-side Recents list. Both would let existing CLI users have continuity when they adopt Desktop.
Environment
- macOS 26.5, Apple Silicon
- Claude Desktop 1.1.6679 (via Homebrew cask)
- Claude Code CLI 2.1.150
- Both signed in to the same Anthropic account
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗