shelbi send

View as markdown
shelbi send [OPTIONS] <ID> <MESSAGE>

shelbi send injects a follow-up message into a running workspace. The text is typed into the workspace's live tmux pane as keystrokes, exactly as if you'd typed it there yourself. Use it to nudge, correct, or add a note to an agent that's already working, without interrupting or restarting the pane.

Shelbi delivers the text first, sends Enter as a separate key event, and then waits for evidence that the pane accepted the submission. If the text remains in the input box, Shelbi retries Enter once. A busy Claude pane may keep the accepted text visible as queued input until its current turn ends. Every result is recorded in ~/.shelbi/events.log as status=submitted, status=queued, or status=stuck; a stuck result also makes the command fail instead of silently waiting for a human keypress. Codex and custom runners still receive the split text/Enter sequence, but Shelbi does not apply Claude's UI parser to them. Their result is explicit status=unverified, which preserves delivery without claiming runner-specific proof.

NAME is resolved against the project YAML's workspaces: block.

Because send writes keystrokes into a pane, the message content is ephemeral. Shelbi records and verifies the delivery result, but the worker does not semantically acknowledge or persist the message body. When you need a message that survives, is logged, and is acked by the workspace, reach for shelbi message instead. See the comparison there.

Arguments

ArgumentTypeDefaultDescription
<ID>stringWorkspace name, resolved against workspaces: (required).
<MESSAGE>stringThe message to type into the pane (required).

Flags

FlagTypeDefaultDescription
-p, --project <PROJECT>stringenv / cwd lookupProject to operate on. Defaults to $SHELBI_PROJECT, or the registered project whose work_dir contains the current directory.

Examples

Nudge the alpha workspace with a follow-up instruction:

shelbi send alpha "also update the changelog before you commit"

See also

  • shelbi message — the durable, acked counterpart: appends a JSON record to a task's message log instead of typing into a pane.
  • Workspaces — what a workspace is and how the workspaces: block names them.