Tuesday, May 26, 2026Tech HubAboutContactAdvertiseNewsletter
Back to Home
Putting Claude Code Under Version Control: Configs Since July, Memory Since April

Putting Claude Code Under Version Control: Configs Since July, Memory Since April

<p>When you let an AI agent share your machine for a year, you eventually hit a question you can't answer: <em>why</em> does my setup look like this?</p> <p>Not "what does it look like" — that's just <code>cat</code>. The <em>why</em>. Which con

B
Blizine Admin
·2 min read·0 views

Sascha Rahn Posted on May 25 • Originally published at heysash.com Putting Claude Code Under Version Control: Configs Since July, Memory Since April # claudecode # devtools # git # ai When you let an AI agent share your machine for a year, you eventually hit a question you can't answer: why does my setup look like this? Not "what does it look like" — that's just cat . The why . Which config landed when, which edit was the agent's own work versus mine, which assumption got baked in three commits ago and is now invisible. If you've used Claude Code long enough to have an evolved settings file, a memory store, and a handful of skills installed, you already recognize the feeling. I've been versioning Claude Code's configuration files since July 2025. Memory joined the repository in April 2026. The setup is mundane — a private git repo and a handful of symlinks — but the effects compound, and most of them I didn't anticipate when I started. A small but important clarification Claude Code doesn't edit its own configs autonomously. It only edits them when you ask it to, or when you've set up a workflow that includes "persist this to settings." That distinction matters for everything below: the audit trail is valuable not because the agent goes rogue, but because the agent does what you asked — and a week later, you no longer remember exactly what you asked for. It also matters because Claude Code's settings live at different scopes. The global ~/.claude/settings.json is the one I've seen the agent touch most. User-scoped and project-scoped overrides have been more cautious in my experience. Memory is its own thing again, scoped per project working directory. The mechanism Claude Code writes its state to predictable paths: Global settings: ~/.claude/settings.json Project-scoped memory: ~/.claude/projects/<encoded-cwd>/memory/ Skills, hooks, MCP configs: various ~/.claude/... subfolders <encoded-cwd> is deterministic — your working directory with slashes rep

📰Originally published at dev.to

Comments