Your AI session,
anywhere.

Start in Cursor on your laptop, pick it up in Claude Code on your desktop. ai-nomad syncs your AI coding sessions across machines and tools, end-to-end encrypted, in a private GitHub repo you own. No server.

Claude CodeCodexCursor
❯npx ai-nomad init you/ai-sessions --create

How it works

One session, three tools, every machine.

A plugin in each tool keeps your vault in sync in the background. When you sit down somewhere else, your sessions are already there.

1

Work as usual

When a session ends in Claude Code, Codex or Cursor, its hook encrypts the session and pushes it. Nothing to remember.

2

Stored in your repo

Every session is sealed with AES-256-GCM on your machine before it reaches your private GitHub repo. GitHub only ever sees ciphertext.

3

Continue in any AI

Same tool: resume the original session natively. Different tool: ai-nomad hands the transcript over so the new AI picks up where the last one stopped.

Install

Set up once per machine.

Needs Node 22.5+ and git. The GitHub CLI (gh) is optional but lets --create make the private repo for you.

1Create your vault on the first machine

❯npx ai-nomad init you/ai-sessions --create

This prints your vault key (nomad1-…). Save it in your password manager: it's the only way to decrypt your sessions.

2Join from every other machine

❯npx ai-nomad join you/ai-sessions

3Add the plugin to your tools

❯claude plugin marketplace add serkankorkut/ai-nomad
❯claude plugin install ai-nomad@ai-nomad
Then: /ai-nomad:sessions/ai-nomad:continue <id>/ai-nomad:sync

Or set up all three at once with npx ai-nomad install all.

Security

Your key never leaves your machines.

There's no ai-nomad server. Storage is a private GitHub repo you own, and encryption happens before anything is pushed.

  • End-to-end encrypted. AES-256-GCM, with keys derived from one random 256-bit key that's generated locally.
  • Nothing readable in the repo. File names are keyed HMACs, so tools, projects and titles stay hidden. Commits use a neutral identity.
  • Tamper-evident. Each file's path is bound into its encryption, so blobs can't be swapped or renamed undetected.
  • Secrets scrubbed first. API keys, tokens, JWTs and private keys are redacted from transcripts before encryption.
  • Private repos only. Setup refuses a public repo unless you explicitly allow it.

What GitHub sees

meta/ 2f9afa9d1918c261608e1208.enc 4c6ad52a7e84736b23e8636f.enc sessions/ 2f9afa9d1918c261608e1208.enc 4c6ad52a7e84736b23e8636f.enc keycheck.enc $ xxd sessions/2f9a…enc | head -2 4e4d 4431 25ed 07f0 d1e1 1716 NMD1%....... 1c20 dff0 b3b0 41f0 970d 1996 . ....A.....

Only the number of sessions, their sizes and when you sync are visible.

FAQ

Questions

Do I need to run a server?

No. ai-nomad is a CLI plus a plugin per tool. Sync goes through git to a private GitHub repo you own.

How does a Codex session continue in Claude Code?

Within the same tool, ai-nomad restores the original session file so you can resume it natively (claude --resume, codex resume). Across tools it builds a handoff: the opening request plus as much recent history as fits, with tool calls condensed. Each plugin's MCP server serves that handoff to the new AI.

What happens if I lose my key?

Your sessions can't be decrypted, by you or anyone else. Keep the nomad1-… key in a password manager. You can print it on any joined machine with npx ai-nomad key.

Will my repo grow forever?

Each update stores a new compressed, encrypted copy of the session. Run npx ai-nomad compact now and then to squash history; other machines pick that up on their next pull.

Is it open source?

Yes, MIT licensed. It's on npm and GitHub.