CLAUDE_CONFIG_DIR not respected by /resume session picker

Resolved 💬 2 comments Opened Feb 23, 2026 by slim-bean Closed Mar 23, 2026

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-home set in .profile

Steps to reproduce

  1. Set CLAUDE_CONFIG_DIR to a non-default path (e.g. /workspace/.claude-home)
  2. Start Claude Code, have a conversation, exit
  3. Verify session files exist in $CLAUDE_CONFIG_DIR/projects/-workspace/
  4. 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 /resume picker — 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 (no projects key)
  • $CLAUDE_CONFIG_DIR/.claude.json — has full project/session tracking data including lastSessionId

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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗