@go-season/relay
v0.2.0
Published
Cross-device & cross-tool AI coding session sync
Readme
relay
Cross-device & cross-tool AI coding session sync. v1: Claude Code only.
Why
Claude Code stores sessions locally under ~/.claude/projects/<encoded-cwd>/.
There is no built-in way to resume a session from another machine. relay syncs
those jsonl files through a git repository you own, with per-machine path
remapping so the same project resumes correctly when its absolute path differs.
Install
npm install -g relay-cli
# or: pnpm add -g relay-cliRequires Node 20+ and git on PATH.
Quick start
On machine A:
# 1. one-time setup, points at a private git repo you own
relay init [email protected]:you/relay-store.git
# 2. register the current project (run this in the project root)
cd ~/Code/your-project
relay link your-project
# 3. push the latest CC session
relay pushOn machine B (different absolute path, same private remote):
relay init [email protected]:you/relay-store.git
cd ~/work/your-project
relay link your-project
relay pull
# the printed `claude --resume <id>` command is what to run nextCommands
relay init <git-url>— clone the store and write local config.relay link <slug>— register the current cwd as a project.relay push [--session <id>] [--all] [--since 2d]— upload sessions.relay pull [<slug>] [--session <id>] [--overwrite]— download sessions.relay list [<slug>] [--json]— list projects or sessions.relay show <sessionId> [--tail N] [--raw]— render a stored session.relay status— current machine, store sync state, linked projects.
All commands accept --dry-run and --verbose.
Encryption
relay does not encrypt the store. Recommended options, lowest friction first:
- Private GitHub repository — GitHub can read content; trust them or don't.
- git-crypt — transparent encryption per file; well-supported.
- age with custom git filters — modern alternative.
Pick the trust model that fits your threat model.
Known limits in v1
- Manual
push/pullonly. No background daemon, no auto-hooks. - Claude Code only. Codex / Cursor adapters are planned for v1.5 / v2.
- Session size cap is soft: jsonl > 50 MB pushes with a warning.
See docs/superpowers/specs/2026-05-07-relay-design.md for the full design.
