Skip to content
skillcellar

Move your Claude Code setup to a new computer

Claude Code keeps your skills, plugins, MCP servers, memory and agents in your home folder and in each project. This guide moves them to another computer, or back onto the same one after you reinstall its system, with the skillcellar command-line tool. The tool lists what the old computer has in your SkillCellar library and backs up its files to a private GitHub repository you own. On the new computer it restores those files and prints the commands that add the rest, such as your plugins and MCP servers.

Before you start

On the old computer

1. Create an API key

On API keys, create a key and name it after this computer. Its value is shown once, so keep it at hand for the next step. Each computer gets a key of its own.

2. Sign in and sync

terminal

$ npx skillcellar login

Paste the key, then choose this computer from your devices or give it a name. The tool then offers to install the skillcellar skill, which lets Claude Code carry out the tasks you queue on the site.

terminal

$ npx skillcellar sync

It reports what Claude Code has on this computer, globally and in every project it knows, as names and hashes. It never sends a file’s contents. The computer then shows under Devices in your library.

3. Try the backup

terminal

$ npx skillcellar backup --repo <you>/claude-backup --dry-run

A dry run shows how many files would go from each place, lists what the backup leaves out, and pushes nothing. The backup takes your skills, CLAUDE.md, rules, agents and MCP servers, globally and in each project, along with each project’s AGENTS.md and the memory Claude Code keeps for it. In the MCP config, every environment and header value, and anything else that looks like a key, becomes a placeholder such as ${CONTEXT7_KEY}. A key of an unusual shape can slip past, so read the backup’s MCP config once.

4. Clear what looks like a secret

Before anything goes, the tool reads every file for what looks like a key, a token or a password. If it finds one, it stops, lists each file and line, and pushes nothing. Open each file at that line.

If it is a real key, take it out of the file (into an environment variable, for example) and run the backup again. Never let a real key through. If it is a sample, such as a made-up password in a skill’s documentation, let that file through with --allow and the file’s path from that list, without the : and the line number, in quotes:

terminal

$ npx skillcellar backup --repo <you>/claude-backup --dry-run --allow "<path of the file>"

Each run lists the files it lets through. Add the same --allow to the backup in step 5. Once a backup has pushed a file you allowed, the tool remembers it while its contents stay the same: later backups need no --allow for it, and the restore copies it.

5. Back up

terminal

$ npx skillcellar backup --repo <you>/claude-backup

Before it pushes, the tool checks that the repository is not public, asking GitHub without signing in, and refuses one that is. It pushes with your own git and its credentials and remembers the repository, so from then on npx skillcellar backup alone does it. The computer’s page on the site then shows when it was last backed up, and the commit.

6. Before you leave the computer

Close Claude Code first: it writes memory files while a session runs. Then run both, in this order:

terminal

$ npx skillcellar sync

terminal

$ npx skillcellar backup

The site and the backup then match the computer as you leave it. The restore copies the files the last sync reported, and a file that changed after that sync waits until you confirm the backup’s copy, as step 10 explains. The backup holds Claude Code’s setup only: copy your other files yourself, and push every project to its remote.

On the site

7. Add the new computer and queue the copy

Under Devices, add the new computer with a name of its own. Then open the old computer’s page, choose the new one under Copy everything to… and queue the copy tasks: one for each place the old computer has synced, Global and each project with a git remote. Each task is done once the new computer has everything the old one had in that place, as its last sync reported it. The restore takes the files from the old computer’s latest backup, so you can queue the copy before or after that last backup.

If you are reinstalling the same computer, give the fresh install a new name too. Signed in as the old device, its first sync would replace the list the copy reads from, and its first backup would replace the old computer’s backup.

A project with no git remote belongs to the old computer alone, so the copy leaves it out. Its files are still in the backup, under devices/<device>/projects/.

On the new computer

8. Sign in

Install Claude Code, Node.js and git, and give git access to GitHub. Create a key for this computer on API keys, then sign in and choose the device you added in step 7:

terminal

$ npx skillcellar login

Say yes to the skillcellar skill if you want Claude Code to run the restore for you, as the end of this section explains.

9. Clone your projects

Clone each project you work on. Its git brings the files it tracks, and the backup brings what Claude Code keeps for it. The restore puts the project’s skills, agents, rules, CLAUDE.md and AGENTS.md into its folder, and its memory into Claude Code’s own folder for it, under ~/.claude/projects. It does so only for a folder on this computer that Claude Code has been opened in, or the one you run the restore in. It remembers each folder it writes into, so the sync in step 11 reports that project even if Claude Code has never been opened there.

10. Restore

terminal

$ npx skillcellar restore --repo <you>/claude-backup --dry-run

terminal

$ npx skillcellar restore --repo <you>/claude-backup

The restore fetches the backup the site names for the old computer, and --repo confirms that repository is yours. The dry run writes nothing into your Claude Code folders or projects. The second command writes skills, agents, CLAUDE.md files, rules and memory into place, and keeps anything already there unless you add --force. What is already there and the same as in the backup is counted on one line, so the list shows only what changed or needs you. A file that looks like it holds a secret comes over only if the backup let it through. If your GitHub access is an SSH key, add --ssh to both commands. Run them again inside each cloned project Claude Code has not opened yet: the global part is counted again, in one line.

The restore copies only the files the old computer’s last sync reported, as it reported them. A file that changed after that sync, or one written after it, such as a memory file Claude Code saved later, is named instead. If the backup is yours and as you left it, run the restore again with --take-backup to copy those as well.

Then it prints what is left, as commands: a plugin’s install, npx skills add for a skill from a repository (with -g for a global one), and claude mcp add-json for each MCP server. Replace each ${NAME} in those with your own value before you run it. It also names each package.json, requirements.txt, pyproject.toml or Playwright config a restored skill carries, so you can install what the skill needs. On Windows, run the shell commands in Git Bash. A command that starts with /plugin goes into Claude Code, not a shell. If one line holds two, type them one after the other.

On Windows, Microsoft Defender can remove a file from a skill as soon as the restore writes it, most often from security and pentest skills, whose notes hold sample exploits. The restore names a skill folder left without its SKILL.md. Look under Windows Security, Protection history, and decide there whether to allow the file before you restore the skill again with --force.

11. Sync

terminal

$ npx skillcellar sync

The site closes each copy task this computer now satisfies, in every project Claude Code knows or the restore wrote into, and the new computer’s page lists any still open.

Or let Claude Code do steps 10 and 11. With the skillcellar skill installed, ask it to run your skillcellar tasks. It shows you each task first, runs the restore once you confirm the backup’s repository is yours, asks before it adds an MCP server or installs a skill’s packages, and leaves every key for you to fill in.

What the backup leaves out

The backup is Claude Code’s setup, not a copy of the computer. A dry run lists most of what it leaves out, with the reason for each.

When something goes wrong

What the site sees

The sync sends names, sources, hashes and versions. For an MCP server it also sends how it runs: the command’s name and the package it starts, or its address’s host and the start of its path, never its environment values, headers or other arguments. For a project it sends the name and the GitHub repository. It never sends a file’s contents or a path on your computer. The backup goes from your computer to your repository with your own git: the site learns only the repository’s name, the commit and the time, holds no token for it and never reads it. The skillcellar README describes each command, and npx skillcellar --help prints its usage.