Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Open or drive the Ouroboros settings GUI (browser, TUI, or conversational fallback)
.claude/skills/q00-ouroboros-config/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 41% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 0% | 0% |
| case-16 | ✓→✓ | = Same ✓ | -9% | 0% |
Settings for ~/.ouroboros/config.yaml: per-stage runtime/model selects, global runtime + LLM backend, install badges for missing CLIs, and env-override warnings.
ooo config
/ouroboros:ouroboros-configTrigger keywords: "ooo config", "open settings", "configure ouroboros", "change model", "change agent"
Pick the branch that matches where you (the agent) are running. The decisive question: can the user open a browser pointed at this machine?
bash if command -v ouroboros >/dev/null 2>&1; then ouroboros config else uvx --python '>=3.12' --from 'ouroboros-ai[tui]' ouroboros config fi
The command detects the non-interactive context itself and serves the settings app over a local web server, auto-opening the user's browser. The uvx fallback is required for a Marketplace-plugin-only install, where the MCP server exists but ouroboros is not on PATH. In a development checkout use uv run ouroboros config.
http://localhost:<port> line from the output so the user canopen it manually if the browser did not pop up.
a running MCP server may need a reconnect to pick up backend changes. Tell them they can reopen these settings any time with ooo config; saving a model choice never locks it permanently.
The user cannot see a browser opened here, but may be able to reach this host. Serve without auto-open and hand over the URL:
bashouroboros config --web --host 0.0.0.0 --no-browser
Relay the printed URL with this host's address substituted, plus the SSH tunnel fallback the command prints (ssh -L <port>:localhost:<port> <this-host>).
Do NOT start a server nobody can reach. Drive the same settings conversationally over the scriptable surface:
bash ouroboros config show
per-stage models — with the current values, and ask what to change.
bash ouroboros config set orchestrator.runtime_backend <agent> ouroboros config set orchestrator.runtime_profile.stages.<interview|execute|evaluate|reflect> <agent> ouroboros config set clarification.default_model <model> # interview & seed ouroboros config set execution.default_model <model> # execute ouroboros config set evaluation.semantic_model <model> # evaluate ouroboros config set resilience.reflect_model <model> # reflect ouroboros config set llm.backend <backend> # internal LLM calls
ouroboros config show and summarize what changed.If a set is rejected, relay the validation error verbatim — it lists the valid keys/values.
If the command fails with a missing-dependency hint, relay it verbatim (pip install 'ouroboros-ai[tui]'). Scriptable edits always remain on ouroboros config show|set|backend|init|validate.
End your final message with the state breadcrumb footer (RFC #1392), e.g.:
◆ Settings GUI serving at <url> → next: Save in browser, then stop the server
◆ Config updated via chat (<keys>) → next: reconnect MCP if the backend changedYour final response MUST end with exactly one breadcrumb footer line:
◆ <current state> → next: <recommended action>Derive <current state> from live session state via ouroboros_session_status when that MCP projection is available; otherwise derive it from this skill's actual outcome. Never use a linear Step N of M footer because Ouroboros is an evolutionary loop. When the next action is genuinely a choice, list 2-3 honest options in the next: clause. The breadcrumb line must be the last line of the response.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,900 | 12,066 | +22% | 1 | 1 | 0% | 1,696 | 1,687 | -1% | 0 | 0 | — |
case-02 | fail→fail | 9,140 | 9,001 | -2% | 1 | 1 | 0% | 1,493 | 1,708 | +14% | 0 | 0 | — |
case-03 | fail→fail | 9,758 | 6,829 | -30% | 1 | 1 | 0% | 1,660 | 1,428 | -14% | 0 | 0 | — |
case-04 | fail→fail | 9,933 | 5,617 | -43% | 1 | 1 | 0% | 1,640 | 2,186 | +33% | 0 | 0 | — |
case-05 | fail→fail | 14,171 | 10,043 | -29% | 1 | 1 | 0% | 2,252 | 1,663 | -26% | 0 | 0 | — |
case-06 | pass→pass | 11,693 | 5,676 | -51% | 1 | 1 | 0% | 2,063 | 2,053 | -0% | 0 | 0 | — |
case-07 | fail→fail | 12,153 | 3,539 | -71% | 1 | 1 | 0% | 1,804 | 1,811 | +0% | 0 | 0 | — |
case-08 | fail→fail | 20,177 | 3,392 | -83% | 1 | 1 | 0% | 1,357 | 1,637 | +21% | 0 | 0 | — |
case-09 | fail→fail | 24,884 | 3,627 | -85% | 1 | 1 | 0% | 3,514 | 1,574 | -55% | 0 | 0 | — |
case-10 | fail→fail | 21,182 | 3,694 | -83% | 1 | 1 | 0% | 3,484 | 1,740 | -50% | 0 | 0 | — |
case-11 | fail→fail | 21,480 | 2,805 | -87% | 1 | 1 | 0% | 3,785 | 1,585 | -58% | 0 | 0 | — |
case-12 | fail→fail | 15,812 | 3,492 | -78% | 1 | 1 | 0% | 2,693 | 1,759 | -35% | 0 | 0 | — |
case-13 | fail→fail | 12,112 | 5,179 | -57% | 1 | 1 | 0% | 1,677 | 1,987 | +18% | 0 | 0 | — |
case-14 | fail→fail | 9,035 | 3,881 | -57% | 1 | 1 | 0% | 1,473 | 1,711 | +16% | 0 | 0 | — |
case-15 | fail→pass | 13,377 | 3,141 | -77% | 1 | 1 | 0% | 1,808 | 1,659 | -8% | 0 | 0 | — |
case-16 | pass→pass | 18,593 | 8,336 | -55% | 1 | 1 | 0% | 2,707 | 2,473 | -9% | 0 | 0 | — |
case-17 | fail→pass | 8,860 | 4,933 | -44% | 1 | 1 | 0% | 1,211 | 2,010 | +66% | 0 | 0 | — |
case-18 | pass→pass | 10,108 | 4,834 | -52% | 1 | 1 | 0% | 1,964 | 2,036 | +4% | 0 | 0 | — |
case-19 | pass→pass | 7,588 | 4,534 | -40% | 1 | 1 | 0% | 1,015 | 1,753 | +73% | 0 | 0 | — |
case-20 | pass→pass | 19,725 | 38,569 | +96% | 1 | 1 | 0% | 1,982 | 7,644 | +286% | 0 | 0 | — |
case-21 | pass→pass | 8,354 | 8,384 | +0% | 1 | 1 | 0% | 1,293 | 2,795 | +116% | 0 | 0 | — |
case-22 | pass→fail | 19,729 | 17,192 | -13% | 1 | 1 | 0% | 2,951 | 4,149 | +41% | 0 | 0 | — |
case-23 | fail→fail | 23,530 | 3,055 | -87% | 1 | 1 | 0% | 3,397 | 1,508 | -56% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 19 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +4 percentage points is the difference between those two pass rates over the 19 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.