Codonic
← All apps

hopsesh

Find your Claude Code sessions on your other machines and continue one here

  • macOS
  • Linux (CLI)
  • Windows (CLI)

Install the CLI · macOS and Linux

curl -fsSL https://raw.githubusercontent.com/roeehrl/hopsesh/main/scripts/install.sh | sh

Free Version 0.1.0 · Open source, Apache-2.0 · Alpha · Not affiliated with Anthropic

The hopsesh macOS app listing seven Claude Code sessions from two machines, laptop and studio, grouped by repository, each with a Hop here button.

You started something in Claude Code on your desktop, and now you are on your laptop. hopsesh shows every session on all your machines and moves the one you pick here: repository, worktree, paths and all. Then it gives you the claude --resume command.

It finds your machines in Tailscale and ~/.ssh/config, and connects only to the ones you allow, with your own ssh, keys and agent. Nothing needs installing on the other machines. They need an SSH server and their Claude Code sessions, nothing more.

Every move is shown as a plan first: the repository here, or where it will be cloned; the worktree; unpushed or uncommitted work left on the other machine; and the paths that will be rewritten, Windows paths included. hopsesh undo reverses a move. The resumed session’s first message tells Claude it was moved and asks it to check that nothing is missing.

There is no hopsesh server, no relay and no telemetry, and hopsesh never calls the Anthropic API: only Claude Code itself talks to the model. It sits beside MyCNC, which drives the agents on a Mac from an iPad or iPhone. MyCNC brings the controls to you; hopsesh brings the session.

hopsesh is open source under the Apache License 2.0, and it is alpha software. It works end to end on macOS and Linux; Windows support is built but less tested. It is an independent project, not affiliated with Anthropic.

Inside the app

A look inside

  1. Every session on every machine, in one list.

    Grouped by repository, with the machine, path, branch, last prompt and whether it is running now.

    It reads Tailscale and ~/.ssh/config, and connects only to the machines you allow.

    The hopsesh macOS app listing seven Claude Code sessions from two machines, laptop and studio, grouped by repository, each with a Hop here button.
  2. A plan before anything moves.

    From where, to where, the repository and the branch, and how many paths it maps.

    Not cloned here? Press c and it clones it first. Remote Control is one more key.

    The hopsesh terminal UI showing the plan to hop the session Terraform: move staging to arm64 from studio to this machine, with clone and Remote Control switched on.
  3. Then pick up where you left off.

    Paths rewritten for this machine, then the exact claude --resume command to run.

    The resumed session is told it was moved. hopsesh undo reverses it.

    The hopsesh terminal UI after the move: eight paths rewritten, and the claude --resume command for the session with Remote Control on.
  4. The whole hop, in the terminal.

    The same engine as a CLI and terminal UI on macOS, Linux and Windows.

    Made-up machines and sessions, recorded from the project’s own demo.

Built for the job

Who hopsesh is for

Claude Code on more than one machine

A desktop and a laptop, a work and a home machine, or a Linux box you reach over SSH. Continue the session where you are instead of starting over.

Different users, folders and systems

A different username, home folder or operating system on each machine is the case it was built for, Windows paths included.

People who keep it on their own machines

Sessions go machine to machine over your own SSH. No account, no server, no telemetry, and no copy of a transcript anywhere else.

Capabilities

What it does

Finds your machines

Reads Tailscale and ~/.ssh/config, including aliases, ProxyJump and ProxyCommand. It connects to nothing until you allow a machine, and shows each SSH host key for you to confirm first.

Every session, by repository

Machine, path, branch, worktree, last prompt, when it was last active and whether it is running right now, for every session on every machine you allowed.

The repository and worktree, here

Finds the repository on this machine by its remote, or clones it into your repos folder. A session from a worktree gets a matching worktree, so your checkout stays on its own branch.

Paths rewritten for this machine

Repository, home and config folders are mapped in one pass, including JSON-escaped Windows paths and separators between Windows and macOS or Linux. Session ids are never touched. Paths it cannot map are left as they are and listed.

A plan first, and undo

Nothing is written until you have seen the plan. Unpushed commits and uncommitted files on the other machine get a warning. hopsesh undo removes the copy and restores anything it set aside.

Resume, with Remote Control if you want it

Prints the exact claude --resume command, or runs it. It can start the moved session with Remote Control on and tell the old session where the work went.

Transcripts treated as secrets

Likely secrets are flagged while moving and can be redacted from the copy. Logins, keys and account data never move. Every remote action goes to a local audit log.

CLI, terminal UI and a Mac app

One engine behind all three, with --json output on the commands that list and move. The macOS app adds a preflight screen for each move.

Free and open source

Get hopsesh

Install the CLI Terminal macOS and Linux · Command line and terminal UI curl -fsSL https://raw.githubusercontent.com/roeehrl/hopsesh/main/scripts/install.sh | sh Checks the download against the release’s checksums.txt and its signature. hopsesh update installs later releases with the same checks.
Install the CLI Terminal Windows, in PowerShell · Command line and terminal UI irm https://raw.githubusercontent.com/roeehrl/hopsesh/main/scripts/install.ps1 | iex Same checks as the macOS and Linux script. Windows support is built but less tested than macOS and Linux.
hopsesh for Mac .dmg macOS app · macOS 13 or later · Apple silicon and Intel · v0.1.0 Download Signed and notarized by BlueGuru LLC. The same engine as the CLI, with a preflight screen for each move. Linux packages and all files GitHub Latest release · .deb, .rpm and .apk for amd64 and arm64, plus archives Open on GitHub Release notes, checksums and every build of the current version. Source on GitHub GitHub Apache-2.0 · Go 1.26 or later to build Open on GitHub From source: go install github.com/roeehrl/hopsesh/cmd/hopsesh@latest

The short answers

Questions about hopsesh

Is hopsesh free?

Yes. hopsesh is free and open source under the Apache License 2.0.

Does anything leave my machines?

No. Sessions go directly between your machines over SSH. hopsesh has no server and no telemetry, and it never calls the Anthropic API. The macOS app can check GitHub once a day for new versions, only if you say yes.

Do I need Tailscale?

No. Any machine you can ssh to works, including aliases, ProxyJump and ProxyCommand from your ~/.ssh/config. Tailscale just makes machines easy to find.

Does the other machine need hopsesh installed?

No. It needs an SSH server (Remote Login on macOS, OpenSSH on Windows) and its Claude Code sessions. An optional helper makes listing faster on machines with long histories; it is pinned by SHA-256, listens on nothing and can be removed.

What if the session is still running on the other machine?

By default hopsesh copies it as it is and asks the old session to stop. With --fork, both copies continue independently. hopsesh refuses to overwrite a session that is running on this machine.

How is this different from claude --teleport or Remote Control?

Teleport brings a session from Claude Code on the web to your machine. Remote Control lets you drive a session that keeps running where it is. hopsesh moves a session between your own machines, so it continues with the files and tools of the machine you are at, and it can turn Remote Control on for the moved session.

What if the two machines use different Claude accounts?

hopsesh reads claude auth status on both sides. If the accounts differ, it leaves out thinking blocks, because they are signed for the original account.

How do I undo a move?

Run hopsesh undo with the session id. It removes the copy and restores anything it set aside. hopsesh undo with no arguments lists recent moves.

Is hopsesh made by Anthropic?

No. hopsesh is an independent project, not affiliated with, endorsed by or sponsored by Anthropic. “Claude” and “Claude Code” are trademarks of Anthropic, PBC, and appear here only to say what hopsesh works with.

Privacy by design

What hopsesh knows about you

  • hopsesh collects nothing about you. No account, no analytics, no telemetry, no crash reporting.
  • There is no hopsesh server. Sessions move only between your own machines, over your own SSH.
  • hopsesh never calls the Anthropic API. Only Claude Code itself talks to the model, under each machine’s own login.
  • The macOS app checks GitHub for new versions once a day, and only after you say yes.
Read the full hopsesh privacy policy