Free for open source projects and schools. AI Council costs nothing for OSS maintainers and educational institutions. Apply →

Home / Compare / Ouroboros

AI Council and Q00/ouroboros: what each one does

A feature-by-feature comparison based on the code and documentation of both projects.

In short

AI Council is a platform for development teams, cloud or self-hosted. It parses your repositories into a code graph on its own: stack, structure, dependencies and cycles, calls, data layer, architecture, DDD, patterns, style, code smells and ISO 25010 quality. On top of the graph sits the project knowledge base: decisions, notes, diagrams and changelogs. Each entry is anchored to a place in the code and to a branch, and reaches the agent when it touches that file. Conventions live separately: rules at three scopes (code entities, paths, the whole project) with MUST/SHOULD levels, states, and checks before an edit and against the diff. Around this sit review with publishing to the MR, tickets, tasks, and companies with roles and licensing. Static analysis does not use a model, but without a model that is all you get: review, knowledge review, AI chat and workspaces run through a host worker, a bridge and the vendor's CLI/OAuth. The model lives on the host, not inside the Council stack.

There are two ways to work with Council. On a developer's machine, Claude Code or Codex connects to it via MCP and hooks: project rules arrive with every message, file context on Read/Edit/Bash, and a checklist at the end of the turn. In a workspace, the task runs on a VM in an isolated sysbox container, can live for days, and a person drives it from the web UI: from analysis and diff to commit, push and MR.

ouroboros is a local layer on top of the agent the developer already uses (Claude Code, Codex and others). It runs a pipeline of interview, spec, execution with verification, evaluation and evolution. It has no model of its own. Python, about 351k lines, single user, a single SQLite file.

1. Understanding the code

AI Council Q00/ouroboros
Who reads the code Council itself: it parses the repositories and builds the graph. No model is called during analysis It doesn't read code itself. The host agent reads it, and findings come back into the interview as [from-code] answers
When On project creation, on push to main (polling), on demand, and nightly. After every file edit by the agent (Write/Edit), the file and its dependents are recomputed — (only detects an existing project by git or config)
What it extracts Layers L0–L10: stack and framework guides; structure; dependencies and cycles; metrics and call graph; data layer (ORM, DDL); architecture style and forbidden dependencies; design patterns; code style; DDD (bounded contexts via Leiden clustering, aggregates, events); files that change together in git; code smells; ISO 25010 quality and fitness functions; diagrams (C4, dependencies, layers) —
Languages Python, PHP, TypeScript, JavaScript, Java, Kotlin, C#, C, C++ Whatever the host agent can write
Multiple repositories Yes, one shared graph per project One directory
External analyzers SonarQube: imports its findings. Its own scanner: text-based languages, JVM with a build, .NET, .NET Framework on a Windows worker —
Architecture history Edges are versioned after every run; architecture_as_of shows the architecture as of a date Only the history of its own runs
Search Semantic; regex (grep_code); find_usages, find_path, dependency graph, similar implementations. ask_question answers with excerpts from the knowledge base, not a model's paraphrase None of its own

2. Knowledge and rules

AI Council Q00/ouroboros
Knowledge base Decisions, notes, Mermaid diagrams (syntax checked on write), changelogs. Each entry is anchored to code and reaches the agent when it touches that file No; a log of its own runs
Freshness An entry holds its place in the code on its branch. It goes back for re-checking when the code under it changes (by AST fingerprint), when the entry itself changes, when a similar entry appears, or when the branch is merged. The reviewer model (read-only token) must quote the source verbatim. The outcome is a label: stale, conflicts with code, disputed or superseded. The entry text is never touched. Reviewer accuracy is measured against known answers. On/off switch, models and daily budget are in project settings —
Branches Knowledge and the graph are stored per branch. The agent sees its own branch, the parent, and whatever was merged into them. On merge, entries move with the code. A branch graph is computed as a separate layer next to the main one A separate worktree per task
Where knowledge comes from Agents and people write it. Tickets from the tracker are parsed into history entries automatically (this is how hundreds of entries from the 882 ouroboros tickets ended up in its knowledge base). Drafts from MR history. Documents from Google Drive Specs and results of its own runs
Rules Three kinds of conventions: for code entities; for paths (they apply even to a file that doesn't exist yet); for the whole project. MUST/SHOULD levels, draft, retired and deleted states, a default set. Checked before an edit and against the diff No
How it reaches the agent Claude Code hooks. Project rules are added to user messages in rotation. Before an action, a wide channel (about 200k characters). File context on every Read/Edit/Bash. A checklist at the end of the turn. KB gate: the agent can't open code until it has queried the knowledge base, and only a person can lift the gate. A reminder when a matching entry already exists. A rule is delivered whole or not at all Installs its own skills and instructions into the agent (how to use ouroboros itself)
MCP About 60 tools; profiles (minimal / dev / review / ops); per-session modes; unknown arguments are rejected; XML responses with a size cap About 40 ouroboros_* tools; long operations run as background jobs
Moving knowledge Bulk export and import, copying between projects —

3. Requirements and tasks

AI Council Q00/ouroboros
Requirements Traces tests to requirements by tags: coverage and gaps; "no test" is a tri-state, not requirements management The core of the product: an interview runs until ambiguity is ≤ 0.20, then produces an immutable spec with hidden checks. A product manager interview that outputs a PRD
Tickets Jira (Cloud/DC), GitHub Issues, Redmine: reading, parsing into knowledge, recommend_for_ticket (graph-based advice without a model), find_tickets_for Only exports a spec to GitHub issues (ooo publish)
Working on your own machine The agent is the developer's Claude Code or Codex. Council supplies context and rules via hooks and MCP and recomputes the graph after edits. Local diff review (review_local_changes), diff walkthrough (brief_me_on_diff), diff check against rules (check_diff_conventions) Runs inside the developer's host agent
Tasks in a workspace Stages: created, analysis, in progress, MR, closed. A task can live for days. The agent runs on a VM: its own sysbox container and home directory per task, environment setup (deployment recipe, secrets), app preview. In the UI chat a person can step into a running turn, answer the agent's question, allow a tool or stop it. Turn length is not capped: a turn ends when the agent goes quiet. History is written as it goes; if the agent session dies, there is a summary to resume from. A mentor agent reads the output and steers Autonomous: acceptance criteria by level, run in parallel by background agents. Retries, splitting, switching to another agent, pausing when quota runs out, worktree, a commit per accepted criterion
What goes out Diff; commit message per convention; commit; push with one-time credentials, a branch protection check and a check for growth in critical code smells; MR in GitHub / GitLab / Bitbucket; task closes on merge; a quality report on the task's changes Local commits; issues via gh

4. Verification and models

AI Council Q00/ouroboros
Acceptance against a spec No. There is review, a report on the task's changes, and push is blocked when critical code smells grow Its strongest part: seven layers of verification. The agent's claims are checked against its tool-call log; a hidden verify_command runs after every attempt; held-out checks are collected before the agent starts and run against the original code; a sandbox (Landlock/seccomp, no network). A model can only veto acceptance
Formal evaluation — Three stages: automated checks (mechanical.toml), then semantic evaluation, then consensus. Only a passed first stage can approve. Consensus is manual by default, or triggers on rejection or uncertainty > 0.3; voters see only the artifact text
Code review A separate service. It looks only at what changed in the branch; file groups are handed out in waves. A finding is a judgment plus zero or more locations; the model quotes the code and the line number is derived from the quote. A verdict is required for every file ("couldn't check" is not "clean"). A second pass drops a finding only if it is shown to be wrong. Publishing to the MR: comments on added lines and one summary note, without duplicates. MRs are picked up automatically, including MRs from forks. When rules change, past results are invalidated None as a separate step
Self-improvement Knowledge is re-checked when code changes; the graph fixes its own drift An evolution loop (find problems, analyze, new spec, execute, evaluate) until convergence, stagnation or a limit. StagnationDetector is written but never called
Models A model is required: on the host, two processes use the vendor's OAuth: the operator AI chat (Claude, Codex) and six background jobs (file group review, second review pass, knowledge review, ticket parsing, document import, branch naming). The model's response is checked for refusal before use The model belongs to the executing agent. Three price tiers (1/10/30) with escalation, enforced only on Claude SDK, claude_mcp and Codex; on the rest it is just a recommendation. The savings report always says "not enough data"; the tournament of several implementations is dead code
Agents Claude Code and Codex (hooks, MCP); MCP is open to any client About 13 executors: Claude Code, Codex, OpenCode, Copilot, Gemini, Hermes, Kiro, GJC, Goose, Pi, OMP, Zcode, Antigravity, Grok

5. Platform

AI Council Q00/ouroboros
Users Companies, members, roles (can be scoped to one project), permissions. Company API keys. Data is separated by company: a request without a company is rejected. Per-installation license and seat limits One person
Interface About 50 pages: dashboard, code, graph, branches, quality, rule compliance, review, conventions, knowledge, knowledge review, tickets, tasks with chat and diff, operator AI chat, MCP Live, administration, System Health Two terminal UIs, a read-only web kanban (no password login, same machine only), a web settings page
Monitoring Telemetry for every MCP call and hook event, with no personal data; an agent repeating a search signals a poor first answer. About 22 Prometheus rules with tests; every signal has a "nobody is watching this" rule. System Health screen, tracing Event log; anonymous events go to the developers' PostHog (can be turned off)
Self-healing Reconciles Temporal with the database, cleans up orphaned data before analysis, deletes projects in batches in the background, nightly backup and weekly restore check, purges old telemetry, checks disk space before a rollout Recovers runs from the log, cleans up orphaned runs on startup
Storage Neo4j, Qdrant, PostgreSQL per service, Temporal, NATS, Redis A single SQLite file (append-only events)
Isolation On the developer's machine, the agent runs the way the developer configured it. In a workspace: a sysbox container per task, one-time credentials for push, exec through an allowlist. The knowledge reviewer is read-only, permission checks go through a single gateway, SSRF protection, credentials are encrypted The executor has full host permissions; the sandbox covers only verification commands
Delivery A distribution for self-hosted installation, or SaaS; on the developer's machine, MCP and hooks pip / uv / brew
License Proprietary MIT

Bottom line

Council covers much more ground:

  • Understands code: the L0–L10 graph covers stack, structure, dependencies and cycles, calls, data, architecture and forbidden dependencies, patterns, style, DDD, co-change, code smells, ISO 25010 and diagrams. Static analysis doesn't call a model.
  • Keeps knowledge and rules: entries are anchored to a position in the code and to a branch, reach the agent when it touches the file, and go back for re-checking when the code changes. Conventions at three scopes (entities, paths, project) with MUST/SHOULD, checked before an edit and against the diff. The KB gate blocks reading code until the agent has queried the knowledge base.
  • Reviews code and knowledge: a verdict for every file, a second pass, publishing to the MR without duplicates. A separate knowledge review with quotes and calibration.
  • Workspace: a task on a VM in a sysbox container lives for days and a person drives it from the UI: analysis, diff, commit, push, MR. One-time credentials, RBAC, SSRF protection.
  • Team: companies, members, roles (including per project), permissions. Jira/GitHub/Redmine tickets, tracing tests to requirements. License and seats. Self-hosted, air-gapped or SaaS.
  • Platform: a shared graph across several repositories, architecture_as_of, SonarQube. Telemetry for every MCP call and hook without PII, about 22 Prometheus rules, System Health, tracing. Temporal reconciliation, orphaned data cleanup, backups with restore checks.

ouroboros is narrower but goes deeper in one area: taking a task autonomously from spec to an acceptance check the agent can't fake. That is a different axis, and a real one. Council has no spec interview and no hidden acceptance checks.

Both live inside the developer's agent via MCP, so they fit together. ouroboros deliberately leaves code understanding to the host agent, and that is exactly the slot Council fills. In one Claude Code session, ouroboros can drive the process (interview, spec, acceptance) while Council supplies code, rules and knowledge.

In sum: ouroboros is stronger at autonomous task completion and acceptance that can't be faked. Council is stronger at code understanding, knowledge, rules, review and teamwork. Neither axis cancels the other.

Compare on your own project

Connect AI Council to one of your repositories and see the project graph, rules and review on your real code.

Made on
Tilda