Derive the memory project-key from $HOME (replacing / with -) instead of hardcoding the macOS -Users-<username> path, so install.sh/sync.sh resolve ~/.claude/projects/-home-<user>/memory on Linux and -Users-<user> on macOS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.3 KiB
1.3 KiB
claude-config
Private repo syncing Claude Code config across machines.
What's tracked
| File | Source | Destination |
|---|---|---|
CLAUDE.md |
~/.claude/CLAUDE.md |
Global Claude Code instructions |
settings.json |
~/.claude/settings.json |
Permissions, model, env vars |
memory/*.md |
~/.claude/projects/-Users-<username>/memory/ |
Persistent memory files |
Not tracked: settings.local.json — accumulates one-off permissions per session, machine-specific.
Install on a new machine
git clone https://github.com/slaguru666/claude-config.git ~/Git/claude-config
cd ~/Git/claude-config
chmod +x install.sh sync.sh
./install.sh
Sync after changes
Pull the latest live state into the repo and push:
cd ~/Git/claude-config
./sync.sh # syncs, commits, pushes with default message
./sync.sh "my commit msg" # custom message
On another machine, pull and reinstall:
cd ~/Git/claude-config
git pull
./install.sh
Memory path
Memory files live under ~/.claude/projects/<project-key>/memory/, where <project-key> is
the home directory with / replaced by -. The scripts derive this from $HOME automatically,
so it resolves correctly on macOS (-Users-<username>) and Linux (-home-<username>).