Sleeptalk

Agent integrations

oh-my-pi

Talk to oh-my-pi (OMP) through Pi's RPC event mapping, with an isolated SDK launcher when tool approvals stay with the caller.

Setup

  1. Install oh-my-pi on the runtime host so omp is on the PATH. See the oh-my-pi README.
  2. Log it in to a model with its own login.
  3. Run sleeptalk and choose oh-my-pi, or let your agent run sleeptalk host ensure --agent omp.

If oh-my-pi already uses OpenRouter, Venice, Groq, or Together, setup can offer that key for speech. It is used only if you say yes. It looks in ~/.omp/agent/auth.json and models.json.

Connection and session

With permission_mode = "auto" (the default when the field is empty), Sleeptalk starts omp --mode rpc --auto-approve --no-session and uses the same stream handling as Pi. Tools run without asking.

With pending or deny, Sleeptalk instead launches the npm SDK through Bun and a packaged launcher in a temporary home. That path needs:

  • the npm package @oh-my-pi/pi-coding-agent at one of the exact verified versions 18.2.1 or 18.10.2 (18.10.2 is recommended), with pi_bin pointing at that package's CLI entry, not a compiled standalone binary;
  • Bun 1.3.14 or newer on the runtime PATH;
  • provider set to openai or anthropic, an explicit model, and that provider's API key.

The isolated session enables read, bash, edit, write, grep, and glob only. It turns off MCP, LSP, IRC, and the Python preflight, and keeps its conversation in memory.

Event mapping

Upstream eventSleeptalk handlingCaller experience
message_update and tool execution eventsThe same text, tool-start, progress, and result handling as Pi.Reply speech and tool activity.
agent_end with isTerminalEnds the turn; OMP does not send Pi's agent_settled.The reply finishes at the right boundary.
subagent_lifecycle, subagent_progressNative WorkerEvent mapping.Worker lifecycle and progress.
Task-tool frames with a child IDCorrelated worker event; a parent tool-call ID alone is not enough.Identified child activity, not an inferred worker.
Packaged extension confirmationPermission request and decision.The tool waits or is denied.

Permissions and sub-agents

OMP's --auto-approve approves tools and is used only in auto mode. In pending and deny, the packaged guard decides every call to the six enabled tools. Setup probes refuse auto.

Worker events and steering are available in auto mode. The isolated launcher turns both off, so expect no sub-agents there.

Voice and interruption

Assistant text passes through the shared sentence streamer before speech. Tool activity follows your narration setting; a tool result is not read aloud in full.

Abort uses the shared RPC abort path for the owned prompt. Cancelling the parent turn does not prove every external task stopped.

Limits and troubleshooting

  • "The standalone compiled CLI cannot provide isolated SDK startup." Point pi_bin at the npm SDK 18.10.2 CLI entry.
  • Bun is missing. Install Bun 1.3.14 or newer on the PATH Sleeptalk runs with.
  • The isolated launcher refuses the provider. It accepts native OpenAI or Anthropic API keys only; OAuth logins and custom endpoints are not verified on this path.

Implementation: RPC client, isolated launcher, worker mapping.