Wire
Switch agents. Keep your place.
Type “handoff” and Harbor saves where the work stands: the goal, what is done, what is next, and what is not pushed yet. Type “handoff pick” in Claude Code, Codex, Cursor or Copilot and it carries on from that exact point, or hand the work to a teammate.
Handoffs run on the hooks Harbor already installs, so there is nothing new to set up. If npx harborloop init has wired your agents, they understand the words below. New here? Start with the quickstart.
Hand it to yourself, in another agent
Say handoff where you stop
handoffThe agent writes a short note in its reply: the goal, what is done, what is next, the open questions and what was decided. You see it in the chat before Harbor keeps it. Harbor reads the branch, the commit, the uncommitted files and the commits not pushed from git itself, so the agent cannot get them wrong. Then it says:
Harbor: handoff saved: "Explain the 7-day invite expiry". Say "handoff pick" in any agent in this repo to carry on.Open any agent in the same repo
On that session’s first prompt, Harbor tells you a handoff is waiting:
Harbor: a handoff is waiting from Claude Code, 4 min ago: "Explain the 7-day invite expiry". Say "handoff pick" to load it.Say handoff pick
handoff pickHarbor hands the agent the note, with the git state when it was saved beside the git state now, and the agent carries on from the next step. You do not explain anything again.
A handoff belongs to the repo, not the branch, so it waits for you on any branch. If you saved it on another one, the agent stays where you are unless the next step needs code that is only there, and then it asks before switching.
Hand it to a teammate
handoff @danaName them by first name, full name, the part of their email before the @, or the whole email. Harbor sends them a notification and an email with the goal and a link. The note itself stays in Harbor. On their next session in that repo, their agent hears that a handoff is waiting, and handoff pick loads it, in whichever agent they use. Their agent fetches your branch and switches to it, and asks them first if they have uncommitted changes of their own.
If Harbor finds nobody by that name, or more than one person, it says so and saves nothing. It never lists your teammates back to you.
The words
Only a prompt that is the command counts, so “fix the handoff bug” is an ordinary prompt. A Claude Code plugin user can also type /harbor:handoff.
| Type | What it does |
|---|---|
handoff | Save a handoff for yourself, in this repo. |
handoff @dana | Hand it to a teammate. An email works too: handoff to dana@acme.com. |
handoff pick | Load the newest handoff waiting for you. handoff pick 2 loads the second. |
continue from claude | Pick up from that agent: claude, codex, cursor or copilot. |
continue | On a session’s first prompt, when exactly one handoff is waiting, the same as handoff pick. |
How long a handoff waits
- Yours is offered for 72 hours, in the repo you saved it from, on any branch.
- A teammate’s is offered for 7 days, in that repo.
- Every handoff is deleted 90 days after it was saved.
Handoffs belong to the person who saved them and the person they were handed to. A workspace admin cannot read yours.
Next, bring the people who never open an agent in: save a decision from Slack.