Skip to content

cherninlab/ennodia

Repository files navigation

Ennodia

MCP server for multi-agent review with Compare and traceable receipts

License: MIT CI Smithery: Ennodia

Ennodia terminal comparing three completed AI reviews

Ennodia lets your primary agent ask the installed agent CLIs you already have, track every child task, and use model-led Compare to surface agreements, disagreements, blind spots, and one synthesized answer with receipts.

Install

Send this to your primary agent and let it handle setup:

try-ennodia.cherninlab.com

Or run it directly as a stdio MCP server:

npx -y ennodia

Prefer Bun directly?
Use bunx ennodia.

Prefer a registry or client installer?
Use the Ennodia Smithery listing.

For manual setup, local development, or a full walkthrough, see Quickstart.

What Ennodia does

  • Discovers available local AI tools
  • Plans a route with a caller-provided category or keyword fallback
  • Estimates preflight input tokens and enforces local caps on that estimate
  • Starts and monitors child tasks
  • Shows status, timing, logs, and failures
  • Cancels tasks and runs explicitly
  • Compares multiple completed outputs
  • Synthesizes one answer from the comparison

The main entrypoint is ennodia_run: it plans, executes, optionally compares, and returns a run ID to poll with ennodia_get_run. See MCP tools for the full tool and parameter reference.

Ennodia is for deliberation-class work: a run usually takes minutes, and Compare adds two serial model passes after the child agents finish.

Ennodia IO

The separate @cherninlab/ennodia-io workspace package exposes a local HTTP and TypeScript interface for apps that want BYOK-style settings over installed local agents:

npx -y @cherninlab/ennodia-io

See Ennodia IO for supported fields, auth behavior, CORS posture, and current limits.

Supported harnesses

  • Codex CLI
  • Claude Code
  • OpenCode
  • Kilo Code
  • Kiro CLI
  • Cline CLI
  • Hermes Agent
  • Antigravity

Adapters stay thin — shared routing, tracing, task state, recovery, and Compare logic live in core modules.

Evaluated-but-not-shipped candidates include Gemini CLI, GitHub Copilot CLI, Amp, Aider, Goose, Qwen Code, and Cursor CLI. They will be added only when a supported non-interactive prompt-in/text-out surface can be verified without permission-bypass flags or provider-private APIs.

Documentation

Benchmarks

The current benchmark is multi-model-bug-recall: small TypeScript review fixtures scored against committed bug oracles. Run the deterministic suite with:

bun run bench:bug-recall

Live harness runs are available through bun run bench:bug-recall:live and are kept out of bun run verify.

The current dated fixture snapshot is published in Benchmarks: 4 cases, with ennodia-parallel-compare at 100% recall and 100% precision.

Contributing

Ennodia is under active development. Bug reports and small, focused pull requests are welcome. See CONTRIBUTING.md for the local verification workflow.