---
title: Agent Messages
---

# Agent Messages

## What it is

**One place to watch your agents talk to each other — including the messages that never arrived.**

Your agents message each other constantly. An overseer redirects a fixer, a worker hands a finding
back, a lander tells a branch owner it is blocked. That traffic is how the fleet coordinates, and
until this panel there was no way to see it as a whole: an agent-to-agent message was visible only
inside one session's transcript, one session at a time, behind a per-session filter most people
never turned on.

The **Agent Messages** panel (sidebar → Agent Tools) puts all of it in one list, and gives the
messages that failed to arrive a place of their own.

### What you see

The panel has two tabs.

**Traffic** — every agent-to-agent message, newest first, across all your sessions. Each row shows
who sent it, who it was meant for, when, a preview of what was said, and whether it arrived. Both
the sender and the recipient are links, so you can jump straight into either session's conversation
and read the message in full where it was written.

**Undelivered** — the messages that never got there. Each one shows the sender, the intended
recipient, when it happened, why it failed in plain English ("that session was closed", "that
session no longer exists"), and the **complete text** of what was being sent.

That second tab is the part that did not exist anywhere before. Omniscio has kept every
undeliverable message since September 2026 — whole, never trimmed, for 30 days — but nothing in the
app could show you one. This is the first place you can read them.

## Where to find it

### Turning it on and off

Agent Messages is in development and ships switched off. Turn it on in Settings (search for "agent
messages"), and the sidebar row appears under **Agent Tools**. Switching it off removes the row and
the panel entirely — the panel reads real conversation content, so if you would rather not have that
surfaced at all, turning it off is a complete answer.

It works the same on desktop and on your phone.

### From the command line

Two read-only routes, available while the feature is on:

- `GET /agent-messages` — a page of agent-to-agent messages across every session. Page with
  `beforeTimestamp` + `beforeRowid`, copied from the previous response's `nextCursor`.
- `GET /agent-messages/undelivered` — a page of the undelivered ledger, with each message's full
  text. Page with `offset`.

Both take an optional `limit` (default 50 and 25, maximum 100).

## How it behaves

### Why the two tabs are separate lists

It would look tidier to have one list with an "only show failures" switch, and it would be wrong.

A message can fail in a way that leaves no trace in the sending session — that happens when the
sender is an automated, mechanical caller, or when one broadcast to many recipients bounces off just
a few of them. Those failures are recorded in the undelivered ledger but never appear in the
timeline. On a real machine that gap was **487 undelivered messages against 266 the timeline knew
about**.

So a "failures only" filter over the timeline would confidently show you about half of them and give
no hint that the rest existed — in the one view whose entire job is telling you what went missing.
The two tabs read two different records on purpose, and the count on each tab is the true count for
that record.

### It never interrupts you

The panel raises no alerts, no toasts, and no badges anywhere outside itself. That is deliberate.

Omniscio used to raise an inbox card for every message that failed to arrive. It was removed in
September 2026 because it told the wrong person: the card went to you, but nothing you could do
would deliver the message — the agent that sent it is the one that needs to know, and it is already
told directly. The card was running at roughly 37 dismissals a day, and its own text said "nothing
was lost".

Removing that notification did not remove the record. Every failure is still kept three ways: the
full message is preserved, the sending agent is told immediately, and it is written to the log. What
was missing was somewhere for **you** to go and look, on purpose, when you want to. That is what
this panel is. It will never tap you on the shoulder.

You are still told about the one case that genuinely needs you: when messages to the same session
keep failing, a single "messaging to this session is broken" card is raised — because that is fleet
health, not one lost message.

### It is read-only

You cannot send, resend, retry or delete anything from this panel, and that is on purpose rather
than unfinished. A retry button here could not know why the original was refused, and the two
commonest reasons make retrying the wrong move: the recipient session was deliberately closed by you
(so it should stay closed), or waking it is a decision for the agent that is sending, not for
someone reading a list.

## Related

- [Block agent messages](block-agent-messages.md) — stop one session receiving agent messages at all;
  what it turns away lands in the Undelivered tab above.
- [Overseers hub](overseers.md) — the sibling Agent Tools panel for watching the agents themselves.
- [Swarms](swarm.md) — a lead agent running a team of workers, which uses this same messaging.
