Cosmonapse is an event-driven agent-to-agent protocol modeled on a nervous system. Agents are pure functions no base class, no lifecycle. Orchestration is a role, not a bottleneck: any node can dispatch, any node can react. Harnesses are built from typed signals instead of loops tool calls (incl. MCP), shared memory, human approval, and retries each compose as a node or hook around a stock model call. Same code scales from in-memory tests to NATS/Kafka. MIT. Python + TypeScript SDKs + CLI.
No reviews yetBe the first to leave a review for Cosmonapse
Maker
š
Hey Product Hunt š
Every multi-agent framework I tried handed me one orchestrator class that had to know every agent, every step, every branch. Fine in the demo then you add a fourth agent or a human-approval step, and that file becomes the bottleneck every change routes through. And the "agent harness" everyone's building now? Usually the same god-object one level down: a while-loop that owns the model call, the tools, the memory, and the approvals.
So I built Cosmonapse, an event-driven agent-to-agent protocol where a harness is a set of reactions, not a loop. The mental model is a nervous system:
š§ Neuron ā your agent, a pure (input) -> output function. No base class, no lifecycle.
ā” Axon ā turns output into a protocol-valid Signal.
šæ Dendrite ā receives and reacts. Any node can dispatch; any node can react.
š Synapse ā the bus. In-memory for tests ā local broker in dev ā NATS/Kafka in prod, same code.
š¾ Engram ā shared memory. Answered or approved once ā recalled, not re-asked.
Harness concerns decompose into typed signals: tools are TOOL_CALL/TOOL_RESULT (MCP plugs in the same way), human-in-the-loop is a clarification/permission signal any node can answer, and retries/routing/bidding are just nodes reacting to events. Add a capability by adding a node never by editing a loop. And the "orchestrator" is the same primitive as a worker (Cortex = Dendrite), so you run centralized or fully decentralized with zero code change.
Apache -2.0 licensed. Python + TypeScript SDKs + cosmo CLI. pip install cosmonapse
I'd love your take on two things: does the nervous-system naming help or get in the way? And how are you structuring your agent harness today?