Runeward

io.github.RunewarddPublished by GitHub account Runewarddv0.1.4Updated Oct 24, 2026

Governed execution cells for AI agents: Docker/K8s sandboxes with policy, audit, and approvals.

Overview

AI-generated overview

Runeward (Rune Box) puts policy, approvals, budgets and signed audit around AI agent actions run in Docker, Podman or Kubernetes sandboxes.

What you can do
  • Run governed shell, code, file, network and browser actions inside isolated sandboxes, each checked against policy first
  • Apply allow, deny or require-approval decisions, with human approvals and per-run budgets and limits
  • Record append-only, hash-chained, signed audit events and export portable evidence for independent verification
  • Manage sandboxes, policy profiles, agent groups, persistent workspaces and forks through the CLI, REST API, dashboard and MCP
  • Test and scaffold policies, and derive proposed rules from verified evidence for human review
  • Publish agent conversation turns so authorized teammates can follow a redacted live view
When to use it
Use it when an agent needs to run commands or touch files and you want enforceable guardrails, approval gates, spending and time limits, and verifiable evidence of what happened. It suits teams already running Docker, Podman or Kubernetes who want to wrap an existing agent or framework rather than adopt a new orchestration stack.
Requirements
Runs as a local process over stdio, launched as the runeward binary with the mcp subcommand. Needs a running Docker, OrbStack or Podman engine for local sandboxes (Kubernetes for that backend), and the CLI installed separately, for example via Homebrew. Optional RUNEWARD_CONFIG_DIR and RUNEWARD_STATE_DIR set the profile and audit-ledger directories. Policy profiles may reference secrets through env:// sources.
Before you install
It executes agent commands inside sandboxes and can write, change or delete data there, so review policies before use. Interactive terminals and processes already inside a sandbox are not intercepted per command. Credential brokering injects real secrets into approved requests, so configure endpoints carefully. Browser automation and the browser IDE are experimental and off by default. The server binds to loopback by default and needs authentication and TLS for non-loopback binds. The project…

Installation

In SourceWeft

  1. Open Runeward in the dashboard and add it to a workspace.
  2. 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

[Rune Box: an environment where your agent can roam freely but with receipts]

Rune Box: an environment where your agent can roam freely but with receipts.
The open-source governance harness for AI agents, by Runeward.

[License: Apache-2.0] [CI] [Rust MSRV 1.95] [Release]

Put enforceable policy, human approvals, isolated execution, budgets, and signed evidence around any AI agent. Rune Box works with an existing agent or multi-agent framework rather than requiring a new model or orchestration stack.

[An agent action goes to policy: allowed actions run in the isolated sandbox, reviewed ones wait for human approval first, denied ones stop at policy, and every verdict lands in a signed audit trail]

Prove it in one command

Prerequisites: a running Docker, OrbStack, or Podman engine and the runeward binary.

bash
runeward quickstart

The command creates .runeward/quickstart.toml, checks the policy, runtime, image, and state path, runs an allowed command, proves a destructive command is denied before execution, and verifies the signed audit trail. It never overwrites an existing policy unless --force is passed.

doctor and dashboard readiness also resolve required secret sources. A Charter that references an unset env:// value is not presented as launch-ready.

bash
runeward doctor quickstart                     # explain setup problems safelyruneward --config-dir .runeward serve          # dashboard + governed REST APIruneward evidence export quickstart -o run.jsonruneward evidence verify run.json              # independent policy/audit verification

What Rune Box adds

ConcernContainer aloneRune Box
Tool callsExecutes what the process requestsChecks every shell, code, file, network, and browser action first
Risky actionsApplication-specificallow, deny, or require-approval with an attributed decision
NetworkUsually open unless separately configuredDeny-by-default hostname policy; strict L3 enforcement on Kubernetes
LimitsCPU/memoryWall-clock, exec, egress, token, cost, and retry-loop budgets
AuditRuntime logsAppend-only, hash-chained, Ed25519-signed events
HandoffAd-hoc logs and foldersWorkspace tar, recovery snapshots, and portable signed evidence JSON
Agent identityOne opaque processTenant, actor, parent run, provider, model, and durable run lineage
InterfacesRuntime-specificCLI, REST, MCP, web dashboard, Kubernetes CRDs, and local SDK adapters

Every governed action follows one path:

text
agent request → policy → human approval when required → limits → sandbox → signed audit event

Naming

Documentation and UI use familiar terms first. Existing API paths and file fields retain the original themed names for compatibility.

Plain-language termRune Box nameExisting surface
SandboxCitadel/v1/citadels, Kubernetes Citadel
Policy file/profileCharter/v1/charters, *.toml profile
ApprovalsConclave/v1/conclave
Signed audit trailChronicle/v1/chronicle, [chronicle]
Network controlsPerimeter/perimeter, [network]
Budgets and limitsRationing[rationing]
Agent group/fleetCohort/v1/cohorts, [cohort]
Signed policy bundleArchiveruneward archive, [policy_bundle]

See the full naming and writing convention.

Install

Choose the package that matches how you use Rune Box:

Install withWhat it installsCommand
HomebrewRune Box CLI for macOS or Linuxbrew install Runeeward/tap/runebox
PyPIPython client and agent-framework adapterspython -m pip install runeward
npmTypeScript client and agent-framework toolsnpm install @runeward/sdk

For normal local use, install the CLI with Homebrew. For an agent integration, install the SDK for its language as well. The pip and npm packages connect to a running Rune Box API; they do not replace the CLI/runtime.

Homebrew — CLI

Local sandboxes require a running Docker, OrbStack, or Podman engine.

bash
brew install Runeeward/tap/runeboxruneward versionruneward quickstart

pip — Python SDK

Requires Python 3.9 or newer. The base client has no third-party runtime dependencies.

bash
python -m pip install runewardpython -c "import runeward; print(runeward.__version__)"

npm — TypeScript SDK

Requires Node.js 18 or newer.

bash
npm install @runeward/sdknpm ls @runeward/sdk

See Adapters for LangChain, CrewAI, LlamaIndex, OpenAI Agents, Strands, Vercel AI SDK, and LangChain.js installation options.

Other CLI installation options

The signed macOS/Linux installer requires cosign so it can fail closed while verifying the checksum manifest. Windows binaries are available from Releases.

bash
curl -fsSL https://raw.githubusercontent.com/Runeeward/RuneBox/main/install.sh | sh

To build the current main branch, use Rust 1.95 or newer (the workspace MSRV):

bash
git clone https://github.com/Runeeward/RuneBoxcd RuneBoxcargo build --release --locked -p runeward-cli --bin runeward./target/release/runeward version

cargo install --locked --path crates/runeward-cli installs it into ~/.cargo/bin instead.

Use it with an agent

Expose governed tools to an MCP-capable IDE or agent:

json
{  "mcpServers": {    "runeward": {      "command": "runeward",      "args": ["mcp", "--config-dir", ".runeward"]    }  }}

Or place an agent CLI inside a sandbox and run one or many governed workers:

bash
runeward cohort --agent claude --model sonnet build "Build a tested API"

Adapters are included for LangChain, CrewAI, LlamaIndex, OpenAI Agents, Strands, Vercel AI SDK, and LangChain.js. See Adapters and agent groups.

The dashboard also has a read-only Live chat TTY for each Citadel. Agent harnesses publish user, assistant, tool, and system turns with runeward_publish_conversation (or the REST, Python, and TypeScript equivalents), and authorized teammates can follow the redacted conversation without terminal input access. Rune Box cannot infer private UI chat text that the agent client does not publish; wire the publish call into the harness turn callback. The publisher must connect to the same runeward serve control plane as the dashboard (through /mcp, REST, or an SDK).

Harness agents and subagents

Rune Box is the enforcement boundary around an agent, not the component that decides how the agent reasons. Route the tool calls of a parent agent and each delegated subagent through Rune Box to give them explicit policy, approval, isolation, budget, and evidence boundaries.

Existing concepts keep their meaning: a Cohort is a group of peer workers sharing a task board; it is not being renamed to “subagents.” The orchestrator still decides when to delegate, while Rune Box records the parent/run/provider lineage and prevents a child Citadel from widening its parent's tenant or Charter. Every participating agent can receive its own Citadel and Chronicle. See Agent harnessing.

Policy workflow

Policies support built-in glob rules, CEL, OPA/Rego, and signed OCI bundles. Test them in CI, start from a reviewed scaffold, or derive exact proposals from verified production evidence:

bash
runeward policy scaffold package-approvalruneward policy test quickstart --case 'tool=shell,action=rm -rf /,expect=deny'runeward policy learn run.json > proposed-policy.toml

policy learn never edits a policy automatically. It verifies the evidence first, skips redacted actions, produces exact matches, and requires a human to review and broaden them.

Security posture

  • The server binds to loopback by default and requires authentication before a non-loopback bind.
  • Non-loopback HTTP also requires TLS unless --allow-insecure-http explicitly acknowledges that a trusted reverse proxy terminates TLS.
  • Multi-principal RBAC scopes sandboxes, agent groups, recovery snapshots, and dashboard views to their tenant while attributing every operation to its actor. Static tokens and OIDC JWTs use the same authorization model, and embedded HTTP MCP shares the REST ownership checks.
  • Browser automation is experimental and disabled by default. Enable it only in a trusted deployment with RUNEWARD_ENABLE_EXPERIMENTAL_BROWSER=1 after reviewing the security model. Browser-capable Charters declare capabilities = ["browser"]; the dashboard then exposes governed rendered-text and screenshot actions and their policy/egress results.
  • An optional browser IDE (code-server inside the environment + ticketed reverse proxy) is similarly experimental: RUNEWARD_ENABLE_EXPERIMENTAL_IDE=1, Charter [ide], Dockerfile.ide targets ide / ide-agents, examples ide-demo / ide-claude / ide-codex / ide-cursor. Limits: not per-keystroke policy; no Cursor/Claude Desktop/Codex GUIs inside the environment; no first-class GitHub Copilot on code-server. See Browser IDE and the security model.
  • Per-action policy applies to tool calls routed through the control plane (REST, MCP, dashboard file/shell/code actions, and SDKs). An interactive terminal or a process already running inside a sandbox is a direct sandbox session: it receives isolation/network/resource controls and terminal recording, but its individual commands are not intercepted for approval. Use governed tool calls when command-level policy and signed verdicts are required.
  • Report vulnerabilities privately using SECURITY.md. Rune Box remains pre-1.0; residual limitations are tracked in ROADMAP.md.

What's inside the environment

Beyond per-action policy, a Charter can confine the agent process itself and keep its work:

  • In-sandbox confinement. runeward-supervisor runs as PID 1 in the sandbox image and launches the agent under Landlock filesystem rules, a seccomp filter and a dropped identity, from the Charter's [filesystem] and [process] sections. See Isolation and the security model.
  • Credential brokering. [[endpoint]] and [[credential]] entries let the egress proxy inject real secrets into approved requests while the agent only ever sees a placeholder, and an endpoint's binaries restrict it to the listed executables (attributed per connection by the in-sandbox supervisor, strict egress only). See the security model.
  • Persistent workspaces and forks. [workspace] persist = true keeps a workspace across sleep, wake and control-plane restarts; forks start from a copy. Agent turns, Cohort memory, handoffs and [schedule] runs build on it. See Workspaces and context.
  • Hardened mode. --hardened (or RUNEWARD_HARDENED=1) refuses to start unless every hardening check passes, and calls that never ran return a standard refusal object. See the CLI reference.

Architecture

Rune Box is a Rust Cargo workspace (crates/) that builds four binaries:

BinaryRunsCrate
runewardCLI, control plane (serve), MCP server, Kubernetes controller and webhookruneward-cli
runeward-egressPolicy-enforcing egress proxy and credential broker (Linux sidecar)runeward-egress
runeward-supervisorIn-sandbox PID 1: Landlock, seccomp, dropped identity (Linux)runeward-supervisor
runeward-browserIn-sandbox headless-browser driver (Linux)runeward-browser

The library crates split along the control loop:

  • runeward-charter: Charter schema, loader, linter and signatures.
  • runeward-policy: glob/argv, CEL and Rego engines, guardrails and usage accounting; runeward-policybundle distributes signed OCI policy bundles.
  • runeward-controlplane: governed execution (policy, approval, limits, backend exec, ledger), workspaces, forks, agent turns, Cohort memory and schedules.
  • runeward-backend: Docker, Podman and Kubernetes sandbox backends.
  • runeward-server (REST, WebSockets, dashboard) and runeward-mcp (stdio and streamable HTTP).
  • runeward-k8s: runeward.dev CRDs, the Citadel/Cohort controller and the admission webhook.
  • runeward-ledger, runeward-keys, runeward-auditsink, runeward-termrec: the signed, hash-chained audit trail, its keys, sinks and terminal recordings.
  • runeward-authz, runeward-secrets, runeward-credentials, runeward-fleet, runeward-obs: RBAC/OIDC, secret sources, CLI login, the Cohort task board, and logs/metrics.

Release binaries ship for Linux (static musl, amd64/arm64), macOS (amd64/arm64) and Windows (amd64, CLI only); container images are multi-architecture and cosign-signed.

Documentation

Contributions are welcome; see CONTRIBUTING.md. Licensed under Apache 2.0.

Source: README.md at commit 84e737f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.4LatestSep 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