00/Use case · AI startups
Most AI startups bolt a shared API key onto their agent and ship. KavachOS gives each agent its own identity, scoped permissions, and an audit trail without a dedicated platform engineer. Free up to 1,000 MAU. MIT licensed. Runs on Cloudflare Workers, Vercel, Node, Bun, Deno.
01/TL;DR
Install the npm package, add middleware to your framework, point env vars at KavachOS Cloud. Your LLM calls start carrying scoped tokens.
Every agent gets a cryptographic subject, a parent user, a scope subset, and an audience claim. No glue code required.
Free to 1,000 MAU, $29 for 10,000, $79 for 50,000. No per-agent fee, no M2M surcharge, no organization tax.
02/The problem
You glued OpenAI calls into a Next.js app, added Clerk for human login, and stored a single API key in an env var so your agent could call your own backend. It works for demo day. It breaks the first time you try to ship to customers.
One API key for every agent
A single leaked prompt or misrouted log line exposes the key that every agent in the system shares.
No audit trail per agent
When a customer asks 'which agent did this', the only honest answer is 'our service account'.
Auth vendor pricing breaks at 10k MAU
Auth0 Essential is $240 per month at 10,000 MAU. Clerk Pro is $250. Neither includes machine tokens.
Scopes live in a prompt template
The only thing stopping the agent from calling a dangerous tool is a line in the system prompt. That is not authorization.
03/How kavachOS fits
KavachOS was designed for the class of app where a user signs in once and then delegates to an agent that keeps running. Every primitive assumes that shape.
Identity
Scopes
Audit
Revocation
Adapters
04/In code
Full examples with framework adapters live in the docs. This is the shape of what you wire into your app.
agent-login.ts
Exchange a user session for a scoped agent token. The agent token is what you pass to your tool server.
import { kavachos } from "kavachos";
const agent = await kavachos.delegate({
parent: session.user,
audience: "https://tools.example.com",
scopes: ["inbox:read", "calendar:write"],
ttlSeconds: 600,
reason: "draft_weekly_summary"
});
// agent.token carries subject, parent, scopes, aud.
// Pass it to your tool server as a Bearer.
await fetch("https://tools.example.com/draft", {
headers: { Authorization: `Bearer ${agent.token}` }
});< 1 hr
Time to first agent token
$0
Up to 1,000 MAU
27+
OAuth providers bundled
MIT
License on the core lib
05/Before / after
Without scoped identity
With kavachOS
We replaced a shared service account with KavachOS delegation in a single sprint. The audit log alone paid for the migration the first time a customer asked what our scheduling agent was doing on their calendar.
06/FAQ
Short answers. Link out to the docs if you want the long version.
07/Related reading
On kavachos.com
How agent identity, pricing, and revocation compare when your product has LLM tool calls.
On kavachos.com
The six signals a healthy agent token carries, and why each one matters.
External
Install the library, configure a provider, mint your first agent token.
Free up to 1,000 MAU, no credit card. MIT licensed core. If you outgrow the cloud, self-host the same library on your infrastructure.