Build clients for agent runtimes.
Narad (NAA-rud, नारद) is named after the sage of Indian mythology who carries messages between worlds.
Narad Protocol is open and sits between an agent host and every client, with nested agents, workflows, approvals and client-side tools built in. The TypeScript packages validate events, reduce them into client state and catch up after a reconnect. Start with a trace, follow the attach lifecycle, then use the specification and schemas to implement a host or client.
The four wire classes
Only authority events are part of the record. Commands express intent; accepted effects appear as authority events. Re-reading an event reconstructs client state—it does not execute the work again.
- Authority events
- Immutable facts. The backend appends them. They reconstruct the session.
- Watch events
- A notice that something changed. They tell a client to catch up. They are not the history.
- Hydrate records
- A derived picture, such as a transcript or a graph, anchored to a point in the record.
- Control messages
- Attachment, heartbeats, and the message that actually tells a client to run a tool.
Seeing an event does not run a tool. Client-side tools use targeted control messages with an executor identity, lease, and execution token.
Choose a path through the docs
- Understand the model: sessions, runs, and workflows.
- Build a client: packages, commands, and events and profiles.
- Check invariants: cross-cutting rules and the normative specification.
Narad Protocol defines the rules and client-side state machinery. The host provides durable history, authorisation, transport, scheduling, and agent/tool execution. Reconnect restores the client view; it does not restart or resume a run.