Skip to content

NullRun

NullRun is a runtime decision layer for tool-using AI agents. Before an agent executes a supported tool or model call, the SDK sends a structured request to the gate. The gate evaluates applicable policies and runtime state, then returns allow, block, or require_approval. The SDK or calling application must honor that decision.

Managed runtime control plane. Not a self-hosted deployment.

What you get

  • A gate for every agent action — @protect-decorated functions flow through /api/v1/gate before execution
  • Tool-pattern policies — glob-match tool names, route sensitive calls through human approval or block outright
  • Budget enforcement — hard limit by default, soft mode available when an active chain_id exists with a configured overdraft cap
  • Action-bound approvals — typed BusinessImpact predicates (money_amount / tool_parameters) bound by SHA-256 action_digest. The grant is refused on /execute if the action payload changed
  • Rate limiting — token bucket per subject (per-key fails open, aggregate fails closed)
  • Audit trail — every decision logged with budget snapshot, chain state, and decision path

Where to start

Trust boundary

NullRun evaluates structured action requests before execution. It does not inspect prompts, tool arguments, or model output semantics. Cost enforcement relies on SDK-reported estimates and usage — a malicious SDK that controls its own cost reports is not protected by the gate.

The SDK is Python-only. TypeScript, JavaScript, and Go do not have equivalent runtime SDKs (a generator script produces low-level HTTP clients only). The control plane (policies, approvals, audit, billing, team) is reachable via the dashboard, not via the SDK.

Repositories

The NullRun gateway and dashboard live in a private repository. Access is granted on request via support@nullrun.io.