Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/rhan1/crewline/handoffgit clone --depth 1 https://github.com/rhan1/crewlineWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00017 | $0.01482 |
| Opus 5 | $0.00009 | $0.00741 |
| Sonnet 5 | $0.00003 | $0.00296 |
| Haiku 4.5 | $0.00002 | $0.00148 |
Grade A, and why
handoff scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 128 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Hand the given task to a dedicated executor session running in its own named Warp tab, so this (manager) session stays free for planning, review and orchestration instead of being blocked for the length of the build.
The split matters because a session that is executing cannot also be thinking about what comes next. One tab per workstream; the manager watches them.
Protocol
-
Write the spec to
~/.claude/handoffs/<task-slug>.md.The executor starts with zero conversation context — everything it needs must be in the file. Include: the goal, success criteria, the exact file paths involved, constraints (project conventions,
CLAUDE.mdrules, things it must not touch), and the verification steps that prove it worked. Spec quality is the whole game; a vague spec produces a confident wrong answer in a tab you weren't watching. -
Spawn the tab:
~/.claude/scripts/spawn-executor.sh <task-slug> [spec-file] [cwd] [model]Defaults: spec
~/.claude/handoffs/<slug>.md, cwd$HOME, modelopus(override the default withEXECUTOR_MODEL).The script pre-seeds workspace trust for the cwd so the session never blocks on the "Do you trust this folder?" dialog, writes a Warp tab config, and opens a tab named
<task-slug>. Claude engines boot with/color purpleas their first input — a purple prompt bar plus a purple tab is the visual convention for "this is an agent session, not me typing."Pick the model per task, don't hardcode one. Judgment-heavy or architectural execution →
opus(oropus[1m]for a large context). Mechanical / batch / data work → a cheaper tier, or an external CLI engine. Whichever provider has budget to spare should take the work when more than one is capable of it — see Cross-provider balancing in the README.Note that this lane is not covered by the RuFlo model-routing hook, which only sees
Agenttool calls. Here the manager applies the routing decision directly.Optional engines. Passing
codexoragyas the model runs those CLIs instead of Claude, and requires them on$PATH(see Prerequisites in the README). Their tabs stay open after the run so you can inspect the output. -
Kick off — Claude engines only. A Claude tab boots interactive and idle; it needs a kickoff message.
Wait for the process, then send it:
until pgrep -f "[-]n <slug>" >/dev/null; do sleep 2; done; sleep 10Then
SendMessageto the session name: "Read<spec path>and execute it fully" — withnotify_when_idle: truein the same call, so completion arrives as an event. Never poll with "are you done yet?".codex/agytabs receive the spec at boot and cannot be steered bySendMessage. Babysit those by watching their log instead, and liveness-check them early — a silent external CLI can hang for hours, and an empty-but- "successful" run is indistinguishable from a real one unless you check the deliverable. -
Steer mid-flight with
SendMessageto the session name (Claude engines). Executors are told the manager may steer them. -
Report-back contract — every handoff, every engine. The kickoff message (Claude) or the spec itself (codex/agy) must require, as the executor's final step, writing
~/.claude/handoffs/<slug>.report.md:# <slug> — completion report ## DONE — each completed item, one line each, with evidence (file path, test output, URL) ## NOT DONE — anything skipped or blocked, and WHY (empty section if none) ## FILES CHANGED — every file created / modified / deleted ## VERIFIED — the commands actually run to prove it worksWithout this, "it finished" is the only signal you get, and that is not the same as "it worked."
-
On the idle notice (Claude) or the report file appearing (codex/agy): read the report, then spot-verify the deliverables yourself — verify the system, not the report. Then update the task list and any project notes, and brief the user. If the report lists NOT-DONE items, decide: steer the executor to finish, respawn it with a sharper spec, or surface the blocker.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 128 lines · 17 tokens per session scan A 4f8fef7b1ac1
handoff is a command published in the GitHub repository rhan1/crewline (2 stars, last pushed 9d ago), licensed MIT. It adds 17 tokens to every session and 1,482 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
minutes-ideas
Surface recent voice memos and ideas captured from any device. Use when the user asks "what ideas did I have?", "what were my recent memos?", "what did I record while walking?", or wants to recall a captured thought.
autobot-result
Print the most recent result.md for an autobot session, so the user can see how a bot is doing without attaching to its tmux session.
engage.actions
Execute Phase 7 - Actions on Objectives and Goal Achievement.
version
Show installed vs latest ai-sdlc plugin version. Bypasses the 24h SessionStart cache.
thread
Manage conversation threads (create, switch, update, delete, show).
handoff
Generate or load a session handoff. Usage: /handoff [create|resume].