Getting started
Start syncing your Claude Code conversations across machines in under 2 minutes. By the end of this guide, you'll be pushing from one machine and resuming on another.
Before you begin
Make sure you have:
- A terminal open on each machine you want to sync
- A GitHub account (used for authentication)
- Claude Code installed on your machines
Install cync
Run the installer — it detects your OS, downloads the right binary, and adds it to your PATH. No Python needed.
curl -fsSL https://cync.run/install.sh | sh
macOS (Apple Silicon) and Linux (x86_64). For other platforms:
pipx install cync-cli # or: uv tool install cync-cli
Sign in with GitHub
cync uses GitHub for authentication — your conversations are private to your account.
cync login
A browser window will open for GitHub sign-in. Once complete, your session is stored locally and you won't need to log in again on this machine.
Create a project (machine A)
A project groups conversations from one codebase. Navigate to your project directory and create one:
cd ~/path/to/your/project cync init myproject
This creates a project on the server and links the current directory to it.
Push your conversations
Upload all Claude Code conversations from this directory:
cync push
cync finds your local transcripts in ~/.claude, uploads them to the server, and tells you what was synced.
Pull on another machine (machine B)
On your other machine (after installing cync and logging in), link to the same project and pull:
cd ~/path/to/your/project cync link myproject cync pull
Then resume right where you left off:
claude --resume
Set up auto-sync
Wire Claude Code to pull on session start and push on session end — no manual syncing needed:
cync install-hooks
To remove: cync install-hooks --uninstall
Commands
cync login / logout / whoami | GitHub auth session |
cync init <name> | create a project + link this directory |
cync link <name> | link this directory to an existing project |
cync unlink | remove this directory's link |
cync status | login, linked project, and local-vs-server sync state |
cync push [id] | upload conversation(s) |
cync pull [id] | download into ~/.claude |
cync list | list this project's conversations |
cync rm <id> | delete one server conversation (local copy kept) |
cync open | open this project in the web viewer |
cync install-hooks | auto-sync via Claude Code hooks |
cync project list / rm | manage projects |
MCP server
Let Claude (or any MCP host) read your synced conversations as context — pull a past chat into the model mid-conversation.
pipx install 'cync-cli[mcp]' cync login
Add it to your MCP host (Claude Code .mcp.json, Claude Desktop config, ...):
{ "mcpServers": { "cync": { "command": "cync", "args": ["mcp"] } } } Tools: list_projects, list_conversations(project), get_conversation(project, id).
Self-hosting
Prefer your own stack? Deploy the server + your own Supabase + R2 and point the CLI
at it with CYNC_SERVER_URL. See the GitHub repo for setup instructions.