OpenExec — Deterministic Execution Boundary for Agent Systems

v0.1.10

Source-distributed deterministic execution service with pinned dependencies. Runs only with a signed approval artifact (ClawShield mode) and emits verifiable...

2· 895· 10 versions· 5 current· 5 all-time· Updated 9h ago· MIT-0

Install

openclaw skills install openexec-skill

OpenExec — Governed Deterministic Execution (Skill)

OpenExec is a runnable governed execution service. It executes only what has already been approved.

It is not an agent. It is not a policy engine. It does not self-authorize.

OpenExec performs no outbound HTTP, RPC, or governance calls during signature verification or execution. All verification is fully offline. By default, OpenExec uses a local SQLite database (sqlite:///openexec.db). Database network I/O occurs only if explicitly configured by the operator via OPENEXEC_DB_URL.


Install

pip install -r requirements.txt

Run (local)

python -m uvicorn main:app --host 0.0.0.0 --port 5000

Endpoints

  • GET / → service info (deployment health check)
  • GET /health → health status, mode, restriction level
  • GET /ready → readiness check
  • GET /version → version metadata
  • POST /execute → execute an approved action deterministically
  • POST /receipts/verify → verify receipt hash integrity

Modes

1) Demo mode (default, free)

No external governance required. No env vars required.

export OPENEXEC_MODE=demo

Demo mode still enforces:

  • deterministic execution
  • replay protection (nonce uniqueness)
  • receipt generation

2) ClawShield mode (production / business)

Requires a signed approval artifact issued by ClawShield. OpenExec verifies the Ed25519 signature offline using the configured public key.

export OPENEXEC_MODE=clawshield
export CLAWSHIELD_PUBLIC_KEY="-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----"
export CLAWSHIELD_TENANT_ID="tenant-id"

If signature validation fails, execution is denied.

Note: ClawShield governance SaaS is available at https://clawshield.forgerun.ai/. OpenExec does not contact this URL at runtime. It is provided for reference only.


Environment Variables

All environment variables are optional. OpenExec runs with zero configuration in demo mode.

VariableDefaultDescription
OPENEXEC_MODEdemoExecution mode: demo or clawshield
CLAWSHIELD_PUBLIC_KEY(none)PEM-encoded Ed25519 public key for signature verification
CLAWSHIELD_TENANT_ID(none)Tenant identifier for multi-tenant isolation
OPENEXEC_ALLOWED_ACTIONS(none)Comma-separated list of permitted actions. If unset, all registered actions are allowed
OPENEXEC_DB_URLsqlite:///openexec.dbDatabase URL for execution record persistence

90-Second Quickstart (Demo)

  1. Start server:
python -m uvicorn main:app --host 0.0.0.0 --port 5000
  1. Confirm health:
curl http://localhost:5000/health
  1. Execute a deterministic demo action:
curl -X POST http://localhost:5000/execute \
  -H "Content-Type: application/json" \
  -d '{
    "action":"echo",
    "payload":{"msg":"hello"},
    "nonce":"unique-1"
  }'
  1. Replay attempt (returns same result, no re-execution):
curl -X POST http://localhost:5000/execute \
  -H "Content-Type: application/json" \
  -d '{
    "action":"echo",
    "payload":{"msg":"hello"},
    "nonce":"unique-1"
  }'

Receipts

Every execution produces a receipt hash. Receipts are evidence, not logs.

Verify a receipt:

curl -X POST http://localhost:5000/receipts/verify \
  -H "Content-Type: application/json" \
  -d '{"exec_id":"<id>","result":"<result_json>","receipt":"<hash>"}'

What this skill does

  • Accepts structured execution requests
  • Enforces replay protection
  • Executes deterministically (approved parameters only)
  • Emits verifiable receipts for every attempt
  • In ClawShield mode: verifies signed approvals before execution
  • Supports optional execution allow-list via environment variable

What this skill does not do

  • Define policy
  • Grant permissions
  • Reason autonomously
  • Override governance decisions
  • Self-authorize execution
  • Make outbound HTTP or governance calls during execution
  • Provide OS-level sandboxing or container isolation

Security Boundary Notice

OpenExec enforces execution boundaries at the application layer. It does not provide OS-level sandboxing. Deploy behind containerization, VM isolation, or hardened environments when actions interact with production systems.

OpenExec enforces authority separation. It is not a sandbox.


Architecture context (3-layer separation)

  • OpenExec -- deterministic execution adapter (this skill)
  • ClawShield -- governance + approval minting (SaaS): https://clawshield.forgerun.ai/
  • ClawLedger -- witness ledger (optional integration)

Each layer is replaceable. No single layer can act alone.


Security Documentation

A full security model, threat assumptions, and production hardening checklist are available in SECURITY.md.

This skill intentionally separates:

  • Execution enforcement (OpenExec)
  • Infrastructure isolation (operator responsibility)

Execution Safety Guarantees

This skill:

  • Does not dynamically load code
  • Does not evaluate user input as code
  • Uses a static handler registry
  • Does not install packages at runtime
  • Does not fetch remote execution logic

Version tags

agent-governancevk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4agent-runtimevk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4ai-guardrailsvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4ai-infrastructurevk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4ai-kill-switchvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4ai-safetyvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4ai-securityvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4approval-enforcementvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4authority-separationvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4autonomous-agentsvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4cryptographic-verificationvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4deterministic-executionvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4ed25519vk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4execution-boundaryvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4execution-control-planevk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4execution-firewallvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4execution-runtimevk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4latestvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4llm-securityvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4model-execution-boundaryvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4network-isolationvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4openai-toolsvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4production-aivk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4prompt-injection-defensevk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4receipt-verificationvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4replay-protectionvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4secure-agent-runtimevk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4secure-agentsvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4signature-verificationvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4signed-approvalsvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4tamper-evidencevk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4tool-call-securityvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4zero-trustvk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4zero-trust-aivk97ezr2wnwt9fy7xxp2d4pv9rx81bdf4