Skip to content
Back to skills

Routing Messages Across Daemons

ASecurity

Routing and pairing are different things. Pairing connects two daemons directly. Routing sends a message through a directly paired peer to an agent that peer knows.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsgobash

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add thrum-team/thrum-pro --skill routing-messages-across-daemons --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Routing Messages Across Daemons?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Routing Messages Across Daemons
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thrum-team-routing-messages-across-daemons-thrum-pro/badge)](https://www.skillsdirectory.com/skills/thrum-team-routing-messages-across-daemons-thrum-pro)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: routing-messages-across-daemons
description:
  "Use when thrum send fails with unknown recipient, when sending a cross-box
  message to an agent on another daemon, when there is no second hop, when you
  need to route or relay through a paired peer, reach an agent on another box,
  or tmux send to a remote agent."
# source: claude-plugin/skills/routing-messages-across-daemons/SKILL.md
---

## Routing Messages and tmux Commands to Agents on Other Daemons

Routing and pairing are different things. Pairing connects two daemons directly.
Routing sends a message through a directly paired peer to an agent that peer
knows.

### Messages

- A daemon resolves a recipient from its local agents and from agents registered
  on its directly paired peers.
- To reach an agent on a daemon you are not paired with, run once on the SENDING
  daemon, per remote agent:

  ```bash
  thrum peer configure <relay-peer-name> add-agent <agent-name>
  ```

  `<relay-peer-name>` is the directly paired daemon that knows the agent.

- Then `thrum send --to @<agent-name>` routes through that peer.
- Run it on each side that needs to send.
- Pairing the two daemons with each other is not the fix.
- `thrum peer relayed add` and `thrum peer relayed grant` are not needed for
  delivery. They govern what a daemon accepts from a relayed origin.

### Verify

- `thrum peer list` shows directly paired daemons only.
- `thrum message get <id>` shows `(delivered)` per recipient. A send that
  returned without error is not proof of delivery.

### CLI notes

- `thrum peer relayed add --via` takes daemon IDs, not peer names.
- `thrum peer relayed grant` does not validate the capability key. The messaging
  key is `can_send_messages`.

### Unresolved agent records warning

After `add-agent`, the supervisor may report "Unresolved agent records" for the
proxy rows, because reconcile asks the relay, which refuses with "owned by
daemon X ... no second hop". A build with the reconcile owner pointer follows
the named owner once and the warning clears. Older builds keep it. Do NOT delete
those rows as the supervisor suggests: deleting them removes the routing.

### tmux

`thrum tmux send <agent> [<text>] [--keys K1,K2,...]` goes through the
peer-routed `tmux.send` RPC. Both text and `--keys` modes work the same against
a local session and a remote or peer session. Check the target's peer
relationship with `thrum peer list` and confirm by effect on the target pane.

Files in this skill

  • SKILL.md2.4 KB
  • agents/openai.yaml626 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.