Skip to main content

Local runtime wrapper for AI agents: sessions, replay, and hard caps

Project description

Vallignus

Vallignus ๐Ÿ”ฅ

The Infrastructure-Grade Firewall for AI Agents

Because prompts are not permissions.

Built for local agents, headless workflows, and unattended execution.

PyPI version License: MIT

Problem

AI agents are unpredictable. They can loop indefinitely, overspend on API calls in seconds, or execute dangerous network requests that compromise security.

Solution

Vallignus is a local execution firewall that sits between your agent and the internet. It enforces who can run, what they are allowed to do, and logs every decision, without changing your code.

How It Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Agent  โ”‚ โ”€โ”€โ”€โ–ถ โ”‚ Vallignus โ”‚ โ”€โ”€โ”€โ–ถ โ”‚ LLM / APIs / Netโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
              identity + policy
              + spend limits
              + audit log

Every outbound request is checked against the policy before it leaves.


๐Ÿš€ 5-Minute Quickstart

Protect any AI agent with identity, limits, and audit - without changing your code.

Install

pip install vallignus

1. Initialize Vallignus

Creates local authority storage and cryptographic keys.

vallignus auth init

This creates:

~/.vallignus/
  โ”œโ”€โ”€ agents/
  โ”œโ”€โ”€ policies/
  โ”œโ”€โ”€ keys/
  โ””โ”€โ”€ revoked/

2. Register an agent identity

vallignus auth create-agent \
  --agent-id support-bot \
  --owner "you@example.com"

An agent now has a stable identity.

3. Create a permission policy

Define what the agent is allowed to do.

vallignus auth create-policy \
  --policy-id support \
  --max-spend-usd 5 \
  --allowed-domains "httpbin.org"

This policy allows:

  • up to $5 in API spend
  • network access only to httpbin.org

Policies are versioned automatically.

4. Issue a signed execution token

export VALLIGNUS_TOKEN=$(vallignus auth issue-token \
  --agent-id support-bot \
  --policy-id support)

This token cryptographically binds:

  • the agent identity
  • the policy version
  • an expiration time

5. Run your agent (no code changes)

vallignus run -- python agent.py

Vallignus will now:

  • โœ… allow permitted requests
  • โŒ block disallowed domains
  • ๐Ÿ’ธ stop runaway spending
  • ๐Ÿงพ log every allow/deny decision with identity and policy context

Example: Blocked Request

If your agent tries to access an unauthorized domain:

{
  "decision": "deny",
  "agent_id": "support-bot",
  "owner": "you@example.com",
  "policy_id": "support",
  "policy_version": 1,
  "deny_reason": "domain_not_allowed"
}

Nothing escapes silently.


What Vallignus Does

Before every network request, Vallignus asks:

"Is this agent allowed to do this under its policy?"

  • If yes โ†’ request proceeds
  • If no โ†’ request is blocked and audited

All decisions are enforced locally.


Why Not Just Kill the Process?

For simple local scripts, killing a process may be enough.

However many agent setups today run:

  • headless or remote workloads
  • long-lived background processes
  • scheduled or unattended execution
  • indirect network calls through libraries or subprocesses

In these cases, control often degrades into emergency shutdowns or power cuts.

Vallignus provides a safer middle layer by enforcing permissions before actions occur, rather than reacting after something goes wrong.


Why Monitoring Isn't Enough

Dashboards show damage after it happens. Alerts arrive too late.

By the time you see the spike:

  • the budget is already gone
  • the requests already hit production
  • the agent already accessed what it should not have

Prevention must sit inline, not alongside.

Vallignus gates execution before it occurs. It does not observe and report. It decides and enforces.


What Vallignus is NOT

  • โŒ Not a model wrapper
  • โŒ Not prompt engineering
  • โŒ Not surveillance
  • โŒ Not cloud-hosted

Vallignus runs entirely on your machine.


When to Use Vallignus

  • You're building autonomous agents
  • You want hard spend limits
  • You need domain allowlists
  • You want auditability and reproducibility
  • You don't trust "just prompts"

Key Commands

# Policy management
vallignus auth update-policy --policy-id X --max-spend-usd 50

# Token management
vallignus auth inspect-token <token>      # Debug token contents
vallignus auth revoke-token --jti <id>    # Instantly stop an agent

# Key rotation
vallignus auth rotate-key                 # Rotate signing keys

Demo

Vallignus Demo


Project Status

Vallignus is early-stage infrastructure under active development.

APIs may evolve, but core guarantees are stable:

  • local-only execution
  • explicit permissions
  • revocable authority
  • auditable decisions

License

MIT

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

vallignus-0.4.0.tar.gz (32.4 kB view details)

Uploaded Source

Built Distribution

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

vallignus-0.4.0-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file vallignus-0.4.0.tar.gz.

File metadata

  • Download URL: vallignus-0.4.0.tar.gz
  • Upload date:
  • Size: 32.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for vallignus-0.4.0.tar.gz
Algorithm Hash digest
SHA256 258477e68e741d387cfe5a069c82e8c5519dab6fd6231224678381b71597c8fc
MD5 49bf7bf32516edcc49b7fe84f8463834
BLAKE2b-256 359773b89c2e16d750d5e814a1ae708dde9732051eda6dba6ce3bc5481b2be58

See more details on using hashes here.

File details

Details for the file vallignus-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: vallignus-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 27.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for vallignus-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42e30115181c079212817ab699eee914d17a620c100681f37c57cc4f67c247b7
MD5 d0e0be93249938dde29277cb81290763
BLAKE2b-256 72b0fe0b49cc2273eddc7f871a4555383c8b8218ddd03c09b7ba8e9e8fed33e1

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