The open-source safety stack for AI agents
Authensor The open-source safety stack for AI agents
Every agent action evaluated. Every decision auditable. Every tool governed.
Quickstart · Why Authensor · Architecture · Packages · OWASP Coverage · EU AI Act
The Problem
AI agents are shipping to production without guardrails. They call APIs, browse the web, execute code, and manage infrastructure — often with no policy enforcement, no approval workflows, and no audit trail.
- 32% of MCP servers have at least one critical vulnerability (Enkrypt AI)
- Agents fall for dark patterns 41% of the time (arxiv 2510.18113)
- 88% of organizations have confirmed or suspected AI security incidents
- EU AI Act high-risk deadline is August 2, 2026 — creating urgent compliance demand
Existing guardrails focus on what models say (prompt/response filtering). Authensor focuses on what agents do (action authorization, approval workflows, and cryptographic audit trails).
The Solution
Authensor is four open-source tools that together cover the full surface area of agent risk:
| Tool | What it guards | How |
|---|---|---|
| Authensor | Agent actions (API calls, tool use, data access) | Policy engine + control plane with hash-chained receipts |
| SpiroGrapher | Agent web browsing | Compiles HTML to structured IR, detects dark patterns, constitutional rules |
| SafeClaw | Local agent execution | PreToolUse hook gating, deny-by-default, mobile approval workflows |
| SiteSitter | Website safety monitoring | Continuous governance for deployed sites |
Quickstart
Self-hosted (recommended)
git clone https://github.com/authensor/authensor.git
cd authensor
docker compose up -d
# Control plane running at http://localhost:3000
# Admin token printed to logs: docker compose logs control-plane
That's it. Postgres starts, migrations run, a bootstrap admin key is created, and a default-safe policy (deny-by-default) is provisioned. Aegis content safety and Sentinel monitoring are enabled out of the box.
30 seconds: Run a safe local agent
npx safeclaw init --demo
npx safeclaw run "list my project files"
# Opens dashboard at localhost:7700 with policy enforcement + audit trail
Add to any agent (TypeScript)
import { Authensor } from '@authensor/sdk';
const authensor = new Authensor({
controlPlaneUrl: 'http://localhost:3000',
principalId: 'my-agent',
});
const result = await authensor.execute(
'stripe.charges.create',
'stripe://customers/cus_123/charges',
async () => stripe.charges.create({ amount: 1000, currency: 'usd' }),
{ constraints: { maxAmount: 10000 } }
);
// Receipt created, policy enforced, action audited
Add to any agent (Python)
from authensor import Authensor
async with Authensor(
control_plane_url="http://localhost:3000",
principal_id="my-agent",
) as authensor:
result = await authensor.execute(
action_type="stripe.charges.create",
resource="stripe://customers/cus_123/charges",
executor=lambda: create_charge(),
constraints={"max_amount": 10000},
)
Framework adapters
Drop-in integration for popular agent frameworks:
// LangChain / LangGraph
import { AuthensorGuardrail } from '@authensor/langchain';
const guardrail = new AuthensorGuardrail({ controlPlaneUrl: '...' });
// OpenAI Agents SDK
import { AuthensorGuardrail } from '@authensor/openai';
// CrewAI
import { AuthensorGuardrail } from '@authensor/crewai';
// Vercel AI SDK
import { AuthensorGuardrail } from '@authensor/vercel-ai-sdk';
// Claude Agent SDK
import { AuthensorGuardrail } from '@authensor/claude-agent-sdk';
// Claude Code (hooks-based integration)
// See docs/claude-code-hooks.md
Why Authensor
vs. the landscape
| Capability | Authensor | AWS AgentCore + Cedar | Galileo Agent Control | NeMo Guardrails | Guardrails
Tools (1)
execute_actionExecutes an agent action with policy enforcement and audit logging.Environment Variables
CONTROL_PLANE_URLrequiredThe URL of the Authensor control plane instancePRINCIPAL_IDrequiredUnique identifier for the agent instanceConfiguration
{"mcpServers": {"authensor": {"command": "npx", "args": ["-y", "@authensor/mcp-server"], "env": {"CONTROL_PLANE_URL": "http://localhost:3000", "PRINCIPAL_ID": "claude-desktop"}}}}