Active sessions are invisible in the Recents / `--resume` picker
Description
When a Claude Code session is currently running (in another terminal, or the terminal I'm looking at right now), it does not appear in the claude --resume picker. I understand the reason — attaching two live terminals to one session file causes interleaved writes — but the current behavior is confusing in practice:
- There is no "live session" row in the picker, even with a disabled/greyed-out affordance.
- There is no indication that an active session exists at all.
- If I'm troubleshooting whether a long-running session is still alive, the picker actively misleads me into thinking it's gone.
Expected behavior
One of the following would resolve the confusion:
- Show active sessions in the picker with a
• liveindicator, unselectable for direct resume, with a secondary "Fork" action available. - Show them with a different sort/section header ("Active — fork only") and keep them excluded from normal resume.
- Add a
claude --list-sessions --include-activeflag that dumps everything so the user can verify the session is still running.
Actual behavior
Session file exists at ~/.claude/projects/<project>/<id>.jsonl and is actively being written to. Picker hides it entirely. Only discoverable via shell:
ls -lt ~/.claude/projects/<project>/*.jsonl
Why it matters
For long-lived autonomous/agentic sessions (hours-long — mine had been compacted once and was still going), the Recents picker is the first place a user looks to reassure themselves the session exists. Silently hiding it turns a safety property (no dual-write) into a perceived bug (session vanished).
Workaround today
claude --fork-sessionto branch from the active onels -lt ~/.claude/projects/.../*.jsonlto confirm it's alive
Version
2.1.116 (Claude Code) — macOS 15 (Darwin 25.4.0)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗