Problem
Claude Code sessions opened anywhere in the filesystem don't have the same settings configured in dotfiles, even though we have a proper symlink from ~/.claude/settings.json → dotfiles/.claude/settings.json.
Current State
- ✅ Symlink exists:
~/.claude/settings.json → /home/linuxmint-lp/ppv/pillars/dotfiles/.claude/settings.json
- ❌ Settings not applied: Claude Code doesn't read from
~/.claude/settings.json
- ❌ Claude Code uses:
~/.claude.json (52MB file) for all configuration
- ❌ Environment variables in dotfiles not active globally
- ❌ Permissions in dotfiles not active globally
Expected Behavior (Definition of Done)
When I run claude from ANY directory on my system:
- All environment variables defined in
dotfiles/.claude/settings.json should be active
- All permissions defined in
dotfiles/.claude/settings.json should be active
- Any other settings in that file should apply globally
- Changes to
dotfiles/.claude/settings.json should affect all future Claude sessions
Root Cause
Claude Code is in the middle of migrating from ~/.claude.json to ~/.claude/settings.json but hasn't completed this migration. Our symlink is correct but Claude Code doesn't use it yet.
Workarounds to Investigate
- Force config location: Can we use an undocumented flag or environment variable to make Claude read from our symlinked location?
- Symlink the actual file: Instead of symlinking to
settings.json, can we symlink ~/.claude.json to a dotfiles-managed version?
- Hook-based solution: Use bash aliases or wrapper scripts to inject settings
- Monitor upstream: Track when Claude Code completes the migration
Success Criteria
- Run
claude from ~/ and have all dotfiles settings active
- Run
claude from /tmp and have all dotfiles settings active
- Run
claude from any project directory and have all dotfiles settings active
- No manual copying of settings files required
Related
This issue specifically tracks making Claude Code respect our global settings file.
Problem
Claude Code sessions opened anywhere in the filesystem don't have the same settings configured in dotfiles, even though we have a proper symlink from
~/.claude/settings.json→dotfiles/.claude/settings.json.Current State
~/.claude/settings.json→/home/linuxmint-lp/ppv/pillars/dotfiles/.claude/settings.json~/.claude/settings.json~/.claude.json(52MB file) for all configurationExpected Behavior (Definition of Done)
When I run
claudefrom ANY directory on my system:dotfiles/.claude/settings.jsonshould be activedotfiles/.claude/settings.jsonshould be activedotfiles/.claude/settings.jsonshould affect all future Claude sessionsRoot Cause
Claude Code is in the middle of migrating from
~/.claude.jsonto~/.claude/settings.jsonbut hasn't completed this migration. Our symlink is correct but Claude Code doesn't use it yet.Workarounds to Investigate
settings.json, can we symlink~/.claude.jsonto a dotfiles-managed version?Success Criteria
claudefrom~/and have all dotfiles settings activeclaudefrom/tmpand have all dotfiles settings activeclaudefrom any project directory and have all dotfiles settings activeRelated
This issue specifically tracks making Claude Code respect our global settings file.