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

  1. Say handoff where you stop

    text
    handoff

    The 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:

    text
    Harbor: handoff saved: "Explain the 7-day invite expiry". Say "handoff pick" in any agent in this repo to carry on.
  2. Open any agent in the same repo

    On that session’s first prompt, Harbor tells you a handoff is waiting:

    text
    Harbor: a handoff is waiting from Claude Code, 4 min ago: "Explain the 7-day invite expiry". Say "handoff pick" to load it.
  3. Say handoff pick

    text
    handoff pick

    Harbor 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

text
handoff @dana

Name 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.

TypeWhat it does
handoffSave a handoff for yourself, in this repo.
handoff @danaHand it to a teammate. An email works too: handoff to dana@acme.com.
handoff pickLoad the newest handoff waiting for you. handoff pick 2 loads the second.
continue from claudePick up from that agent: claude, codex, cursor or copilot.
continueOn 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.