— The awareness layer for AI agents
Your agent already knows.
Agentenna gives agents a live, token-bounded view of what's happening — messages, logs, alerts, tickets — rendered straight into context, refreshed every turn. Inspect the details, rewind the history, wake up when it matters.
- prod.errors12
- ci.builds5
- terminal.logs28
- support.urgent3
- Billing worker failed processing webhookprod.errors · -2m
- deploy.prod rolled_backstates · -2m
- task opened: investigate checkout 5xxtasks · -11m
One bounded surface
Events, states, and tasks render into a single named slot, replaced every turn. Your agent sees what changed — never an unbounded feed.
Emit once, every agent knows
A channel is a shared bus. Terminals, services, and webhooks emit; every reader tunes in and keeps its own position.
Seeing is not waking
Most signals simply appear on the next turn. Attach a trigger to the few that can't wait, and a receiver wakes up.
Channels
Emit once. Every agent knows.
A channel is a named shared bus, not point-to-point delivery. Many producers emit to it, many readers tune in — and each reader keeps its own position. One reader moving forward never hides the signal from another.
One emit can update all your running agents — without N copies of the same webhook glue.
Quickstart
Emit → Station → Reader.
Python 3.12+, one process, one SQLite file. Everything in the repo is the whole product — no account, no telemetry, and your feeds never leave your box.
pip install "agentenna[station]"
# start a Station — stores signals, serves the API
agentenna serve --db .agentenna/agentenna.db --port 1234
# emit a fact from anywhere
agentenna emit prod.errors "Checkout 5xx rate jumped to 12%" \
--kind fault --severity crit --db .agentenna/agentenna.db
# connect a reader
agentenna install claude-code
Works with Claude Code hooks, any MCP host, or your own agent loop. API cheatsheet · Host guides · Examples