Skip to content

ardasevinc/claude-code-migrate

Repository files navigation

ccm - Claude Code Migrate

CLI tool for migrating AI CLI configurations between machines via SSH/SCP or local backup archives.

Versioning:

  • Package uses semver (1.2.0, etc.)
  • Git release tags use vX.Y.Z (example: v1.2.0)

Launch providers:

  • claude (~/.claude)
  • codex (~/.codex)

Shared skills are migrated from ~/.agents/skills and ~/.agents/lazy-skills when any provider is active.

ccm push uses overlay semantics: it overwrites/adds the selected portable config on the target host, but does not delete remote-only runtime state such as sessions, auth, logs, history, or cache.

After pushing Codex, ccm normalizes path-based Codex MCP command values when the same binary is available on the remote PATH.

Installation

bun install
bun link

Usage

Initialize config

ccm config --init
# Edit ~/.config/claude-code-migrate/config.toml

Backup

ccm backup                      # all enabled providers + shared
ccm backup codex                # codex + shared
ccm backup codex ./out.tar.gz   # codex + shared to custom path
ccm backup ./out.tar.gz         # all enabled providers + shared
ccm backup --dry-run

Push

ccm push                        # all enabled providers + shared (host from config)
ccm push codex                  # codex + shared
ccm push user@host              # all enabled providers + shared
ccm push claude user@host       # claude + shared
ccm push --all user@host        # all providers + shared, regardless of config enablement
ccm push --providers claude,codex user@host
ccm push --dry-run

Restore

ccm restore ./ccm-backup.tar.gz        # restore all providers in archive
ccm restore ./ccm-backup.tar.gz codex  # restore only codex
ccm restore ./ccm-backup.tar.gz --dry-run

Config file

Location: ~/.config/claude-code-migrate/config.toml

[target]
type = "ssh"
host = "user@example.com"

[providers.claude]
enabled = true
settings_local = false
mcp_config = true

[providers.codex]
enabled = true

[backup]
path = "~/backups/ccm"

Full Gate

bun run full-gate

full-gate runs Biome lint, Biome format check, TypeScript typecheck, and Vitest.

Useful scripts:

bun run test        # Vitest once
bun run test:watch  # Vitest watch mode
bun run check       # alias for gate

License

MIT

About

CLI tool for migrating Claude Code configurations (~/.claude/) between machines via SSH or local backup archives

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors