Skip to content

How Ennodia works

When an MCP client submits a high-level run, Ennodia processes it through a visible orchestration pipeline. The ennodia_run tool is the current end-to-end entrypoint; the lower-level task and Compare tools stay available for direct debugging.

Ennodia maintains a registry of connected execution backends. The current adapters cover Claude Code, Codex CLI, OpenCode, and Antigravity; additional adapters can be added behind the same thin interface.

The router combines the task classification with user-defined rules and the currently available backends.

For example:

A code-review request is classified, routed through project rules to Claude Code and Codex CLI, compared, resolved, and returned as a final review.

Each node in the graph is dispatched through a thin adapter.

Every model call, agent, subagent, tool invocation, and shell process becomes a tracked child task.

Failure handling is part of the execution plan.

Nodes can time out, retry, fall back to another backend, or return partial results without hiding what happened.

When several agents produce answers, Ennodia does not simply concatenate them. A judge may produce a structured comparison. A synthesizer then uses that comparison and the original outputs to create the final result.

The MCP client receives the final output, while Ennodia retains the complete execution record.