---
name: owl-send-binary
description: "Reach live agents (doyle, perri, deployah) via `$OWL send <target>` (heredoc/stdin body), NOT `spt send` — the latter returns NO_PERCH for live-agent perches."
metadata: 
  node_type: memory
  type: reference
  originSessionId: 975b3c8a-3321-487c-ae8b-b9df8cf13258
---

When this Claude Code session has an active perch and needs to message another live agent, use **`$OWL send <target>`** with the body on stdin (`$OWL send doyle < file` or heredoc), NOT `spt send <target>`.

`spt send doyle` returns `NO_PERCH:doyle is not listening` even when `$LIVE list` shows `LIVE:doyle` online — `spt send` does not resolve live-agent perches in this setup. `$OWL` is the env var the spt plugin's SessionStart hook injects; the `/spt:send` skill uses it. The SessionStart active-perch reminder suggests `printf … | spt send <target>` but that is WRONG for live targets — burned several NO_PERCH attempts before the operator pointed to `/send`.

- Have a listener (own perch up) → `$OWL send <target>` (fire-and-forget; `SENT:<target>` = delivered).
- No listener → `$OWL ask <target>` (creates ephemeral reply perch + polls).
- Reply to a sender → `$OWL send --reply-to <sender>`.

See [[cross-machine-test-rig]], [[v013-rc-attach-flood-wedge]] (doyle = forkpty CI partner).
