Skip to main content
praisonai attach subscribes to a live agent session on the warm runtime and streams its events in real time from a second terminal — read-only, with multiple observers supported.

Quick Start

1

Start the warm runtime

2

Run an agent with a session id (terminal A)

3

Attach from another terminal (terminal B)

What --attach <id> really tags. --attach <id> is an event-stream label, not a session identity. Two things happen independently:
  1. Persistence / continuity is driven by --session <id> or --continue (a --no-save run has no session identity, so no history is loaded or saved).
  2. Live event fan-out to praisonai attach <id> clients is driven by --attach <id> (falls back to the session id when --attach is omitted).
So praisonai run "..." --no-save --attach obs-1 streams events to observers under obs-1 but persists nothing; praisonai run "..." --session s1 (no --attach) is observable under s1 and its history is retained across turns; praisonai run "..." --session s1 --attach obs-1 runs the stateful s1 conversation but publishes its events under obs-1.

Usage


How It Works

Attaching never starts execution — it only observes. Detaching (Ctrl-C) does not stop the run on terminal A.
Events arrive over Server-Sent Events at GET /sessions/{session_id}/events with Bearer auth from the runtime lockfile. Session ids are percent-encoded on the wire. A : keep-alive comment is sent every ~15s and ignored.

Event Reference


Exit Codes


Common Patterns

Watch a long-running agent from a second terminal — start with --attach, observe progress without blocking terminal A. Pipe JSON into jqpraisonai attach my-session --json | jq 'select(.type=="run.result")'. Multiple observers — several terminals can attach to the same session concurrently; all receive the same events. Observe without persistingpraisonai run "..." --no-save --attach obs-1 streams events under obs-1 for observers while keeping the run on the anonymous, non-persisted path.

Best Practices

Run praisonai daemon start before run --attach. Without a warm runtime, attach exits with code 1.
--attach on praisonai run works for direct prompts only — not YAML files, --agent, or --command.
Ctrl-C in an attach terminal never cancels the underlying agent run.
If CLI and daemon major versions differ, attach refuses to connect. Run praisonai daemon stop && praisonai daemon start after upgrading.

Run

--attach flag for tagging warm-runtime sessions

Daemon

Warm runtime lifecycle and version handshake