
SandBase Harness
io.github.sandbaseaiPublished by GitHub account sandbaseaiv0.3.8Updated Oct 24, 2026
Stdio MCP bridge for SandBase Harness agents, sessions, turns, artifacts, and cancellation.
Overview
Stdio MCP bridge to a self-hosted SandBase Harness runtime, letting an assistant work with agents, sessions, turns, artifacts and cancellation.
- What you can do
- Bridge an MCP client to a SandBase Harness runtime over stdio
- Work with agents, sessions and turns, including sending messages and cancelling work
- Access session artifacts and resumable event streams for replay and debugging
- Reach the runtime's agent, environment, memory, file and credential resources through its API
- When to use it
- Use it when you already run a SandBase Harness runtime locally or in your own infrastructure and want an MCP-capable assistant or plugin client to drive its agents and sessions instead of calling the HTTP API directly.
- Requirements
- A running SandBase Harness runtime reachable at the URL given in MANAGED_AGENTS_URL. The bridge runs as a local process, shipped as a container image. MANAGED_AGENTS_API_KEY is needed when the connected runtime requires authentication. The runtime itself needs Node.js 22+, npm 10+ and a model provider API key; Docker is optional.
Installation
In SourceWeft
- Open SandBase Harness in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
SandBase Harness
[GitHub stars] [Listed on deepseek-plugin.org] [Release] [Official MCP Registry] [Discussions] [CodeQL] [License]
AI-readable project metadata: llms.txt · installation guide
A local-first runtime for AI agents. Sessions, sandboxed tools, memory, credentials, audit trails, and a built-in Console — all running on your machine or in your own infrastructure.
[SandBase Harness architecture]
Why
Agent SDKs handle the model loop. Production agents need more: persistent
sessions, tool governance, sandbox boundaries, credential handling, memory,
auditability, and a UI for humans to inspect what happened. managed-agents
is that runtime layer — not a visual workflow builder and not another model SDK.
Features
- Claude Managed Agents-style
/v1API and local Console - SQLite metadata by default for agents, sessions, environments, credential vaults, memory stores, files, skills, and API keys — local file/skill bytes in the workspace state directory
- Resumable Server-Sent Events for session replay and debugging
- One active model provider boundary configured through Settings V2
- Sandbox backends: local process, Docker (per-session containers), Kubernetes (kubectl exec/cp), self-hosted worker queue
- MCP toolsets, permission policies, built-in tools, and skill packages
- TypeScript SDK at
managed-agents/sdk - Release gate:
npm run release:check
Quick Start
Requirements: Node.js 22+, npm 10+, and a model provider API key (OpenAI, Anthropic, MiniMax, or any OpenAI-compatible endpoint). Docker is optional and only needed for Docker-backed sandboxes.
init writes a workspace into the directory you run it from: an agent, a skills
folder, and config.yaml, whose provider reference is the ${OPENAI_API_KEY}
environment variable. start serves the API and the Console on
http://127.0.0.1:3000.
Two steps finish the setup, both on Settings > Setup at http://127.0.0.1:3000/dashboard:
- The provider. Paste your API key into the provider form and save. The page
then reports that the saved configuration is not active yet, so restart the
runtime — stop it with Ctrl+C and run the
startcommand again, or use the restart button. A saved setting only takes effect at startup. If your provider is not in the list, choose the OpenAI-compatible vendor and set its base URL. - The model. In the Agent models panel, set the model ID your provider
actually serves —
deepseek-chatfor DeepSeek, for example. An agent carries its own model ID, so thegpt-4othatinitwrites is not valid for every provider, and a wrong ID fails the turn withmodel_not_found.
Send the first message from the Console: open Sessions, create a session for the agent, and type into the composer. From a terminal it is one command:
chat sends that one message and exits once the turn settles; without
--message it keeps the session open and streams until you interrupt it.
--tool-approval allow
preauthorizes the tool calls the agent may make, which the init template
otherwise parks for approval and waits for a person to answer; see CLI.
The unscoped managed-agents name on npm is not this project. Until an
official scoped package is announced in this repository, install only from the
tagged GitHub source release shown above. Do not run npx managed-agents or
npm install managed-agents.
Try it in Codespaces
The included development container installs dependencies and builds the runtime. When the terminal is ready, start the server on the forwarded port:
Open the forwarded SandBase Harness Console port, then configure a model in Settings > Setup. Codespaces usage may be billed by GitHub; the local quick start above remains free and keeps all runtime data on your machine.
Screenshots
Use the Official SDK
The runtime answers its own /v1 API on that same port, and an official
Anthropic TypeScript SDK client drives it unchanged: point the client's
baseURL at the runtime, give it the runtime API key, and the quickstart in
examples/official-sdk runs a whole turn —
message, tool call, tool result, final reply — against it. That example is
executed on every pull request by
tests/conformance/official-sdk-quickstart.test.ts, so the compatibility it
describes is compatibility that is tested rather than claimed.
The same surface is specified in docs/api.md, and this repository's own TypeScript SDK is documented under SDK below.
CMA compatibility
Coverage of the published Claude Managed Agents contract is declared entry by
entry in src/core/capabilities/matrix.ts:
of the official SDK's route surface (110 method/path pairs as of SDK
0.131.0), 90 routes are mounted and 20 refuse by name; no route is deferred.
Partial and Unsupported entries always name their reason.
The table below is generated by npm run docs:compat, and a contract-honesty
test fails when it drifts from the matrix.
Full compatibility table (generated)
CLI
apply is the declarative form of the same API: a Markdown file whose
frontmatter is the agent definition (the body below --- becomes the system
prompt), a .yaml environment document, or a Markdown deployment manifest
(frontmatter carries name, agent, environment, schedule; the body
becomes the initial user.message). The resolved ids land in
managed-agents-lock.json beside the files, so re-running apply after an
edit updates the same resource instead of creating a duplicate — commit the
lock file with the manifests. A later file may reference an earlier one by
name, so apply coding-assistant.md environment.yaml deployment.md wires the
deployment to the rows the first two files created.
A turn whose tool needs approval parks instead of failing, and chat asks before
running it, then lets the runtime continue the same turn. --tool-approval allow
decides every such call in advance, which is what a script or a CI job uses, and
deny refuses them. With no terminal to prompt, the default ask answers nothing
and exits non-zero with the calls that are waiting named, so a script states its
policy rather than inheriting one. A custom tool is the exception: only your own
client can produce its result, and chat says so and exits non-zero. See
usage.
SDK
The /v1 API follows Claude Managed Agents resource shapes, so you can also
point the Anthropic SDK at the local runtime:
Authentication
Open by default. Authentication activates when at least one API key exists:
Clients send Authorization: Bearer <key>.
Integrations and examples
- DeepSeek Harness plugin — run this runtime as a DSH plugin over MCP
stdio: install, preflight, tool list, and troubleshooting live in
examples/deepseek-harness. A DSH project can also take a portable Skill from GitHub source —npx --yes github:sandbaseai/sandbase-skills add multi-source-searchinstalls into.dsh/skills/multi-source-search. - Agent Plugins 1.0 clients (Copilot CLI, VS Code) and the standalone
MCP bridge container — see
agent-plugin/PLUGIN.md. - Use cases — the Showcase walks through an auditable coding agent, DSH as an interactive front end, and controlled code execution across Local, Docker, Kubernetes, and self-hosted sandboxes.
- Agent configuration — the YAML agent definition,
config.yaml, and the workspace layout live in the usage guide; curl walkthroughs for every resource are in docs/api.md.
Documentation
- Machine-readable project metadata
- Agent / MCP installation guide
- Agent Plugin marketplace manifest
- Installation
- Usage Guide
- API Reference
- Skills
- DeepSeek V4
- MiniMax
- Deployment
- Architecture
- DeepSeek Harness integration
- Contributing
- Citation metadata
- Changelog
Development
release:check runs typecheck, tests, both builds, npm pack --dry-run, CLI
init smoke, and examples/basic startup smoke.
Star and share
If this runtime solves a real agent-infrastructure problem for you, star the repository so other builders can find it.
Ecosystem directories, community guides, and related projects are in docs/ecosystem.md. Community use-case discussions: memory migration between Codex, Claude Code, and DSH, sandbox and filesystem protection for third-party plugins.
License
Source: README.md at commit fdd7ea5
Tools
0Version history
1- v0.3.8LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts