[FEATURE] Feature request: cross-project session resume / global history view
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
Summary
/resume (and claude --resume without a session UUID) is scoped to the
current working directory's project folder under ~/.claude/projects/.
There's no built-in way to browse or resume sessions from other projects
without already knowing the session UUID.
## Why this matters
Users with many active projects (I currently have 20+ project folders under
~/.claude/projects/) routinely need to find a recent session by topic or
recency rather than by project. Today this requires one of:
- Remembering which directory a session was started from and
cd-ing there
before launching claude.
- Manually grepping the JSONL files under
~/.claude/projects/. - Writing a custom script to enumerate sessions across projects (which I
ended up doing, see below).
This is friction that adds up when you switch projects often. The data is
already on disk in a clean JSONL format — Claude Code just doesn't surface
it cross-project.
Proposed Solution
Any of the following would solve this; listed in increasing scope:
/resume --global(or a separate/historycommand): an interactive
picker that lists sessions across all ~/.claude/projects/<encoded-cwd>/
folders, sorted by recency, showing the project cwd + first user prompt
as preview. Selecting one would change the active project root to that
session's cwd (so tool allowlists, MCP scopes, and CLAUDE.md inheritance
stay correct) and load the session.
claude historyCLI subcommand: a one-shot command
(e.g. claude history --limit 30 [--filter <substring>]) that prints the
same view to stdout, without entering an interactive session. Useful for
scripting and for finding a session UUID to feed to claude --resume.
- A flag on
claude --resume <id>that warns the user when the session's
original cwd differs from the current shell, and offers to switch — so
resuming a cross-project session can never silently mis-bind tool
permissions and project context.
Alternative Solutions
- Encouraging users to
cdfirst — works but assumes the user remembers
which project a session belongs to, which is exactly what they're trying to
rediscover.
- A user-side script reading
~/.claude/projects/*/*.jsonl— works for
read-only listing (I wrote one), but it cannot safely resume a session
cross-project because it can't re-bind the working directory, MCP scopes,
or CLAUDE.md inheritance the way Claude Code itself can.
Priority
High - Significant impact on productivity
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
## Why first-class support matters
The non-trivial part isn't the listing — it's the safe resume. Tool
allowlists, MCP server scopes, and CLAUDE.md inheritance are all cwd-bound
in Claude Code, so a "global resume" must re-bind those correctly when
crossing project roots. That's the part user-side scripts can't do.
## Environment
- Claude Code on Windows 11 (PowerShell), but the request is platform-agnostic.
- Sessions stored under
%USERPROFILE%\.claude\projects\<encoded-cwd>\*.jsonl.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗