№ 0513Skill
Muse Code provider for BB
BB plugin that runs Muse Code as a first-class provider over the Muse Session Protocol, with streamed timeline, tool rows, approvals, model picker and a subscription usage meter.
Muse Code provider for BB
Runs Muse Code — Meta's
terminal coding agent, powered by Muse Spark — as a first-class BB provider.
Threads on this provider get the same surfaces as a bundled one: streamed
timeline, tool rows, approvals, model picker, health, installation, and a
subscription usage meter.
How it works
Muse ships an in-process protocol of its own: muse serve hosts sessions over
stdio and speaks the Muse Session Protocol (MSP) — a JSON-RPC command plane
(session/start, turn/start, approval/decide) plus a view stream of
notifications (item/started, item/delta, turn/completed,session/tokenUsage). The plugin's bridge translates that stream into BB's
delta grammar, so BB's assembler mints every turn and item id and Muse's own
ids stay join keys.
Each thread gets its own muse serve child, so no thread can disturb another's
configuration, sandbox posture, or session state.
Security posture, stated plainly
This provider runs with Muse's own OS sandbox off, and with network access
allowed. Both are defaults, both are settings, and the reasons are in
Why Muse's OS sandbox defaults to off
and the section after it. What that means in practice:
- A shell command Muse runs is confined by nothing at the OS level. BB's
permission modes and its approval flow are the enforcement surface. Underfull— BB's documented approval bypass — that surface is deliberately empty. - Sandboxed shell commands, if you turn the sandbox on, are allowed network by
default rather than Muse'sproxy-only, becauseproxy-onlytruncates thebbCLI's larger responses. - Set Muse's own OS sandbox to
onfor OS-level containment. It costs you
native toolchains: nothing that invokes Swift or Clang builds under it.
BB's injected tools reach Muse over a loopback socket on 127.0.0.1, bound to an
ephemeral port. One bridge process serves every thread, so that socket is a
boundary between them: each thread's MCP server holds a credential minted for
that thread and for the exact tools BB declared for it, and a call is answered
only where the presented secret, the stated thread, and the named tool all
belong to the same grant. Credentials are revoked when the thread is discarded
and replaced when its tool set changes. The tool is checked again



