syncport handoff

syncport carries your uncommitted work, your .env and other ignored files, and the agent session to your other device. Continue in the same agent, or hand it to a different one.

How to use01 / 04
  1. 01npm i -g syncportonce
  2. 02syncport setuponce per device
  3. 03syncport handoffwhen you leave
  4. 04syncport continuewhere you arrive
Illustrative output, paths shortened. Inside an agent, just say hand this off. No relay wanted? Use direct SSH.
Crossing agents

Start in Codex. Continue in Claude Code.
Or Cursor, or Hermes, or the same one.

Hand off to the same agent and the native session resumes. Hand off to a different one and syncport writes a brief into its context: the goal, where it stopped, the recent conversation and the changed files.

Codex
Claude
Cursor
Hermes
Codex
Claude
Cursor
Hermes
Codex Claude CodeHandoff brief
continue what I was doing on my desktop
syncport continue
Handoff from Codex on desktop, 41 messages
Writing a brief into Claude Code's context:
  • Goal
  • Where it stopped
  • Recent conversation
  • Changed files

Different agent: syncport writes a handoff brief into the receiving agent's context, so it starts with the goal, the last steps and the diff.

Or ask inside any agent“hand this off”“continue what I was doing on my desktop”
End-to-end encrypted

The relay carries it.
Only your devices can open it.

What the relay sees
  • device names
  • agent names
  • project names
  • package sizes
  • times

Enough to route a package to the right devices and show your dashboard. Nothing about what is inside.

What stays sealed
  • source code and diffs
  • .env and other secrets
  • agent transcripts
  • session titles
  • local paths
  • handoff briefs

Every handoff is encrypted with age for each of your devices and signed by the sender with Ed25519.

14 daysPackages wait on the relay, so the other device can be asleep or off.
3F9A‑12C4Approve each new device in the browser by comparing its code and key fingerprint.
1 key eachEvery device has its own keys. A device whose key changes is rejected.
--fromAsk a device that is online to send its latest work: syncport continue --from desktop.
Every device you own

Your Mac, your laptop,
a Linux VPS, a Mac mini.

Prefer no relay
Tailscale

Pair two devices over SSH or your tailnet and hand off directly, with nothing stored in between.

syncport sync laptop
Cloud and VPS
EC2AWS
Google Cloud
DigitalOcean
Vultr
Hetzner
Linode
OVHcloud
any SSH host

One static binary. A server needs no Node.js: install it with one line and run syncport setup.

curl -fsSL https://syncport.live/install.sh | sh
macOS and Linux, arm64 and amd64
What moves

Everything you need travels.
Logins and build output stay.

desktop
laptop
node_modulesbuild outputagent loginsprivate keyscodex sessionstaged changesunstaged changes.envignored filesclaude sessioncursor chathandoff brief

Encrypted for your devices, signed by the desktop. Agent memory and project settings come along.

Take it with you.

macOS and Linux, arm64 and amd64. Needs Git. Sign in with Google once per device.

$ npm install -g syncport

or curl -fsSL https://syncport.live/install.sh | sh