Agent OS: Stop prompting. Start specifying.
English | 한국어 | 简体中文
◯ ─────────── ◯
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
Quick Start ·
Why ·
Results ·
How It Works ·
Commands ·
Philosophy ·
Guide
```bash
# macOS / Linux / WSL 2
curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme-hero bash
```
```powershell
# 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
Terminal CLI — a task-management CLI:
ouroboros init start asking about ordering and scope, then reporting an ambiguity score
ChatGPT (Codex) — called as an integration, on a video-publishing harness: the interview, its advisory lanes, and the ambiguity ledger
Claude Code — a YouTube automation task, with the six advisory lanes running in parallel before the interview submits
Hermes (Discord) — a kart-racing game, run as a chat bot, ending at
Final ambiguity: 0.15
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
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`](https://github.com/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`](https://github.com/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`](https://github.com/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
```
- The **kernel** (`ouroboros`) owns the contract: every action becomes a
Seed-bound, ledger-recorded, replayable event — regardless of which LLM
executes it.
- **Plugins** (`ouroboros-plugins`) declare scoped capabilities against that
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.
- **Ourocode** is the terminal shell: it surfaces MCP state, interview
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:
```bash
# macOS / Linux / WSL 2
curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme bash
```
```powershell
# 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](./docs/platform-support.md).
**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.
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](https://github.com/deepseek-ai/deepseek-harness)'s ACP server under the hood. Or go the other way: install the [`dsh-ouroboros` plugin](./integrations/dsh-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](./docs/guides/deepseek-harness.md).
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`.
```bash
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
```bash
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 -