VaultRun

VaultRun

Self-hosted secure runtime for AI agents. Save workflows as assets on your infra — sandboxed, verified, audited. No SaaS. No telemetry.

mode local-first license apache-2.0 core mcp 53+ tools assets missions · verify · memory
status early open source proof repo + docs, not logos data stays on your infra license apache-2.0 core
workflows install

request path

Agent asks. Sandbox runs. Audit sticks.

Illustrated walkthrough using the real API shapes — not a recorded customer run. Click a step, then verify the same trail on your own instance with the curl below.


      
illustrated · click steps · ← → · auto-plays once on first view

After install, replay your audit trail (same endpoint the demo shows):

 sh — verify audit
$ curl -sS -H "Authorization: Bearer $VAULTRUN_API_KEY" \
  "http://localhost:8080/api/v1/audit?session_id=$SESSION_ID"
# → { "audit_logs": [ { "action": "command.finished", "sig": "…" }, … ] }

quickstart

Up and running in five commands.

 sh — vaultrun
$ git clone https://github.com/nickvd7/vaultrun && cd vaultrun
$ cp .env.example .env        # set MASTER_API_KEY to something strong
$ make up                     # API + Postgres + Redis + dashboard
$ make bootstrap-key          # prints your first vr_... API key
$ curl http://localhost:8080/health
{"status":"ok"}
# dashboard → http://localhost:3000

Prerequisites: Docker, Docker Compose, Go 1.25+.

how it works

One API between your agent and the blast radius.

┌──────────────────────────────────────────────────────────────┐
│  Your AI agent  (Claude, GPT, custom, …)                     │
│                                                              │
│  result = client.run(session_id,                             │
│      command="python", args=["analyze.py"])                  │
└────────────────────────┬─────────────────────────────────────┘
                         │ API key
                         ▼
┌──────────────────────────────────────────────────────────────┐
│  VaultRun API  (your server, your infra)                     │
│                                                              │
│  • isolated Docker container per session                     │
│  • exec API only — no shell injection                        │
│  • path traversal prevention in workspace                    │
│  • HMAC-signed audit trail                                   │
│  • CPU / memory / timeout limits per session                 │
│  • network disabled by default                               │
└──────────────────────────────────────────────────────────────┘
Your AI agent Claude, GPT, or custom — calls client.run(session_id, …) with a command.
↓ API key
VaultRun API On your infra:
  • Isolated Docker container per session
  • Exec API only — no shell injection
  • Path traversal prevention
  • HMAC-signed audit trail
  • CPU / memory / timeout limits
  • Network disabled by default

what's in the box

Nine components, one repo.

01 / cmd/api

API server

Gin-based REST API — sessions, runs, files, audit logs, key management.

02 / sdk/mcp

MCP server

53 tools over stdio and HTTP. Claude, OpenAI, OpenRouter, custom agents.

03 / cmd/cli

CLI

The vaultrun command-line tool for sessions, files, runs and logs.

04 / cmd/ci-runner

CI runner

GitHub webhook → sandboxed CI with Slack / Teams notifications.

05 / apps/frontend

Dashboard

Next.js management UI with a server-side API proxy — keys never reach the browser.

06 / sdk/go + sdk/python

SDKs

Typed Go client and a Python client. Same API, your language.

07 / enterprise

Enterprise SSO

OIDC (PKCE) + SAML 2.0 with org-aware RBAC. Okta, Azure AD, Google, Keycloak. VaultRun Enterprise.

08 / internal/audit

Audit trail

Every action HMAC-signed and queryable. Tamper-evident by design.

09 / internal/policy

Policy hook

Pluggable policy layer, OPA-ready. Decide what agents may run, centrally.

workflow as asset

Save the plan. Replay it. Own the trail.

Successful agent work should not evaporate into chat history. VaultRun treats reusable tool sequences as first-class missions on your infra — verified, remembered, and cost-aware when you replay.

01 / missions

Named sequences

Versioned tool steps you can inspect, share in an org, and re-run against a fresh sandbox.

02 / verify

Checkpoints

Assert exit codes, stdout, and files after a run — fail closed before the next step.

03 / memory

Sandbox notes

Persist agent scratch under .vaultrun/memory/; snapshots carry it forward.

04 / swarm

Agent graph

Directed edges between agents (lead / review / handoff) on collaborative sessions.

05 / cost

Replay spend

Attribute session cost metrics to a mission run without mutating immutable billing rows.

06 / local-first

Your network

No VaultRun cloud. Data, audit HMAC, and workflow assets stay where you deploy.

mcp server

53 tools. Two transports. Any agent.

Pick your transport, copy the snippet, paste into the agent. Same tools either way.

 claude_desktop_config.json
{
  "mcpServers": {
    "vaultrun": {
      "command": "/path/to/vaultrun-mcp",
      "env": {
        "VAULTRUN_BASE_URL": "http://localhost:8080",
        "VAULTRUN_API_KEY": "vr_your_key"
      }
    }
  }
}
 sh — mcp http
$ MCP_TRANSPORT=http \
  MCP_AUTH_TOKEN=your-secret-token \
  VAULTRUN_BASE_URL=http://localhost:8080 \
  VAULTRUN_API_KEY=vr_your_key \
  ./vaultrun-mcp
# POST /mcp — JSON-RPC 2.0
# Authorization: Bearer your-secret-token
sandbox ×13
create_session · run_command · upload_file · read_file · list_files · get_session_logs · …
databases ×13
sqlite_query · pg_query · pg_schema · mongo_find · mongo_aggregate · …
aws ×14
s3_get_object · ssm_get_parameter · sm_get_secret · lambda_invoke · … (explicit opt-in)
filesystem ×4
fs_read_file · fs_write_file · fs_list_dir · fs_delete_file
github ×2
run_github_repo · github_post_comment
ops ×7
list_images · pull_image · create_snapshot · create_artifact · list_audit_logs · …
flowd ×6
flowd_list_suggestions · flowd_approve_suggestion · flowd_list_patterns · … (MCP_FLOWD_ENABLED)

sdks

Five lines to a sandboxed run.

Same API surface — switch language without rewriting the mental model.

 python — sandbox_sdk
# pip install vaultrun-sdk
from sandbox_sdk import Client

client = Client("http://localhost:8080",
                api_key="vr_...")
s = client.create_session(
        image="python:3.12-slim")
client.upload_file(s.id, "script.py",
        open("script.py", "rb"))
r = client.run(s.id, command="python",
        args=["script.py"])
print(r.stdout)
 go — sdk/go
import vaultrun "github.com/nickvd7/vaultrun/sdk/go"

client := vaultrun.New(
    "http://localhost:8080", "vr_...")
s, _ := client.CreateSession(ctx,
    vaultrun.CreateSessionOptions{
        Image: "python:3.12-slim"})
client.UploadFile(ctx, s.ID,
    "script.py", scriptContent)
run, _ := client.Run(ctx, s.ID,
    vaultrun.RunOptions{Command: "python",
        Args: []string{"script.py"}})
fmt.Println(*run.Stdout)

flowd integration

Local workflows meet isolated execution.

Flowd observes local file workflows, detects patterns, and suggests automations you approve from the terminal. VaultRun runs agent code in Docker sandboxes with an audit trail. Together: observe → suggest → approve locally, then execute risky work in a container.

  flowd (local)                    VaultRun (sandbox)
  observe · detect · suggest    →    create_session · run_command · audit
  flowctl approve                     MCP flowd_* tools (opt-in)
flowd (local) Observe · detect · suggest · flowctl approve
VaultRun (sandbox) create_session · run_command · audit · MCP flowd_* tools (opt-in)

security model

Paranoid by default. On purpose.

Full write-up: docs/security.md

Teams with an IdP?

OIDC / SAML SSO and org-aware RBAC — evaluate free, license for prod. No fake case studies; talk to us instead.

open core

Apache 2.0 core. Fork it, ship it, embed it.

The core — API server, sandbox runtime, CLI, MCP server (53 tools), CI runner, dashboard, and both SDKs — is Apache 2.0: run it commercially, modify it, or vendor the Go SDK straight into your agent. Enterprise SSO (OIDC + SAML) ships separately under a commercial license. Issues and pull requests welcome.

enterprise

SSO for teams that already have an IdP.

VaultRun Enterprise adds OIDC (Authorization Code + PKCE) and SAML 2.0 to the self-hosted API — Okta, Azure AD, Google Workspace, Keycloak, AD FS, OneLogin — with org-aware RBAC and signed dashboard sessions. Eval is free; production needs a license. Requests go through the contact form.

Capability Core (Apache 2.0) Enterprise
API / sandboxes / MCP / SDKs / CI runner included included
API key auth included included
OIDC + SAML SSO included
Org-aware IdP group → RBAC mapping included
Dev / test / evaluation use free free
Production SSO commercial license
01 / evaluate

Try it free

Dev and test use is free under the Enterprise License. Ask for evaluation access and follow the SSO setup guide.

request evaluation → read SSO setup ↗
02 / license

Get a production license

Ready for prod SSO? Tell us org, IdP, instances, and timeline — custom commercial quote (no public price list).

request a license →
03 / talk

Talk / schedule a call

Pick up to three preferred times — we confirm by email. No calendar SaaS required.

propose times → general sales question →

contact

Enterprise, sales, or a walkthrough?

Use the form below for SSO evaluation, licenses, and calls. Bugs & featuresGitHub Issues (use the templates). Security → private only: SECURITY.md (not this form, unless intent = security report).

 new-message — vaultrun.dev