Parcel — hand off work to another machine
The parcel CLI is on PATH. Targets are machines defined in
~/.parcels/targets/<name>.conf; list them with parcel targets.
Workflow
Write intent into
HANDOFF.mdat the repo root before shipping. This is the most valuable part of the handoff — the remote agent (possibly a different one) reads it first. Include:- what you were working on and why
- current state (what works, what's verified, what's mid-flight)
- concrete next steps, in order
- known gotchas and how to verify progress
Preserve any existing
## Machine state (auto-generated by parcelsection — parcel regenerates it on every send.Ship. From inside the repo:
parcel send <target> --agent <claude|codex|pi|droid|grok> [--session <id>]- If you are Claude Code, your session id is the UUID in your scratchpad
path (
.../<uuid>/scratchpad). If you are Grok Build, it is the session directory name under~/.grok/sessions/<encoded-cwd>/<uuid>/. If unsure, omit--session— parcel picks the newest session for this cwd. --agent grok(alias:grok-build) transplants a Grok Build session.--prompt "..."steers what the remote agent does first (default: read HANDOFF.md and continue).--idleships without launching anything.
- If you are Claude Code, your session id is the UUID in your scratchpad
path (
Verify it is actually running — never assume.
parcel status <target>tails the remote tmux pane; you should see the agent producing output. If the launch failed, runparcel doctor <target>and report exactly what is missing.Tell the user how to reach it:
ssh -t <host> tmux attach -t parcel-<repo-name>.
Fixing missing auth (from parcel doctor)
- claude — user runs
claude loginonce on the target, or mints a token on an authed machine withclaude setup-tokenand setsCLAUDE_CODE_OAUTH_TOKENin the target's shell profile. - codex / pi / grok —
parcel auth <target>copies the credential files. Grok alternative: setXAI_API_KEYon the target, or rungrok login. - droid — user runs
droidonce on the target to log in.
Notes
- Only git repos can be parceled (
parcel sendruns from inside the repo). - The whole working tree ships — including untracked files and
.envs — so warn the user before sending a repo with secrets to a shared machine. - Re-sending the same repo overwrites the remote copy (rsync --delete) and restarts the tmux session.