Your agents / People
People
A person carries work the same way an agent does. You catch it, work from its baton, save, and pass it on. This page shows a person catching an agent's work and handing it back.
A carrier is the handle that holds a piece of work now. The baton is the short note that tells the next carrier where the work stands. Your first relay explains both.
Before you start
The examples use the workspace billing from Your first relay. You are dana, its owner, and build-agent is one of your agent handles. build-agent already holds BILL-65. It opened it from your shell with the baton.md file from Your first relay:
handsoff open BILL-65 --title "Switch to the v2 tables" --as build-agent --baton baton.md
Opened BILL-65 at r1 (work 101)
Leg 181; lease expires 2026-10-05T05:16:57.385178+00:00
Work names are used once in a workspace, so if BILL-65 already exists in yours, use a new name. Later on this page, handsoff baton writes a new baton.md for you to edit.
Your person handle
You need a person handle in the workspace:
- If you created the workspace, you have one already. It is the name you gave with
--owner-handle. - If someone else owns it, they add a handle for you and send you a claim code. You run
handsoff handle claimand paste it. Workspaces shows the steps.
Either way, the tool remembers your handle on your machine. So you need no --as flag. The commands on this page run as dana, the owner of the billing workspace.
You need no adapter and no standing instruction. Those are for agents.
Catch an agent's work
An agent can pass work to you by name. Here build-agent offers BILL-65 to dana:
handsoff offer BILL-65 --as build-agent --to dana
Offered BILL-65 at r1 to dana until 2026-10-06T04:46:57.815603+00:00
handsoff end BILL-65 --as build-agent --reason clean
Ended BILL-65: clean
To see what waits for you, run handsoff status. It lists the work you hold, the offers that wait for you, and dropped work you may catch. Catch the work with continue:
handsoff continue BILL-65
Caught BILL-65 at r1 from build-agent via offer
Attention
Warning: References: no work reference
This machine has no pending writes.
## True now
The v2 invoice tables exist in staging. Nothing is copied into them yet.
## Next action
Copy the 2025 invoices into the v2 tables.
…
You hold the work now. Read the whole baton. The tool prints it, then the steps to take, then your lease.
Keep your hold
A lease is how long you hold the work, 30 minutes by default. For an agent, its adapter renews the lease while it works. Nothing does that for a person. Each accepted save renews it. If you need longer between saves, renew it yourself:
handsoff renew BILL-65
Renewed BILL-65; lease expires 2026-10-05T05:16:59.215937+00:00
If your lease runs out, the work drops, and anyone in the workspace can catch it. Leases and carriers says more.
Save your baton
Print the current baton into a file, edit it, and save it back. Here dana edits it to say that the finance lead approved the switch, and that the next step is to point the invoice service at the v2 tables:
handsoff baton BILL-65 > baton.md
handsoff save BILL-65 --baton baton.md
accepted as r2
Write it for the agent that comes next. Say what is true now, the next step, and what will go wrong if nobody tells it. The agent works from the baton, its references and your notes. It knows nothing else of what you did.
Hand it back to an agent
Offer the work to the agent's handle, then end your leg. A leg is one carrier's stretch on the work:
handsoff offer BILL-65 --to build-agent
Offered BILL-65 at r2 to build-agent until 2026-10-06T04:47:00.099476+00:00
handsoff end BILL-65 --reason clean
Ended BILL-65: clean
Offer before you end. If you end without an offer, the work drops. To let any handle take it, write --any in place of --to build-agent.
When the agent is asked to continue BILL-65, it catches the work, as its standing instruction says:
HANDSOFF_HANDLE=build-agent handsoff continue BILL-65
Caught BILL-65 at r2 from dana via offer
Attention
Warning: References: no work reference
This machine has no pending writes.
## True now
The finance lead approved the switch to the v2 tables.
## Next action
Point the invoice service at the v2 tables.
…
Ask without taking the work
Any handle in the workspace can add a note to a piece of work, without holding it. Use one to ask the carrier a question:
handsoff note BILL-65 --kind question --text "Did the invoice service pick up the new tables?"
Note accepted for BILL-65
The kinds are info (the default), question, skipped and refusal. The next handle to catch the work sees every note added since the last catch.
See who carried it
history shows every leg in order. A person shows as person in brackets, an agent as agent:
handsoff history BILL-65
…
Leg 2: dana (person, unknown)
caught the offer at r1; saved r2
runtime unknown and model unknown (as reported); session unknown
ended with reason clean at 2026-10-05T04:47:00.480269+00:00; handed over to build-agent
…
Leg 3: build-agent (agent, unknown)
caught the offer at r2; saved none
runtime unknown and model unknown (as reported); session unknown
live; lease expires 2026-10-05T05:17:01.00786+00:00
…
The word after the kind is the name of the person the handle belongs to. It reads unknown when your team's sign-in page sends no name.
A person handle sees one thing an agent handle never sees: where each agent's transcript lives, when the agent gave that. Security and privacy explains why.
Act as one of your agents
You can act as any handle that belongs to your sign-in. Add --as <handle> to the command, as the offer from build-agent above did. Use this to move work along when an agent cannot. The history records the act under that handle, so add a note that says what you did.