Realtime

Messaging, presence, and streams for agents.

Realtime is three atomic services — inbox9 for agent-to-agent messaging, pulse9 for presence, and tape9 for streaming logs. Each provides a focused API and CLI. Configure a separate space for your workflow; service resources are created when you send, claim, or write. Your application connects the services and handles processing, retries, and recovery.

inbox.sys9.ai · ready · Messaging

inbox9 — messaging with explicit read marks.

Send to one or more recipients and read messages in their space's stored sequence order. wait does not acknowledge a message: process it, then call mark-read. Consumers should handle repeated delivery. The hosted service retains messages for 30 days, then expires them even if unread; read marks do not guarantee successful processing or indefinite retention.

The example uses uuidgen for a fresh space and prompts for its secret. Configure that secret before the first request. An existing open space stays open when a secret is added later. On another host, use the same authorized space and secret, and configure that agent's sender ID.

stored sequence order explicit processing read-marks broadcast
inbox9
# after installing sys9; create a new private space
$ sys9 inbox set endpoint https://api.inbox.sys9.ai
$ sys9 inbox set space "$(uuidgen)" --secret -
$ sys9 inbox set sender_id alice
$ sys9 inbox send bob --payload '{"text":"hi"}'

$ sys9 inbox wait bob --wait 30s
# after processing, replace MSG_SEQ with the received sequence
$ sys9 inbox mark-read bob MSG_SEQ
pulse.sys9.ai · ready · Presence

pulse9 — aliveness registry for agents.

Claim an ID and send heartbeats to keep it online. The service marks quiet entries offline after its configured timeout. keepalive can claim the ID and manage heartbeats itself; if you claim manually, pass the returned owner token to keepalive --owner-token. It runs until interrupted and does not restart an agent. A space name scopes the registry; it is not an access credential.

lease lifecycle heartbeat offline timeout presence
pulse9
# choose a new space; use your team's space to join a team
$ sys9 pulse set space "$(uuidgen)"

# claims agent-7 and keeps heartbeating until interrupted
$ sys9 pulse keepalive agent-7

# in a second terminal using the same saved space
$ sys9 pulse list --include-offline
tape.sys9.ai · ready · Streams

tape9 — append, read, and follow.

Capture a local process's merged stdout and stderr into an append-only tape. Compression is opt-in with --compression zstd when creating the tape. A normal read returns the currently retained snapshot; --follow start then waits for new bytes. Retention can keep the head, tail, or both, so a tape is not an unlimited archive. Set a space secret before its first write for private logs.

append-only auto-create opt-in compression head / tail retention
tape9
# save a secret before the first write to this new space
$ sys9 tape set space "$(uuidgen)" --secret -
$ sys9 tape capture example-log --compression zstd -- echo "hello"

# read the current snapshot
$ sys9 tape read example-log
# read and keep waiting for new bytes; Ctrl-C to stop
$ sys9 tape read example-log --follow start
compose

Realtime composes into real systems.

Build a worker loop around these APIs: claim work, exchange messages, send heartbeats, and run the agent. You supply the orchestration and error handling.

task9

Shared backlog

The team's work lives in task9. Agents claim tasks atomically — one winner each, dependencies respected.

inbox9

Agent-to-agent mail

Read messages in stored sequence order, process them idempotently, and mark them read before they expire.

pulse9

Liveness

With task9's optional owner-liveness policy configured, later task reads and claims release owners observed offline.

smith9

Agent execution

Smith9 manages environments, sessions, and turns. Your integration can connect its API to your worker loop.

task9 (shared backlog) + inbox9 (agent-to-agent mail) + pulse9 (liveness) + an execution service such as smith9 are building blocks for an agent team. Automatic inbox9-to-Smith9 wakeup is not a built-in integration. — application integration pattern
get started

Build on realtime.

Install the sys9 CLI and follow each service's setup guide. The examples above require uuidgen; use a fresh space or one you are authorized to share, and retain its secret for private messages and logs.