Skip to content

Support Meta Muse Code (muse) as an external provider #258

Closed

Description

@Grimnoth

Current scope

Add Meta Muse Code (muse) as an external provider with read-only and isolated-write modes (Eric, 2026-11-06). Muse Code 1.4.14 is installed and logged in on studio1, and muse is on pro14.

Acceptance:

  1. Every flag in the adapter comes from the real muse --help and muse exec --help, and the catalog records the version.
  2. Read-only and write modes are measured with an escape test, and follow the rules in Add isolated-write to the external providers, with an opt-in for unconfined ones #263.
  3. Model proof follows provider-dispatch.md. A registry family is optional, and no default role changes.
  4. A live gate runs one read-only lane and one writer lane through the runner.

Execution brief

Unit of the 2026-11-06 batch, after #263.


Support Meta Muse Code (muse) as a read-only external provider, so a Muse model can sit on the interrogate reviewers and arena runners panels as a fourth family. Happy to be told it does not belong, or belongs in another shape.

For context, mattvv/claude-brain already runs a three-family review council with Sol, Grok and Muse (muse-wonder-1.0). It reaches Muse through CLIProxyAPI. A pstack lane would run Meta's own CLI instead.

Proposed adapter

This maps the adapter contract to muse exec --json. The flags come from a third-party wrapper (muse-codes 0.1.8), not from Meta's docs. They are not yet checked against a real muse exec --help.

Contract field Proposed value
executable muse
launch.prompt file: --prompt-file <promptPath>
effortIn flag: --reasoning-effort (none minimal low medium high xhigh ultra)
launch.supports read-only only
Read-only argv --disable-write --disable-shell --disable-web-tools --no-foreign-personal-context --worktree off --workspace <cwd>. Keep the OS sandbox on. Never pass --yolo, --trust-workspace, --disable-sandbox.
parse JSONL MuseRecord envelopes, dispatched on payload_type. Final text from run.terminal.completed. Failures from other run.terminal.* reasons and from task.lifecycle (failed, rejected, cancelled).
proof required: run.model.configured.model_id
Usage and cost null: the events carry no model token counts
environment allowlist: base names, plus the prefixes that the CLI reads (to be measured)

Registry: an optional muse-wonder family (muse:muse-wonder-1.0). Possibly also muse-spark-1.3 as a cheaper model.

Open questions (need a real muse and a Muse Code login)

  1. Preflight. Is there a command that proves the login and lists the models, like grok models? The wrapper shows no login, status or models subcommand.
  2. Headless approvals. Does a tool call that needs approval block a headless run? If so, does --user-input-auto-resolve or the sandbox prevent that without --disable-approval?
  3. Read tools. Which read and search tools remain with --disable-shell set? A reviewer lane needs them.
  4. State paths and config. Where does the CLI keep its login and session logs? Which host, workspace or repository config does it load in a lane? This is for the catalog notes, as for Amp in Support Amp as an external provider #158.

I can capture muse --help, muse exec --help and one recorded read-only run as fixtures if that helps.

Activity

  1. ericlitman commented on Nov 6, 2026

    @ericlitman
    Owner

    We'll take this. We have Muse Code installed and logged in, so we'll measure the real muse exec flags ourselves rather than rely on the wrapper's. One change from the proposal: we're adding write access to the providers, so a Muse lane can serve as an interrogate adversary that runs code, not only as a read-only reviewer. We'll link the PR here.

  2. changed the title [-]Support Meta Muse Code (`muse`) as a read-only external provider[/-] [+]Support Meta Muse Code (`muse`) as an external provider[/+] on Nov 6, 2026
  3. ericlitman commented on Nov 6, 2026

    @ericlitman
    Owner

    PR: #268

  4. added a commit that references this issue on Nov 6, 2026
  5. ericlitman commented on Nov 6, 2026

    @ericlitman
    Owner

    Batch 262 closeout for this issue (full record: https://github.com/mobilyze-llc/docs/blob/main/projects/open-pstack/records/2026-11-06-batch-262/closeout.md):

    #258: Support Meta Muse Code (muse) as an external provider

    Original text: Grimnoth's proposal for a read-only adapter (proof from run.model.configured, usage null, an optional muse-wonder family, four open questions). The scope was rewritten on 2026-11-06 after Eric's words "that also opens up muse - we have it, and it's logged in". Shipped in #268.

    1. Flags from the real muse --help and muse exec --help: done as written (recorded fixtures).
    2. Both modes measured with an escape test: done as written; the writer is opt-in only (sandbox on, but the shell wrote into the shared .git).
    3. Model proof per provider-dispatch.md, optional family, no default change: done as written; proof is pinned argv because run.model.configured only echoes the request; usage comes from run.usage; no family registered.
    4. A live gate with one read-only and one writer lane: done as written (run 5). The gate found two defects, fixed in feat(runner): writers for external providers and a Muse Code provider (#263, #258) #268: the adapter dropped META_API_KEY (0e3d85b, which also accepts muse usage's "No subscription allowance (api_key)" as an API-key login), and the verifier hid the operator's Muse config by redirecting XDG_CONFIG_HOME (eefdd1f, which now symlinks the operator's settings.json and auth.json into run state).

    Grimnoth's open questions: preflight answered (muse usage); headless approvals answered (--approval-mode never --approval-judge off returns a refused tool to the model); read tools under --disable-shell and full state and config paths not settled beyond settings.json and auth.json. Also unverified from #268: MCP and plugin suppression, workspace switching, whether --reasoning-effort overrides per-model effort, and dsh 0.2.1-rc.2's SIGTERM, .env and session-log behaviour. Reader addition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions