CLAUDE_CONFIG_DIR not respected by /resume session picker
Bug
CLAUDE_CONFIG_DIR correctly redirects ~/.claude/ for session storage, but the interactive /resume picker reads ~/.claude.json from $HOME instead of $CLAUDE_CONFIG_DIR/.claude.json to discover sessions. This causes /resume to report "No conversations found to resume" even though sessions exist and are resumable by explicit ID.
Environment
- Claude Code 2.1.50 (native installer)
- Ubuntu container (Docker/OrbStack on macOS)
CLAUDE_CONFIG_DIR=/workspace/.claude-homeset in.profile
Steps to reproduce
- Set
CLAUDE_CONFIG_DIRto a non-default path (e.g./workspace/.claude-home) - Start Claude Code, have a conversation, exit
- Verify session files exist in
$CLAUDE_CONFIG_DIR/projects/-workspace/ - Start Claude Code again and run
/resume
Expected: Session picker lists previous sessions
Actual: "No conversations found to resume"
Workaround evidence
claude -p --resume <session-uuid> "hello"— works (finds the session file by path in$CLAUDE_CONFIG_DIR/projects/)claude -c -p "hello"— works (continues last session correctly)- Interactive
/resumepicker — fails ("No conversations found")
Root cause (suspected)
Two separate .claude.json files exist:
~/.claude.json— created by the native installer in$HOME, contains minimal state (noprojectskey)$CLAUDE_CONFIG_DIR/.claude.json— has full project/session tracking data includinglastSessionId
The /resume picker appears to read ~/.claude.json from $HOME to build the session list, but sessions and project data are stored under $CLAUDE_CONFIG_DIR/.claude.json. The --resume <id> and --continue flags work because they locate session files directly by path under $CLAUDE_CONFIG_DIR/projects/.
Workaround
Symlink both files to the redirected config dir:
rm -rf ~/.claude && ln -sf $CLAUDE_CONFIG_DIR ~/.claude
rm -f ~/.claude.json && ln -sf $CLAUDE_CONFIG_DIR/.claude.json ~/.claude.json
After symlinking, /resume works correctly.
Expected behavior
CLAUDE_CONFIG_DIR should redirect both ~/.claude/ and ~/.claude.json, or the /resume picker should read from $CLAUDE_CONFIG_DIR/.claude.json when the env var is set.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗