Skip to content

Add muse (Meta Muse Code) agent preset - #76

Merged
rxdt merged 1 commit into
rxdt:mainfrom
TygartMedia:add-muse-preset
Sep 30, 2026
Merged

rxdt merged 1 commit into
rxdt:mainfrom
TygartMedia:add-muse-preset

Conversation

@TygartMedia

Copy link
Copy Markdown
Contributor

Taking the muse (Meta) row of #49 — one agent per PR, as suggested.

What changed

  • pyproject.toml: new muse preset in [tool.harness.agents]. muse exec takes the prompt as a positional arg (no native stdin), so the prompt ralph.sh pipes to stdin is forwarded via the sh -c 'muse exec --json --disable-approval "$(cat)"' wrapper. --disable-approval silences tool-approval prompts but keeps the OS sandbox on — --yolo was deliberately not used (it drops approval and the sandbox, per your note in Add more agents to [tool.harness.agents] #49).
  • harness/tests/test_cli.py: updated test_every_supported_agent_has_a_nonempty_command to expect the new agent set.
  • README.md: muse added to the agent lists/examples, plus the short "Adding (or editing) an agent preset" section the issue asked for.

Install / docs

  • Install: curl -fsSL https://dev.meta.ai/install.sh | bash
  • CLI docs: https://dev.meta.ai/docs/muse-code/
  • Auth is the user's own: muse login or META_API_KEY. Verified the CLI version I tested against is Muse Code 1.4.0.

Local verification (the part most contributors can't do)

  1. Installed the CLI from the official installer and confirmed every flag against the real muse exec --help (--json, --disable-approval, positional prompt) — your sketch in Add more agents to [tool.harness.agents] #49 was accurate.
  2. Piped a prompt through the exact preset argv, exactly as ralph.sh invokes it (stdin pipe → sh -c 'muse exec --json --disable-approval "$(cat)"'): the prompt arrived intact in the turn_input_user JSONL event ("prompt":"PROOF-PING-123\n\nRALPH_ITERATION=1/1") and the run completed with exit 0 — 30 JSONL events streamed.
  3. Test suite: 211 passed; the only failures are pre-existing environment issues also failing on the pristine tree (a /tmp-disk-full template test and two vale tests — vale isn't installed in this sandbox). Ruff lint + format pass on the touched files.

One honest caveat: I verified the full pipeline with Muse's offline echo provider, since live model runs need the user's own Meta credentials — which I obviously can't supply here. The good news for users: without credentials the CLI fails fast with a clear missing meta credentials: run \muse login` or set META_API_KEY` message, so there's no silent breakage.

Follow-ups deliberately left out

  • harness run --model won't override the model for sh -c presets (no literal --model token), as you noted in Add more agents to [tool.harness.agents] #49 — same as the other wrapped presets.
  • harness configure-agents containment rules only cover Claude/Codex today; out of scope for this preset PR.

Thanks for maintaining this — happy to adjust anything.

Closes the muse row of rxdt#49: one agent per PR.

- [tool.harness.agents] gains a muse preset. `muse exec` takes the
  prompt positionally (no native stdin), so ralph.sh's piped prompt is
  forwarded via the sh -c '"$(cat)"' wrapper.
- --disable-approval silences approval prompts but keeps the OS sandbox
  on; --yolo is deliberately not used (it would drop the sandbox too).
- Verified against the real CLI (Muse Code 1.4.0, installed from the
  official installer): flags confirmed via `muse exec --help`.
- Auth is the user's own: `muse login` or META_API_KEY.
- README: muse added to the agent lists plus a short section on how to
  edit/add an agent preset.
- Test: agent set updated in test_every_supported_agent_has_a_nonempty_command.

Local verification: piped a prompt through the exact preset argv as
ralph.sh does; the prompt arrived intact (turn_input_user event) and a
full JSONL stream completed with exit 0. Live model runs need the
user's own Meta credentials; without them the CLI fails fast with a
clear 'missing meta credentials' message.
@rxdt
rxdt merged commit 3cf6137 into rxdt:main Sep 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants