Dunno about you, but my Claude Code environment is pretty customized for me...fits me like a comfy overstuffed armchair, packed with plugins, skills, commands, configuration snippets, and so forth. However, that customized config is not as portable as I’d like. I discovered this (again) when I started spinning up an old laptop to do some Claude work and realized that I was basically starting my config from scratch…and I’m sure I’ll be doing this again. And again. And I already use on Mac, Linux, and Windows, each of which has different Claude filepaths, different .rc filenames, and so on.
It seemed silly to set up the entire environment by hand from scratch, so Claude and I wrote a transfer utility. You can find the public GitHub project here:
https://github.com/keithmackay/CCSnapshot
To copy your Claude configs with the tool
- Fork a copy of the repo
- clone to your source machine
- run the collection script
- push back to your forked repo
There are both Bash and PowerShell scripts, so this will work in whatever Claude environment you’re in. The collection scripts are completely mechanical — no tokens required. The script copies all your Claude-specific configs (plugins, skills, commands, .rc settings, CLAUDE.md, ~/.claude, etc.) to a snapshot folder, and you just push back to GitHub after collection so your snapshot is now part of your forked repo. Note that no secrets are copied — if you have GitHub tokens, API keys, etc. their existence (but not their content) will be noted in the collection manifest, and you will be walked through any secrets that need to be added on the new machine.
To replicate to a new environment
- Clone your snapshot to the destination machine
- Run the propagation prompt/scripts
- Repopulate secrets locally
Claude will figure out how to reconfigure things for you. The Claude prompt is smart enough to figure out the local environment setup, and will seamlessly move your settings between Mac, Linux, and Windows.
As noted, it doesn’t pull secrets -- so it will tell you what you need to set up on your new machine to match the old one (git tokens, API keys, environment variables, etc.)
One discovery
One thing I hadn’t really thought about was that you cannot fork your own repo to yourself. Claude was a little stymied by this, too, telling me it had to “think about this more carefully” and that “There’s a tension here”:
I wanted the public repo to start with a blank snapshot folder, so I made a separate copy of the whole project, with its own private GitHub repo, that I use for my snapshots…you can just grab a clone a go.
Make it more useful
Feel free to submit any issues you encounter or suggestions you come up with, or to tell me about a magic switch in Claude that does this already…at the pace these things are changing, I wouldn’t be at all surprised! Enjoy!

Top comments (0)