/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 ↗

Use now

Files of /ouroboros:ouroboros-config

Q00/main1 file shown
SKILL.md
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)
  1. 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
    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.

  2. Relay the http://localhost:<port> line from the output so the user can open it manually if the browser did not pop up.

  3. 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:

  1. Show the current state:

    ouroboros config show
    
  2. Present 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.

  3. 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 calls
    
  4. Confirm with ouroboros config show and 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

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---
2name: ouroboros-config
3description: "Open or drive the Ouroboros settings GUI (browser, TUI, or conversational fallback)"
4---
5 
6# /ouroboros:ouroboros-config
7 
8Settings for `~/.ouroboros/config.yaml`: per-stage runtime/model selects,
9global runtime + LLM backend, install badges for missing CLIs, and
10env-override warnings.
11 
12## Usage
13 
14```
15ooo config
16/ouroboros:ouroboros-config
17```
18 
19**Trigger keywords:** "ooo config", "open settings", "configure ouroboros", "change model", "change agent"
20 
21## Instructions
22 
23Pick the branch that matches where you (the agent) are running. The decisive
24question: **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 
281. Launch in the background (the command serves until stopped):
29 
30 ```bash
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 
442. 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 
473. 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 
54The user cannot see a browser opened *here*, but may be able to reach this
55host. Serve without auto-open and hand over the URL:
56 
57```bash
58ouroboros config --web --host 0.0.0.0 --no-browser
59```
60 
61Relay the printed URL with this host's address substituted, plus the SSH
62tunnel 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 
67Do NOT start a server nobody can reach. Drive the same settings
68conversationally over the scriptable surface:
69 
701. Show the current state:
71 
72 ```bash
73 ouroboros config show
74 ```
75 
762. 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 
803. Apply each choice with the validated setter (same write path as the GUI):
81 
82 ```bash
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 
944. Confirm with `ouroboros config show` and summarize what changed.
95 
96If a `set` is rejected, relay the validation error verbatim — it lists the
97valid keys/values.
98 
99### All branches
100 
101If 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 
105End 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 
114Your final response MUST end with exactly one breadcrumb footer line:
115 
116```
117◆ <current state> → next: <recommended action>
118```
119 
120Derive `<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