Goal
Add Muse Code (Meta's terminal coding agent, released beta 2026-08-05, powered by Muse Spark 1.2) as a selectable SANDY_AGENT value alongside claude/gemini/codex/opencode/grok — so SANDY_AGENT=muse sandy (name TBD) runs it inside a sandy sandbox.
What Muse Code is (from launch coverage)
- Terminal agent, macOS + Linux, beta, single-command install.
- Model: Muse Spark 1.2 (co-trained), scores ~82.9% Terminal-Bench 2.1.
- Auth/access via the Meta Model API (public preview; contributor-tier pricing).
- Features: plans/writes/validates code, persistent background + parallel sub-agents in isolated worktrees, a local event log (model calls, tool use, approvals, edits) enabling crash-resume.
Closest existing template: grok (#99 / v1.5.0)
Muse Code looks grok-shaped: a prebuilt binary installed via a single command, authenticating headlessly from an API key (no interactive-login file to materialize). Follow the grok addition as the reference implementation. (If it turns out to be npm-installed like gemini/codex/opencode, follow those instead.)
Key unknowns to confirm FIRST (research before coding)
Implementation checklist (mirrors grok/opencode)
Multi-agent note
Muse would be the 6th selectable agent, but the layout is still a 2×2 grid (hard cap 4). all stays claude,gemini,codex,opencode (4). A 5+ combo already hard-errors — muse just becomes another opt-in single/combo member, not part of all.
Notes
- Muse Code's own "parallel sub-agents in isolated worktrees" is an internal feature of the agent, orthogonal to sandy wrapping it — sandy still provides the outer container/egress isolation around the whole Muse process.
- macOS/Linux only matches sandy's supported hosts; fine.
Goal
Add Muse Code (Meta's terminal coding agent, released beta 2026-08-05, powered by Muse Spark 1.2) as a selectable
SANDY_AGENTvalue alongside claude/gemini/codex/opencode/grok — soSANDY_AGENT=muse sandy(name TBD) runs it inside a sandy sandbox.What Muse Code is (from launch coverage)
Closest existing template: grok (#99 / v1.5.0)
Muse Code looks grok-shaped: a prebuilt binary installed via a single command, authenticating headlessly from an API key (no interactive-login file to materialize). Follow the grok addition as the reference implementation. (If it turns out to be npm-installed like gemini/codex/opencode, follow those instead.)
Key unknowns to confirm FIRST (research before coding)
/usr/local/bin).META_API_KEY/MUSE_API_KEY?). Whether it authenticates fully headless from that env var (grok-style) or needs an auth file/OAuth (codex-style). This decides whether sandy just forwards the key (privileged-tier) or must materialize an auth file.-p/exec/run-equivalent for one-shot mode (sandy -p), and whether--continue/-cexists.muse-spark-1.2), for aMUSE_MODELpassing knob.Implementation checklist (mirrors grok/opencode)
sandy-muse(+ install in the generated Dockerfile); add muse tosandy-fullfor multi-agent combos.build_muse_cmd()routed through_sandy_wrap_cmd_exit_pause+_sandy_translate_args.MUSE_MODEL+SANDY_MUSE_AUTH=auto|api_key|oauth(passive-safe); the API key (privileged-tier, forwarded via-e) — add_sandy_key_metadatarows + runtest/regen-config-docs.sh.:roauth.json — pick per the auth finding above).-p/--print/--prompt(and drop--continueif unsupported).--print-schemaagents list entry (name, image, credential probe order).run-tests.shrouting/image-selection assertions (the §54-style static checks).Multi-agent note
Muse would be the 6th selectable agent, but the layout is still a 2×2 grid (hard cap 4).
allstays claude,gemini,codex,opencode (4). A 5+ combo already hard-errors — muse just becomes another opt-in single/combo member, not part ofall.Notes