Get started
From installing to pulling your setup on a new machine, the steps you do once.
What you need
- macOS or Linux
- The GitHub CLI, logged in with
gh auth login - The Claude Code setup you use now (
~/.claude)
aisync runs no server of its own. Your setup is stored in a private repo in your GitHub account, and gh handles the GitHub login.
Install
wget -qO- https://raw.githubusercontent.com/CreatiCoding/aisync/main/install.sh | sh
curl works too. The script downloads the build for your OS, checks its checksum and puts it at ~/.local/bin/aisync.
curl -fsSL https://raw.githubusercontent.com/CreatiCoding/aisync/main/install.sh | sh
Keep the binary where it is: after a pull, MCP servers in .claude.json point at its absolute path. If you move it, run aisync pull <profile> again to rewrite the paths.
With Go 1.24 or newer you can build from source:
go install github.com/CreatiCoding/aisync/cmd/aisync@latest
aisync is in private beta, so these commands work once the source is public.
1. Find hardcoded tokens first
Before uploading anything, see where your setup has plain-text tokens. This needs no login and uploads nothing.
aisync scan
Hardcoded secrets in ~/.claude (+ ~/.claude.json):
BLOCKS settings.json (OPENAI_API_KEY) sk-p…(34 chars)
encrypt mcp github (Authorization) ghp_…(40 chars)
encrypt mcp slack (SLACK_BOT_TOKEN) xoxb…(32 chars)
| Mark | Meaning | What to do |
|---|---|---|
encrypt |
A token in an MCP server | Nothing. It moves to the encrypted store on capture |
BLOCKS |
A token in a file such as settings.json or CLAUDE.md | Take it out of the file before you capture |
local |
A token in a file aisync never uploads | Nothing. A plain-text copy exists on this machine |
If you see BLOCKS, remove or move that value and scan again. See Secrets.
2. Log in and upload
aisync login
aisync capture default
login reuses your gh login and creates <you>/aisync-config as a private repo if it doesn't exist. Pass --repo owner/name to use another one.
capture shows the same scan again and, the first time, asks you to pick a passphrase. It encrypts your tokens, and you type it once on each new machine. If you lose it the stored tokens can't be recovered, so keep it in a password manager.
Captured default from ~/.claude: 4 files, 3 MCP servers → you/aisync-config 62cefe5
Secrets moved to the encrypted store: github-authorization, slack-bot
After capture, the plain-text tokens in this machine's ~/.claude.json are replaced with references too.
3. Pull on the new machine
Install aisync on the new machine, log in to gh, then:
aisync login
aisync pull default
The first pull asks for the passphrase once and keeps the key in the keychain after that. Files that get replaced are copied to ~/.claude/.aisync/backup/ first.
default → ~/.claude
add file CLAUDE.md
replace file settings.json (existing file, will be backed up)
add server slack
Backed up replaced files to ~/.claude/.aisync/backup/20261011-105256
Applied default at 62cefe5.
Restart any running Claude Code session so it loads the new MCP servers.
4. Day to day
Push what you changed on one machine and pull it on the other. diff shows what a pull would change.
aisync push default -m "add a rule"
aisync diff default
aisync pull default
What happens when both machines changed the same file is in Syncing and conflicts.
These docs describe aisync 0.1.