claude-sync CLI

claude-sync encrypts and syncs Claude Code sessions between computers through R2, S3, GCS or WebDAV.

  • 324 ★ on the repository
  • Last commit
CLI

Extended access

Why this level

  • Sessions with code and command output are uploaded to cloud storage, and `pull` overwrites files in `~/.claude`.
All reasons and checks

tawanorg/claude-sync

Install

Works in

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/claude-sync

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Sessions with code and command output are uploaded to cloud storage, and `pull` overwrites files in `~/.claude`.

This is third-party code. Review the repository files before installing.

What it does

claude-sync carries the `~/.claude` folder to another computer so `claude --resume` finds the same sessions there. Files are gzipped and encrypted with age before upload, and storage is your own Cloudflare R2, AWS S3, Google Cloud Storage, S3-compatible or WebDAV bucket. The key derives from a passphrase: the same phrase on two machines gives the same key, with no files to copy. The `push`, `pull`, `status`, `diff` and `conflicts` commands work as in git. The `--scope sessions` mode takes only conversations and skips plugins with their `node_modules`. Paths between machines are mapped automatically: the home directory becomes a `${HOME}` token, and other layout differences are handled by `path_map` in `~/.claude-sync/config.yaml`.

Who it is for. People who use Claude Code on a laptop and a workstation and want to continue a started session on either.

Good fit when

  • A session started at home must be finished on a work computer.
  • Usernames and project locations differ on the two machines.
  • Claude Code settings, skills and agents should match on every device.
  • Storage must stay your own, with encryption before upload.

Not a fit when

  • You have no bucket or WebDAV server: the tool works only with your own storage.
  • The passphrase is lost and no key is kept on other devices.
  • Two machines edit `history.jsonl` at the same time: it is synced as a single file.

Example request

Set up claude-sync on my second laptop with the same bucket, show `claude-sync pull --dry-run` and only then pull the sessions.

Limitations

You need your own bucket or WebDAV with access keys. The default `full` mode also syncs `settings.json`, `CLAUDE.md`, skills and plugins, so pass `--scope sessions` for conversations only. `history.jsonl` travels as one file and the last write wins when two machines push, and `claude-sync rebuild-history` recovers lost entries. Sessions contain code and command output: keep the storage closed to outsiders. The last commit dates from October 2026.

How to disable. Stop shell hooks if you added them and uninstall: `npm uninstall -g @tawandotorg/claude-sync`. Delete the `~/.claude-sync/` folder and the bucket data separately.

FAQ

How do I move sessions to a second computer?

Install the package, run `claude-sync init` with the same storage details and passphrase, then `claude-sync pull --dry-run` and `claude-sync pull`.

What if the second computer already has files?

On `pull` the command shows what would be overwritten, asks for confirmation and saves a copy to `~/.claude.backup.{timestamp}`.

What should I sync for conversations only?

Choose `claude-sync init --scope sessions`: it covers `projects/`, `history.jsonl`, `tasks/` and `plans/`.

Can sync be automated?

Yes. Add `claude-sync pull -q` on shell start and `claude-sync push -q` on exit to `~/.zshrc` or `~/.bashrc`.

How do I check for updates?

`claude-sync update --check` reports a new version, and `claude-sync update` installs it after verifying SHA256 checksums.

Discussion

No questions or reviews yet.

CLI tools
Needs a VPN

A Linux and macOS CLI that keeps a separate Claude Code profile per account and switches work, personal and SSO in one command

CLIExtended access79Repository stars

claude-transplant moves Claude Code sessions between Claude Desktop accounts so the sidebar stays full after a switch.

CLIExtended access54Repository stars

A macOS CLI that creates isolated Claude Desktop and Claude Code profiles, each with its own login, chats, settings and icon.

CLIExtended access199Repository stars

A Python CLI that turns Claude Code JSONL transcripts into readable HTML and Markdown with search, filters and a timeline.

CLIMinimal access1.3KRepository stars

Local memory for Claude Code: a single binary indexes past conversations and injects relevant context into new sessions.

MCP serverBroad access230Repository stars

A Claude Code panel for several projects: statuses, button decisions, Git, PR, CI and usage limits in one window.

PluginExtended access79Repository stars

README in short

A Go program installed through npm or a prebuilt binary. Cloud keys and the encryption key stay with you, and config permissions are limited to the owner.

README badge

Report a problem