Q00/ouroboros

▲ 41 stars today★ 5,938⑂ 602

Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop.

About Q00/ouroboros

Q00/ouroboros is an open-source project on GitHub, mainly written in Python. Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. It currently holds 5,938 stars and 602 forks with 103 open issues, and was last pushed on 2026-09-15 (repository created 2026-01-14).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #96 with 41 new stars today.

GitHub Repository Details

Repository Q00/ouroboros · default branch main · size 53629 KB · watchers 16 · source: GitHub REST API and repository README

README

English | 한국어 | 简体中文


◯ ─────────── ◯

https://github.com/Q00/ouroboros/blob/HEAD/Ouroboros

O U R O B O R O S

◯ ─────────── ◯

It gets smarter on its own. We just hold the line.
Skip the prompt engineering. The agent runs, fails, and gets smarter every generation. The grading command and expected result never make it into the success contract we hand it.
The Agent OS for replayable AI coding workflows

https://github.com/Q00/ouroboros/blob/HEAD/GitHub stars https://github.com/Q00/ouroboros/blob/HEAD/PyPI https://github.com/Q00/ouroboros/blob/HEAD/Tests https://github.com/Q00/ouroboros/blob/HEAD/License https://github.com/Q00/ouroboros/blob/HEAD/GitHub Sponsors

https://github.com/Q00/ouroboros/blob/HEAD/Q00%2Fouroboros | Trendshift

Quick Start · Why · Results · How It Works · Commands · Philosophy · Guide

# macOS / Linux / WSL 2
curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme-hero bash
# Windows (PowerShell) — no Python needed; installs Git and uv for you
irm https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.ps1 | iex

One command installs it. Then run ooo setup once inside your coding agent — details in Quick Start.

Separate runs, separate hosts. Different tasks on purpose — the engine is what is shared, not the prompt

https://github.com/Q00/ouroboros/blob/HEAD/Terminal recording of the ouroboros CLI interview reporting an ambiguity score
Terminal CLI — a task-management CLI: ouroboros init start asking about ordering and scope, then reporting an ambiguity score
https://github.com/Q00/ouroboros/blob/HEAD/Screen recording of the ChatGPT app calling Ouroboros as an integration
ChatGPT (Codex) — called as an integration, on a video-publishing harness: the interview, its advisory lanes, and the ambiguity ledger
https://github.com/Q00/ouroboros/blob/HEAD/Screen recording of Claude Code running six Ouroboros interview advisory lanes in parallel
Claude Code — a YouTube automation task, with the six advisory lanes running in parallel before the interview submits
https://github.com/Q00/ouroboros/blob/HEAD/Screen recording of a Discord bot running the Ouroboros interview and reporting a final ambiguity of 0.15
Hermes (Discord) — a kart-racing game, run as a chat bot, ending at Final ambiguity: 0.15
https://github.com/Q00/ouroboros/blob/HEAD/Screen recording of DeepSeek Harness calling the Ouroboros interview tool and submitting advisory fan-out results
DeepSeek Harness — an OSS-trend outreach script, driven from a dsh chat: mcp__ouroboros__ouroboros_interview turn by turn, fan-out results submitted between rounds
https://github.com/Q00/ouroboros/blob/HEAD/10x screen recording of Kiro CLI running an Ouroboros interview
Kiro — the Kiro CLI running the Ouroboros interview flow, turning a vague request into a structured, testable Seed

Turn a vague idea into a verified, working codebase -- across Claude Code, Codex CLI, OpenCode, Hermes, Gemini, Kiro, Copilot, Pi, OMP, Zcode, Goose, GJC, Antigravity, and Grok.

Ouroboros is an Agent OS for AI coding: a local-first runtime layer that turns non-deterministic agent work into a replayable, observable, policy-bound execution contract. It replaces ad-hoc prompting with a structured specification-first workflow: interview, crystallize, execute, evaluate, evolve.

---

The Ouroboros Agent OS Stack

Like any OS, Ouroboros is split into a stable OS layer of primitives, an application layer of domain workflows, and a shell that humans actually sit in front of. Three repos, one stack:

| Layer | Repo | Role | What it gives you | | :--- | :--- | :--- | :--- | | Shell (terminal client) | Ouro-labs/ourocode | Native terminal UI for running ooo workflows across Claude / Codex / Gemini CLIs in one session | TUI, wonderTool decision pickers, MCP pane state, command discovery | | Apps (domain workflows) | Ouro-labs/ouroboros-plugins | UserLevel plugin contract — composes core primitives into installable domain programs (PR ops, Jira sync, incidents, releases) | Plugin manifest, scoped permissions, audit/provenance, reference plugins | | OS (this repo) | Q00/ouroboros | Agent OS core — Seed, Ledger, Runtime, MCP, safety boundaries | ooo commands, spec-first workflow engine, multi-runtime adapter |

How they connect:

  ourocode  ──►  ooo / ouroboros-plugins  ──►  ouroboros core (Seed · Ledger · MCP · Runtime)
   shell             user-level apps                        kernel
Seed-bound, ledger-recorded, replayable event — regardless of which LLM executes it. contract, so domain workflows (review a PR, triage a Linear ticket, run a release) stay auditable and policy-bound instead of being one-off prompts. questions, and wonderTool decisions as first-class TUI elements, so you can drive the OS without leaving the keyboard or switching between CLIs.

Use ouroboros alone with any supported CLI, layer plugins on for domain workflows, or install ourocode when you want a unified terminal cockpit.

Disclaimer. The Ouroboros project and community are not affiliated with
any cryptocurrency, token, memecoin, or trading community — including, but
not limited to, any "ouroboros" tickers on pump.fun or other launchpads. This
is an open-source developer tool. We do not issue, endorse, or hold any
coins. Any token claiming association with this project is unauthorized.
Naming note. A separate, unaffiliated open-source project also uses the
name "Ouroboros" — Anton Razzhigaev's self-modifying, autonomous-memory agent
at github.com/razzant/ouroboros. No shared code, no relationship. This
project locks a specification before executing rather than rewriting its own
architecture; if you're looking for the latter, that's the other one.

---

Why Ouroboros?

Most AI coding fails at the input, not the output. The bottleneck is not AI capability -- it is human clarity.

| Problem | What Happens | Ouroboros Fix | | :------------ | :------------------------------- | :-------------------------------------------- | | Vague prompts | AI guesses, you rework | Socratic interview exposes hidden assumptions | | No spec | Architecture drifts mid-build | Immutable seed spec locks intent before code | | Manual QA | "Looks good" is not verification | 3-stage automated evaluation gate |

---

Quick Start

Install — one command, everything auto-detected:

# macOS / Linux / WSL 2
curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme bash
# Windows (PowerShell 5.1+ or pwsh 7+) — nothing to install first
irm https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.ps1 | iex

The Windows installer installs Git and uv through winget when they are missing, lets uv download its own Python, then installs ouroboros-ai and wires the host it finds. Native Windows is experimental and Codex CLI needs WSL 2; see platform support.

First command — open your AI coding agent and run these in order:

> ooo setup
ooo interview "I want to build a task management CLI"

ooo setup is a one-time configuration step. ooo interview is the first workflow command and starts the Socratic interview. After setup, Codex follows its currently selected model and Claude Code starts with its recommended model settings. Choose Directly configure models only when you want to pin a stage to a specific model; it opens the local settings screen in your browser. You can return to those settings any time with ooo config.

Or from a plain terminal, without an agent host:

$ ouroboros init start --orchestrator "I want to build a task management CLI tool"

That recording is this exact command. It is at the top of this page so you can see the tool before installing it.

https://github.com/Q00/ouroboros/blob/HEAD/Terminal recording of ouroboros setup refresh installing Codex rules and skills, Hermes skills, the OpenCode plugin and instruction guide, and the Pi and GJC bridges, ending with the line Refreshed runtime artifacts: codex, hermes, opencode, pi, gjc

ouroboros setup refresh on one machine. It installs into the hosts that machine actually has, each in the shape that host expects: rules and skills for Codex, skills for Hermes, a plugin and an AGENTS.md for OpenCode, bridges for Pi and GJC. Your machine will show whichever of the thirteen you have installed.

Works with Claude Code, Codex CLI, GitHub Copilot CLI, OpenCode, Hermes, Gemini, Kiro CLI, Pi CLI, OMP CLI, Zcode, Goose, GJC, Antigravity CLI, and Grok Build CLI. The installer detects available runtimes and registers the MCP server where the host supports it. For explicit selection, run ouroboros setup --runtime after installation. Copilot live-discovers its subscription catalog via the GitHub Copilot models API; Kiro's settings picker queries the authenticated CLI with kiro-cli chat --listmodels -f json, so account and enterprise allow-list changes appear without a hardcoded model table.
DeepSeek support. Ouroboros speaks DeepSeek two ways. Point the interview/Seed/QA pipeline at DeepSeek's own models with --llm-backend dsh (ouroboros mcp serve --runtime claude-cli --llm-backend dsh, or OUROBOROS_LLM_BACKEND=dsh) — this drives DeepSeek Harness's ACP server under the hood. Or go the other way: install the dsh-ouroboros plugin (dsh plugin --profile add "github:Q00/ouroboros#main&path:integrations/dsh-plugin") and type ooo interview / ooo auto directly in the DeepSeek Harness chat — the same ouroboros_interview / ouroboros_auto tools run natively inside it, Socratic questions and all. Both directions, including what the dsh backend needs beyond the one variable, are in the DeepSeek Harness guide.
Codex plugin quick start

Needs codex on your PATH and uvx on the host (the plugin's MCP descriptor launches the server with it). Install uv with pipx install uv, pip install --user uv, or brew install uv.

codex plugin marketplace add Q00/ouroboros
codex plugin add ouroboros@ouroboros

Start a new Codex session, then run these commands in order:

ooo setup
ooo interview "Build a task management CLI"

ooo setup is the one-time runtime preparation. Once ready, Ouroboros follows Codex's current default model; choose Directly configure models only when you want to pin a specific model for a pipeline stage.

Kiro CLI quick start
pipx install 'ouroboros-ai[mcp]'       # or: uv tool install 'ouroboros-ai[mcp]'
ouroboros setup --runtime kiro         # detects Kiro CLI, registers MCP server, and
                                        # writes OUROBOROS_RUNTIME=kiro into
                                        # ~/.kiro/settings/mcp.json (the trusted,
                                        # setup-managed location -- a project .env
                                        # is untrusted input and this key is ignored there)

Then use ooo commands inside a Kiro CLI session.

GitHub Copilot CLI quick start
gh auth login                                # one-time GitHub auth (used for live model discovery)
pipx install 'ouroboros-ai[mcp]'             # or: uv tool install 'ouroboros-ai[mcp]'
ouroboros setup --runtime copilot            # discovers models live, picks a default,
                                             # registers MCP server in ~/.copilot/mcp-config.json

Restart your Copilot CLI session, then use ooo commands inside it. Model-ID mapping is catalog-gated: the current direct and OpenRouter Opus defaults resolve to Copilot's published claude-opus-5, while legacy Anthropic versions convert only their trailing numeric separator and only when the discovered catalog contains the exact candidate. Unknown IDs remain unchanged so Copilot reports an explicit unavailable-model error instead of silently selecting a different model. Leave role models unset so setup writes a discovered ID, or set a Copilot-valid ID explicitly. See the Copilot runtime guide.

See the GitHub Copilot CLI runtime guide for full details.

Other install methods

Claude Code plugin only (no Python package or global Python to install; the host needs uv, which provides both uvx for the MCP server and the skills' Python >= 3.12 fallback):

claude plugin marketplace add Q00/ouroboros && claude plugin install ouroboros@ouroboros
Then run ooo setup inside a Claude Code session.

pip / uv / pipx:

pip install 'ouroboros-ai[mcp,tui]' && ouroboros setup --runtime claude-cli  # recommended MCP v2 default
pip install 'ouroboros-ai[claude]'      # Claude Agent SDK profile (MCP 1.x, isolated)
pip install 'ouroboros-ai[claude-cli]'  # dependency-free Claude CLI worker
pip install 'ouroboros-ai[claude-sdk]'  # explicit alias for the Claude SDK profile
pip install 'ouroboros-ai[litellm]'     # + LiteLLM multi-provider; Python 3.12-3.13
pip install 'ouroboros-ai[mcp]'         # MCP v2 server/client without the GUI
pip install 'ouroboros-ai[tui]'         # settings GUI only
pip install 'ouroboros-ai[all]'         # MCP 1.x app bundle; excludes MCP 2 by design
ouroboros setup                         # configure runtime

Core and non-LiteLLM installs support Python 3.12-3.14. LiteLLM-bearing installs ([litellm], [all], and source --extra all) support Python 3.12-3.13; use Python 3.13 for current examples. See Platform Support.

The recommended standalone installation is ouroboros-ai[mcp,tui] followed by an explicit MCP v2-compatible runtime selection. The example uses --runtime claude-cli; substitute another compatible runtime such as codex, opencode, hermes, gemini, goose, kiro, copilot, pi, or gjc. Use [claude] and [claude-sdk] only in isolated MCP 1.x environments.

pip install 'ouroboros-ai[mcp]' is valid for embedding the MCP client/server library in an already isolated Python environment, but host registration requires uvx --isolated --python '>=3.12' or pipx. Use pipx install 'ouroboros-ai[mcp]' or uv tool install 'ouroboros-ai[mcp]' before ouroboros setup --runtime ; setup exits without changing runtime configuration when neither isolated launcher is available.

Legacy compatibility: ouroboros-ai[dashboard] is still accepted as a compatibility alias/no-op; it does not install dashboard runtime payload. ouroboros-ai[all] includes that no-op alias only for compatibility.

Homebrew (macOS/Linux):

brew tap q00/tap
brew install ouroboros-ai
ouroboros setup                         # configure runtime
Self-hosted tap, not yet in homebrew-core. Installs the same package published to PyPI.

See runtime guides: Claude Code · Codex CLI · Hermes · OpenCode · Kiro CLI · Gemini CLI · GitHub Copilot CLI · Zcode · Pi JSON mode · OMP (Oh My Pi) · Goose · GJC · Antigravity CLI · Grok Build CLI

Uninstall
ouroboros uninstall

Removes all configuration, MCP registration, and data. See UNINSTALL.md for details.

Python >= 3.12 required. LiteLLM-bearing profiles support Python 3.12-3.13. See Platform Support and pyproject.toml.
> Installing as an MCP server: use 0.51.1 or later. Earlier versions can fail at startup with Failed to reconnect to plugin:ouroboros:ouroboros: -32000 when an existing environment shadows the [mcp] profile (#2012). This matters if you install through a downstream package rather than PyPI, since those can lag.

Most people find out they were unclear about three files into the review.
If that feels familiar, star Q00/ouroboros on GitHub so the next person it could save can find it.

---

What You Get

After one loop of the Ouroboros cycle, a vague idea becomes a verified codebase:

| Step | Before | After | | :------------ | :---------------------- | :---------------------------------------------------------------------- | | Interview | "Build me a task CLI" | 12 hidden assumptions exposed, ambiguity scored to 0.19 | | Seed | No spec | Immutable specification with acceptance criteria, ontology, constraints | | Evaluate | Manual review | 3-stage gate: Mechanical (free) -> Semantic -> Multi-Model Consensus |

What just happened?
interview  ->  Socratic questioning exposed 12 hidden assumptions
seed       ->  Crystallized answers into an immutable spec (Ambiguity: 0.15)
run        ->  Executed via Double Diamond decomposition
evaluate   ->  3-stage verification: Mechanical -> Semantic -> Consensus
Use ooo inside your AI coding agent session, or ouroboros init start, ouroboros run seed.yaml, etc. from the terminal.

The serpent completed one loop. Each loop, it knows more than the last.

---

How It Compares

AI coding tools are powerful -- but they solve the wrong problem when the input is unclear.

| | Vanilla AI Coding | Ouroboros | | :------------------ | :--------------------------------------- | :------------------------------------------------------------------------------ | | Vague prompt | AI guesses intent, builds on assumptions | Socratic interview forces clarity before code | | Spec validation | No spec -- architecture drifts mid-build | Immutable seed spec locks intent; ambiguity gate (<= 0.2) blocks premature code without explicit force | | Evaluation | "Looks good" / manual QA | 3-stage automated gate: Mechanical -> Semantic -> Multi-Model Consensus | | Rework rate | High -- wrong assumptions surface late | Low -- assumptions surface in the interview, not in the PR review |

---

The Loop

The ouroboros -- a serpent devouring its own tail -- is not decoration. It IS the architecture:

    Interview -> Seed -> Execute -> Evaluate
        ^                           |
        +---- Evolutionary Loop ----+

Each cycle does not repeat -- it evolves. The output of evaluation feeds back as input for the next generation, until the system truly knows what it is building.

| Phase | What Happens | | :------------ | :-------------------------------------------------------------------- | | Interview | Socratic questioning exposes hidden assumptions | | Seed | Answers crystallize into an immutable specification | | Execute | Double Diamond: Discover -> Define -> Design -> Deliver | | Evaluate | 3-stage gate: Mechanical ($0) -> Semantic -> Multi-Model Consensus | | Evolve | Wonder ("What do we still not know?") -> Reflect -> next generation |

"This is where the Ouroboros eats its tail: the output of evaluation
becomes the input for the next generation's seed specification."
-- reflect.py

Convergence is reached when ontology similarity >= 0.95 -- when the system has questioned itself into clarity.

Ralph: The Loop That Never Stops

ooo ralph runs the evolutionary loop persistently -- across session boundaries -- until convergence is reached. Each step is stateless: the EventStore reconstructs the full lineage, so even if your machine restarts, the serpent picks up where it left off.

``` Ralph Cycle 1: evolve_step(lineage, seed) -> Gen 1 -> action=CONTINUE Ralph Cycle 2: evolve_step(lineage) -> Gen 2 -> action=CONTINUE Ralph Cycle 3: evolve_step(lineage) -> Gen 3 -> action=CONVERGED +--

GitHub Stars & Activity

5,938Stars
602Forks
103Open issues
PythonLanguage

GitHub Popularity

GitHub stars5,938
Forks602
Open issues103
Primary languagePython
LicenseMIT
Stars gained today41
Created2026-01-14
Last pushed2026-09-15

Trending History

Daily boardrank #96 · ▲ 41 stars

Related GitHub Projects

1

Panniantong / Agent-Reach

Python★ 82,306⑂ 7,175▲ 960 stars
2

666ghj / MiroFish

Python★ 73,711⑂ 11,320▲ 619 stars
3

roboflow / supervision

Python★ 50,426⑂ 4,804▲ 217 stars
4

wshobson / agents

Python★ 39,712⑂ 4,228▲ 39 stars
5

volcengine / OpenViking

Python★ 37,686⑂ 2,910▲ 286 stars
6

OpenBMB / VoxCPM

Python★ 37,631⑂ 4,270▲ 98 stars
7

debpalash / VoiceStudio

Python★ 31,716⑂ 3,760▲ 1,510 stars
8

anthropics / knowledge-work-plugins

Python★ 24,150⑂ 2,914▲ 96 stars

More Trending Repositories