Built on DDISA β€” DNS-based identity for agents

The security layer
agents are missing.

AI agents are getting powerful. They send emails, move money, deploy code. OpenApe makes sure a human approves what matters β€” without slowing anything down.

Get started β†’ See how it works
↓

"If lobsters 🦞 take over the world,
we need apes 🦍 for security."

β€” The OpenApe Manifesto

The problem

Agents act. Humans hope.

Today's AI agents can book flights, sign contracts, and push to production. But there's no standardized way to verify who authorized what. No audit trail. No approval flow. No kill switch.

agent-session
agent β†’ Transfer €5,000 to vendor account
⚠ OpenApe: Action requires human approval
Scope: finance.transfer | Amount: €5,000
Approval sent to: patrick (Telegram)
⏳ Waiting for approval...
βœ“ Approved by patrick (1m 23s)
Grant: allow_once | Expires: immediate
agent β†’ Transfer complete. Receipt: #TXN-4821
πŸ“‹ Logged: agent=miniclaw action=finance.transfer approver=patrick
Two systems, one protocol

Access and control.
Both solved.

πŸ”‘

OpenApe Auth

DNS-based login for humans and agents. Passkeys for humans, Ed25519 for machines. Makes the Agentic Web frictionless β€” any service, any domain, one protocol. No bilateral integrations.

🦍

OpenApe Grants

Human-in-the-loop permission system. Agents request, humans approve β€” once, time-limited, or standing. Scoped, signed, revocable. The leash where it matters.

Auth makes agents possible. Grants make them accountable.
Use both β€” or each on its own.

How it works

DNS-native identity.
Zero new infrastructure.

OpenApe uses DDISA β€” a DNS-based protocol that turns your domain into an identity provider. Standard OIDC under the hood, zero configuration on top. Add a TXT record, deploy the IdP, and you're live.

Identity discovery in one DNS lookup

Agent asks
phofmann@company.at
β†’
DNS lookup
_ddisa.company.at TXT
β†’
Discovers
idp=https://id.company.at
β†’
Authenticates
βœ“ Verified

Like MX records for email, but for agent identity. Works with any domain you own.

1

Agent wants to act

Your AI agent needs to perform a privileged action β€” send money, access data, deploy code.

2

OpenApe intercepts

The action hits a permission boundary. OpenApe checks: does this agent have a valid grant for this scope?

3

Human gets notified

If no grant exists, the human owner receives an approval request β€” via Telegram, email, or any channel.

4

Approve with precision

Grant once, for a time window, or always for this scope. Scoped, signed, auditable.

5

Agent proceeds. Everything logged.

The action executes. Who approved it, when, and for what β€” all recorded. Dual accountability: agent owner + approver.

Built for real agents

Security without the friction.

OpenApe doesn't slow your agents down β€” it makes them trustworthy.

πŸ”

Scoped permissions

Grants are tied to specific actions and scopes. An agent approved for "read calendar" can't suddenly "send emails".

🌐

DNS-native discovery

No central registry. Your domain is your identity anchor. Like email's MX records, but for agent auth.

πŸ“±

Approve from anywhere

Approval requests arrive on Telegram, email, or any messaging surface. Tap to approve. Done.

πŸ›‘οΈ

Replay protection

Every grant is cryptographically signed with nonce and expiry. Can't be reused, forged, or replayed.

πŸ“‹

Full audit trail

Dual accountability: who owns the agent AND who approved the action. Compliance-ready from day one.

⚑

Minimal footprint

Add a DNS TXT record. Deploy the IdP. That's it. Standard OIDC under the hood, no vendor lock-in.

Trust levels

Not all actions are equal.

Some actions need a human every time. Others earn standing trust. OpenApe lets you decide.

πŸ”΄
allow_once

One-shot

Approve this specific action, this one time. Grant is consumed immediately. For high-risk operations like transfers or deployments.

🟠
allow_ttl

Time-limited

Grant access for a time window β€” 15 minutes, 1 hour, 1 day. Perfect for work sessions or batch operations.

🟒
allow_always

Standing trust

This agent can always perform this action. Revocable anytime. For routine, low-risk operations you trust completely.

The ecosystem

Simple tools. Real security.

OpenApe isn't a monolith β€” it's a set of small, focused packages you compose as needed. Use one. Use all. Each works standalone.

πŸ“¦

@openape/core

DNS discovery, crypto primitives, PKCE, JWT utilities. The foundation everything else builds on. Framework-agnostic, zero dependencies.

πŸ”‘

@openape/auth

Complete OIDC login protocol β€” both sides. IdP: authorize, token exchange, key management. SP: discovery, auth URL, callback. Pure functions, no framework lock-in.

πŸ›‘οΈ

@openape/grants

The permission engine. Request, approve, deny, revoke β€” with signed AuthZ-JWTs. Works with any auth system, not just OpenApe's.

πŸ–₯️

@openape/nuxt-auth-idp

A Nuxt module that turns your app into an OpenApe identity provider. Drizzle-backed storage, passkey login, agent management. Add the module, deploy, done.

🌐

@openape/nuxt-auth-sp

A Nuxt module for service providers β€” zero server storage. OAuth flow state lives in signed cookies. Add OpenApe login to your app with one import.

πŸ”

escapes

A Rust binary for local privilege elevation. Your agent needs root? It requests a grant, the human approves, escapes executes β€” scoped, signed, logged. Like sudo, but for agents.

🌍

@openape/proxy

An agent HTTP gateway β€” a forward proxy with grant-based access control. Agents route requests through the proxy; it enforces grants before forwarding.

🧭

@openape/browser

Grant-aware headless browser for agents. A Playwright wrapper with route interception, automatic grant checks, and delegation login. Browse the web β€” with guardrails.

πŸ‡

grapes

Universal grant management CLI. List, inspect, approve, revoke grants from your terminal. The admin tool for anyone managing agent permissions.

Compliance

Regulation-ready by design.

OpenApe uses passkeys (WebAuthn/FIDO2) for humans and Ed25519 challenge-response for agents. No passwords. No phishing. No bolt-on MFA. One architecture designed to support modern security frameworks on both sides of the Atlantic.

πŸ‡ͺπŸ‡Ί

NIS2 aligned

Passkeys are designed to support strong authentication requirements β€” possession plus biometrics β€” without a bolt-on MFA step. Built with NIS2 in mind.

πŸ‡ΊπŸ‡Έ

NIST CSF 2.0 & EO 14028 aware

Phishing-resistant MFA and zero-trust identity β€” aligned with the direction set by the Cybersecurity Framework and recent executive guidance.

🌍

One protocol, global reach

No regional workarounds. The same passkey-first, grant-controlled architecture works everywhere β€” EU, US, and beyond.

OpenApe is a technical building block, not legal advice. Compliance with NIS2, NIST CSF 2.0 or EO 14028 depends on how you operate, document and audit your overall system β€” not just which auth library you use.

The protocol

DDISA β€” the spec behind OpenApe.

DDISA (DNS-based Decentralized Identity for Services and Agents) is the open protocol that powers every OpenApe package. It defines how domains announce identity, how humans and agents authenticate, and how privileges are granted, scoped and revoked. Read the spec. Implement your own. OpenApe is one reference β€” not the only one.

πŸ“˜

Core

DNS discovery, key material, OIDC flows, passkey and Ed25519 authentication. The foundation every DDISA implementation shares.

Read core.md β†’

πŸ›‘οΈ

Grants

Signed AuthZ-JWTs, scopes, trust levels (allow_once, allow_ttl, allow_always), request and approval flows, revocation semantics.

Read grants.md β†’

🀝

Delegation

How humans delegate to agents and agents delegate to other agents β€” with chains of accountability that survive audits.

Read delegation.md β†’

πŸ“œ Full protocol repository
Open source

Trust is built in the open.

OpenApe and the DDISA protocol are fully open source. Review every line. Fork it. Extend it. The security layer for AI agents shouldn't be a black box.

πŸ™ All repositories on GitHub πŸ“– Documentation

Ready to leash your agents?

Add a DNS record. Deploy the IdP. Your agents are accountable in minutes.

Get started β†’ View on GitHub