Topology
Every agent client talks to one brain overPOST /mcp (Streamable HTTP, JSON-RPC). The browser UI talks to the same brain over /api/…. There is no local proxy on agent machines. Byte transfers — artifact, storage, and feed uploads, sandbox output pulls — happen agent-side over presigned or token URLs, so the brain never receives a checkout root and never serves live checkout files.
The brain, by layer
State and storage
Auth and tenancy
OneAuthorization: Bearer header; three credential shapes dispatched by prefix — session JWT, rr_sk_, mk_ — plus OAuth (DCR + PKCE) for interactive MCP clients. Project membership is the tenant boundary, enforced at the HTTP path gate and the MCP funnel. Local mode is auth-free. Details: Configure auth.
Sandboxes
The brain provisions, leases, observes, and terminates; the agent holds the SSH key and runs commands. Every VM gets the same bootstrap (caller key + management key,rec.sh transcript wrapper, merv_run, then the ML toolchain). Ids are <provider>:<native_id> so operations route to the owning driver.
Distribution
Canonical content lives inmerv/ (skills/, agents/, bin/, adapters under clients/). CI publishes a generated merv-client branch and a merv-hermes-client repo after every change on main; marketplace manifests on main serve Codex, Claude Code, Copilot CLI, and Cursor; the runner is a backend-free zipapp at rapidreview.io/merv/runner/.
Deeper: merv/docs/ARCHITECTURE.md and merv/docs/MODULE_BOUNDARIES.md in the repository.