/ouroboros:ouroboros-config skill
Open or drive the Ouroboros settings GUI (browser, TUI, or conversational fallback)
by Q00·MIT license·★ 6,178 Stars on the repo·GitHub ↗
npx degit Q00/ouroboros/skills/config#main ~/.claude/skills/configChecked ·commit main
Files of /ouroboros:ouroboros-config
Show the full text121 lines
/ouroboros:ouroboros-config
Settings for ~/.ouroboros/config.yaml: per-stage runtime/model selects,
global runtime + LLM backend, install badges for missing CLIs, and
env-override warnings.
Usage
ooo config
/ouroboros:ouroboros-config
Trigger keywords: "ooo config", "open settings", "configure ouroboros", "change model", "change agent"
Instructions
Pick the branch that matches where you (the agent) are running. The decisive question: can the user open a browser pointed at this machine?
Branch A — local harness (Claude Code / Codex on the user's own machine)
Launch in the background (the command serves until stopped):
if command -v ouroboros >/dev/null 2>&1; then ouroboros config else uvx --python '>=3.12' --from 'ouroboros-ai[tui]' ouroboros config fiThe command detects the non-interactive context itself and serves the settings app over a local web server, auto-opening the user's browser. The
uvxfallback is required for a Marketplace-plugin-only install, where the MCP server exists butouroborosis not onPATH. In a development checkout useuv run ouroboros config.Relay the
http://localhost:<port>line from the output so the user can open it manually if the browser did not pop up.Tell the user: edit → Save → then ask you to stop the server. Remind them 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.
Branch B — remote host the user can reach over the network (SSH box, home server)
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:
ouroboros 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>).
Branch C — chat gateway, no browser path at all (e.g. hermes driven from Discord)
Do NOT start a server nobody can reach. Drive the same settings conversationally over the scriptable surface:
Show the current state:
ouroboros config showPresent the user a short menu in chat (default agent, per-stage agents, and models:
auto, a tier, or a model id for every role) with the current values, and ask what to change.Apply each choice with the validated setter (same write path as the GUI):
ouroboros config set orchestrator.runtime_backend <agent> ouroboros config set orchestrator.runtime_profile.stages.<interview|execute|evaluate|reflect> <agent> ouroboros config set models.default <auto|frugal|standard|frontier|model> # every role ouroboros config set models.pin true # run the per-role ids below 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 callsConfirm with
ouroboros config showand summarize what changed.
If a set is rejected, relay the validation error verbatim — it lists the
valid keys/values.
All branches
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 changed
RFC #1392 State Breadcrumb Footer
Your 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.
| 1 | |
| 2 | name ouroboros-config |
| 3 | description "Open or drive the Ouroboros settings GUI (browser, TUI, or conversational fallback)" |
| 4 | |
| 5 | |
| 6 | # /ouroboros:ouroboros-config |
| 7 | |
| 8 | Settings for `~/.ouroboros/config.yaml`: per-stage runtime/model selects, |
| 9 | global runtime + LLM backend, install badges for missing CLIs, and |
| 10 | env-override warnings. |
| 11 | |
| 12 | ## Usage |
| 13 | |
| 14 | |
| 15 | ooo config |
| 16 | /ouroboros:ouroboros-config |
| 17 | |
| 18 | |
| 19 | **Trigger keywords:** "ooo config", "open settings", "configure ouroboros", "change model", "change agent" |
| 20 | |
| 21 | ## Instructions |
| 22 | |
| 23 | Pick the branch that matches where you (the agent) are running. The decisive |
| 24 | question: **can the user open a browser pointed at this machine?** |
| 25 | |
| 26 | ### Branch A — local harness (Claude Code / Codex on the user's own machine) |
| 27 | |
| 28 | Launch in the background (the command serves until stopped): |
| 29 | |
| 30 | |
| 31 | if command -v ouroboros >/dev/null 2>&1; then |
| 32 | ouroboros config |
| 33 | else |
| 34 | uvx --python '>=3.12' --from 'ouroboros-ai[tui]' ouroboros config |
| 35 | fi |
| 36 | |
| 37 | |
| 38 | The command detects the non-interactive context itself and serves the |
| 39 | settings app over a local web server, auto-opening the user's browser. The |
| 40 | `uvx` fallback is required for a Marketplace-plugin-only install, where the |
| 41 | MCP server exists but `ouroboros` is not on `PATH`. In a development |
| 42 | checkout use `uv run ouroboros config`. |
| 43 | |
| 44 | Relay the `http://localhost:<port>` line from the output so the user can |
| 45 | open it manually if the browser did not pop up. |
| 46 | |
| 47 | Tell the user: edit → Save → then ask you to stop the server. Remind them |
| 48 | a running MCP server may need a reconnect to pick up backend changes. Tell |
| 49 | them they can reopen these settings any time with `ooo config`; saving a |
| 50 | model choice never locks it permanently. |
| 51 | |
| 52 | ### Branch B — remote host the user can reach over the network (SSH box, home server) |
| 53 | |
| 54 | The user cannot see a browser opened *here*, but may be able to reach this |
| 55 | host. Serve without auto-open and hand over the URL: |
| 56 | |
| 57 | |
| 58 | ouroboros config --web --host 0.0.0.0 --no-browser |
| 59 | |
| 60 | |
| 61 | Relay the printed URL with this host's address substituted, plus the SSH |
| 62 | tunnel fallback the command prints |
| 63 | (`ssh -L <port>:localhost:<port> <this-host>`). |
| 64 | |
| 65 | ### Branch C — chat gateway, no browser path at all (e.g. hermes driven from Discord) |
| 66 | |
| 67 | Do NOT start a server nobody can reach. Drive the same settings |
| 68 | conversationally over the scriptable surface: |
| 69 | |
| 70 | Show the current state: |
| 71 | |
| 72 | |
| 73 | ouroboros config show |
| 74 | |
| 75 | |
| 76 | Present the user a short menu in chat (default agent, per-stage agents, |
| 77 | and models: `auto`, a tier, or a model id for every role) with the current |
| 78 | values, and ask what to change. |
| 79 | |
| 80 | Apply each choice with the validated setter (same write path as the GUI): |
| 81 | |
| 82 | |
| 83 | ouroboros config set orchestrator.runtime_backend <agent> |
| 84 | ouroboros config set orchestrator.runtime_profile.stages.<interview|execute|evaluate|reflect> <agent> |
| 85 | ouroboros config set models.default <auto|frugal|standard|frontier|model> # every role |
| 86 | ouroboros config set models.pin true # run the per-role ids below |
| 87 | ouroboros config set clarification.default_model <model> # interview & seed |
| 88 | ouroboros config set execution.default_model <model> # execute |
| 89 | ouroboros config set evaluation.semantic_model <model> # evaluate |
| 90 | ouroboros config set resilience.reflect_model <model> # reflect |
| 91 | ouroboros config set llm.backend <backend> # internal LLM calls |
| 92 | |
| 93 | |
| 94 | Confirm with `ouroboros config show` and summarize what changed. |
| 95 | |
| 96 | If a `set` is rejected, relay the validation error verbatim — it lists the |
| 97 | valid keys/values. |
| 98 | |
| 99 | ### All branches |
| 100 | |
| 101 | If the command fails with a missing-dependency hint, relay it verbatim |
| 102 | (`pip install 'ouroboros-ai[tui]'`). Scriptable edits always remain on |
| 103 | `ouroboros config show|set|backend|init|validate`. |
| 104 | |
| 105 | End your final message with the state breadcrumb footer (RFC #1392), e.g.: |
| 106 | |
| 107 | |
| 108 | ◆ Settings GUI serving at <url> → next: Save in browser, then stop the server |
| 109 | ◆ Config updated via chat (<keys>) → next: reconnect MCP if the backend changed |
| 110 | |
| 111 | |
| 112 | ## RFC #1392 State Breadcrumb Footer |
| 113 | |
| 114 | Your final response MUST end with exactly one breadcrumb footer line: |
| 115 | |
| 116 | |
| 117 | ◆ <current state> → next: <recommended action> |
| 118 | |
| 119 | |
| 120 | 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. |
| 121 |
Discussion
Browse more free Claude skills.