Skip to main content

Local-first runtime for logging and protecting agent actions.

Project description

Runewall

PyPI CI Python 3.11+ License: MIT Local-first CLI-first MCP-ready

Runewall is a local-first safety/runtime layer for AI agents before they take real-world actions.

Why Runewall?

Agents are moving from answering to acting. Once agents touch files, APIs, tools, or external systems, developers need a boundary layer that can preview actions, explain policy decisions, block risky behavior, log what happened, and rollback where possible.

What is it?

Runewall is a local-first CLI and developer tool that sits between an agent and a real action. It helps you inspect what an agent is about to do before you let it touch the outside world.

Why does it matter?

When agents move beyond chat and start acting on files, services, and tools, mistakes get more expensive. A local safety/runtime layer gives you a clearer review point before that action happens.

Architecture flow

Agent -> Runewall -> policy check -> dry-run -> review/execute/block -> log/audit

How do I try it?

Start with the five-minute quickstart below, or run the 60-second local demo in demos/README.md.

What Runewall can do now

  • CLI-first safety runtime
  • dry-run before mutation
  • local SQLite action log
  • policy explain, policy test, and policy audit
  • snapshots and rollback
  • guarded real execution for selected services
  • local MCP stdio surface
  • Python SDK preview
  • community map package verification

5-minute quickstart

Install and run:

pip install runewall
runewall version
runewall config profile safe
runewall policy audit
runewall act github create_issue --dry-run --json --input repo=user/repo --input title="Bug"
runewall maps community package verify examples/community-maps --json
runewall mcp status --json
runewall sdk status --json

What this gives you:

  • confirms the CLI is installed
  • applies safe local defaults
  • audits current policy settings
  • previews a mapped action without mutating anything
  • verifies a local community package without importing it
  • shows local MCP status
  • shows local SDK status

For local development, use pip install -e ".[dev]" instead. See docs/INSTALL.md.

Status

Runewall v1.0.0 is the stable local-first foundation: CLI safety runtime, dry-run, policy checks, local logs, snapshots/rollback, community package verification, MCP status/tools, and SDK preview. It is not a hosted service and does not yet include real signature verification, community map execution, or the full approve/execute lifecycle over MCP/SDK. Future security and integration features will ship as v1.x releases.

Included in v1.0.0:

  • core safety runtime
  • MCP stdio surface
  • Python SDK preview
  • community package verification

Safe by default

  • real execution is disabled by default
  • dry-run does not call external APIs
  • tokens only come from environment variables
  • tokens are never printed, stored, or logged
  • community maps are non-executable
  • package verify does not import or execute maps
  • no hosted backend is required

What is not included yet?

  • hosted service
  • dashboard
  • remote registry
  • real signature verification
  • community map execution

Install

pip install runewall

See docs/INSTALL.md for Windows PowerShell-first setup and editable installs.

Install status

  • pip install runewall for normal use
  • pip install -e ".[dev]" for local development
  • see docs/PACKAGING.md for local packaging notes
  • runewall package pypi-check is a local readiness check only
  • runewall package dist-check is a local artifact presence check only

Demo

Run the 60-second local demo with:

.\demos\runewall_60_second_demo.ps1

It shows: version, safe profile, policy audit, dry-run, community package verify, MCP status, SDK status.

See demos/README.md for details.

MCP

Runewall includes a local MCP stdio surface for agent safety checks.

runewall mcp status
runewall mcp serve --once
runewall mcp serve

See docs/MCP_CLIENT_EXAMPLES.md for more MCP examples.

Python SDK preview

from runewall.sdk import policy_test, dry_run

print(policy_test("map.execute"))
print(dry_run("github", "create_issue", {"repo": "user/repo", "title": "Bug"}))
  • runewall sdk status
  • runewall sdk status --json
  • SDK is local-only
  • execute is not exposed yet
  • dry_run does not call external APIs

Community package verify

Use community package verify as the recommended local gate before community map import or review.

runewall maps community package verify examples/community-maps
runewall maps community package verify examples/community-maps --json

Verify checks manifest validation, SHA-256 checksums, signing status, trusted key status, and execution safety posture.

Verify does not import maps, execute maps, download remote files, or call external APIs.

More docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

runewall-1.0.1.tar.gz (115.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

runewall-1.0.1-py3-none-any.whl (55.7 kB view details)

Uploaded Python 3

File details

Details for the file runewall-1.0.1.tar.gz.

File metadata

  • Download URL: runewall-1.0.1.tar.gz
  • Upload date:
  • Size: 115.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for runewall-1.0.1.tar.gz
Algorithm Hash digest
SHA256 215ce428293042593d945a2e3914674648993f83269bcf7559663eacbe798a6a
MD5 9d125a1baebd31df5b0837e4954a34b1
BLAKE2b-256 a2fd60f175d0e14eec657cfcf12d6211a879ea764e46b50b5cb8496e887297c2

See more details on using hashes here.

File details

Details for the file runewall-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: runewall-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 55.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for runewall-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 57eff49a59179d1257277a5495d5577d9fc2a4ab68a377d220d95a27c0b3100f
MD5 f64cb2ac16b3d5ed57a3a9e93ba2ac2a
BLAKE2b-256 d49456b0d882e5b68bee12c214fb10b739d2701332adeb15cbc4b86884ac00fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page