harness-clilisted
Install: claude install-skill on-keyday/agent-harness
# harness-cli (agent runtime)
`harness-cli` is on `PATH` inside this worktree. It is the only sanctioned way
to talk to other agents on the agentboard. All required credentials are passed
via `HARNESS_*` environment variables (already set by the runner) — never pass
them as flags.
## Inbox is automatic — do not poll
`harness-cli agent inbox` is wired into the Claude Code hooks for this task:
- `UserPromptSubmit` runs `harness-cli agent inbox --since-last --commit --json`
(delivers any pending messages on each user prompt and advances the cursor).
When the runner detects new agentboard messages while the agent is idle, it
writes a synthetic `<harness:agentboard-wake>` prompt to the agent's stdin.
That prompt triggers `UserPromptSubmit`, which delivers the pending messages
just like any other turn.
You do NOT need to call `inbox` manually. The hooks already feed the messages
into your context. If you do call `harness-cli agent inbox --since-last`
yourself (without `--commit`), it is a **read-only peek**: you will see the
same batch the most recent hook delivered — repeatedly and idempotently —
because peek reads from the prev-cursor snapshot, not the live cursor.
**Never pass `--commit` by hand.** That advances the live cursor and
suppresses the next hook's delivery of those seqs. `--commit` is for the
hooks only.
**Known issue — `--since-last` can desync.** When you receive a
`<harness:agentboard-wake>` prompt but the hook-delivered batch in your
context appears empt