# Hand off and move

> Give a session’s work to another agent, or move it to another machine, with what’s been done so far.

Started with Claude Code and want Codex to finish? Ran out of usage halfway? Want the work to keep going on a server? **Hand off** gives a session’s work to another agent, on the same machine or another one. The new agent starts with a note of what’s been done.

![The Hand off menu on the session Checkout fix: Hand off to Codex, Hand off to OpenCode, A fresh Claude Code session, and Move to Orbit, Beacon and the other machines.](https://muxin.dev/images/shots/handoff-dark.png?v=a4864fba)

*Hand off to another agent here, start fresh with the same one, or move to another machine.*

## Hand off to another agent

On a session’s page, click **Hand off** and pick an agent.

1. **A note**: Muxin writes `.muxin/handoff.md` in the session’s folder.
2. **The new agent starts**: In the same folder, asked to read the note first.
3. **The old one ends**: Once the new one is up.

**A fresh … session** does the same with the same agent. Use it when a conversation has grown too long.

## What the note has

- **Where the work stands:** the git status, the branch’s commits and what changed.
- **The agent’s to-do list**, when it kept one.
- **The conversation so far:** what you asked, what the agent said, and a line for each tool call.

Muxin reads the conversation from the agent’s own transcript on the machine. So it works even when the agent ran out of usage or quit. Claude Code, Codex, Gemini CLI and Pi keep a transcript. For OpenCode and Amp, the note has what the terminal showed instead.

The note stays out of git: `.muxin/` goes in the checkout’s own ignore list.

## Move to another machine

**Hand off › Move to …** moves the work first, then hands it off there. Pick the agent on that machine and click **Move**.

![The Move to Orbit dialog: Claude Code or Codex as the agent, the branch fix-coupon-total with an uncommitted file going along, a fresh clone of acme/shop on Orbit, and a box to keep the session running on Forge too.](https://muxin.dev/images/shots/movedlg-dark.png?v=2b35c8a2)

*Moving Checkout fix from Forge to Orbit.*

1. **Packs the work**: Commits that aren’t on GitHub yet, uncommitted changes and new files.
2. **Copies it**: Through Muxin. The machines don’t need to reach each other.
3. **A new folder**: A worktree of your checkout there, or a fresh clone, on the same branch.
4. **The agent starts**: There, with the note.

- The folder you left stays as it was.
- A branch there with other commits isn’t touched. The work goes on `<branch>-2`.
- Work on the default branch gets a branch of its own, like `muxin/claude-7f3a`.
- The new folder shows under **Boxes › Agents’ workspaces**. Delete it there when you’re done, after pushing anything worth keeping.

> **Note:** Only git checkouts move, and not to Windows machines yet.

## In a box

A [box](https://muxin.dev/docs/boxes) changes agents in place. Its container and checkout stay, and the new agent starts there with the note. A box stays on its machine.

## Good to know

- The new agent may ask to trust the folder the first time. Answer it in the terminal.
- **Keep this session running** leaves the old session going too.
- Only what you asked counts as a request. The note tells the new agent so.

## From a terminal and from other agents

The MCP tool is `session_handoff`. The CLI:

```
muxin session handoff forge/claude-7f3a codex              # Codex takes over here
muxin session handoff forge/claude-7f3a codex --on orbit   # the work moves to Orbit
muxin session handoff forge/claude-7f3a claude --keep      # a fresh Claude Code, the old one kept
muxin session handoff box-7k2m9q codex                     # a box changes agents
```
