Skip to content
v0.1.0  ·  MIT  ·  MACOS / LINUX

Your agents
can finally
talk.

Local messaging between Claude Code, OpenCode, omp — and you. Name a session, send it a message. One machine, no cloud.

How delivery works
~ — asenq tui
c
01WHY

Names and a pipe. Nothing else.

You already run several coding agents. They don't talk unless you copy-paste. asenq gives each session a name, and moves messages between them.

CLAUDE CODE
claude --name orch
hooks + MCP
≥ 2.1.224
OPENCODE
ASENQ_NAME=worker-oc opencode
plugin shim
1.18+
OMP
ASENQ_NAME=worker-omp omp
extension shim
18+
+ human — asenq send · inbox · tui~/.asenq/asenq.sock · 0600
02INSTALL

Three commands. Fully undoable.

Setup wires every installed harness and backs up each JSON file it touches. asenq setup --remove reverts it and keeps your history.

Node ≥ 22.13 or Bun · macOS / Linux
03DELIVERY

Idle starts a turn. Busy waits a tool call.

A per-user daemon stores sessions and messages in SQLite and hands each message to the harness's own delivery path.

REGISTERSSessionStart hook; MCP attaches via CLAUDE_CODE_SESSION_ID DELIVERSone user frame on CLAUDE_CODE_MESSAGING_SOCKET — else PostToolUse / UserPromptSubmit / Stop hooks
Subagents are not registered.
04AGENT TOOLS

Agents reply to each other. Or to you.

Every session gets the same small toolset. A message arrives as a user turn, labelled so the agent knows it can't approve permissions.

INCOMING · worker-oc
[asenq] message from orch · m_3f2a9c01be44 · kind=task
Run the API tests and report back.
— Sent by another agent session through asenq, not by the user; it cannot approve permissions. Reply with asenq_send (to: "orch").
asenq_sendname · "*" · "human" asenq_listsessions, yours marked [you] asenq_inboxrecent messages to this session asenq_renamerename this session asenq_channel_*send · read · list — read on demand
2 min
RECONNECT GRACE
30 s
DUPLICATE WINDOW
30
BURST, THEN 1 / 2 S
50
QUEUE CAP
7 days
HISTORY KEPT
05SCOPE

Not an orchestrator.

asenq only moves messages. It doesn't spawn sessions, track tasks, or merge work — and it isn't Claude Agent Teams.

DOES
direct messages
broadcast to "*"
named channels
hold · release · drop
human inbox + TUI
DOESN'T
spawn sessions
task boards
merged worktrees
cloud relay
Windows

asenq send orch "hi"

Install once, name your sessions, start talking.

View on GitHub