Pattern detected
IllustrativeProduction database migrations have been approved 8 times when requested by Release Bot during scheduled deployment windows.
Decide what coding agents such as Claude Code, Codex and Cursor may do, what is always denied, and what requires human approval — before the action runs, not after.
Every action gets an allow, deny, or approval-required decision — fail closed at the integration point.
Free plan, no credit card — 3 agents and 10,000 verifications a month.
Fail-closed at the integration point. TLS everywhere, keys stored as hashes, we never sell or train on your data. How enforcement and data handling work.
BehalfID decision path: a Cursor agent acting for Maya Okafor requests “Deploy payments API to production”. The request is checked against policy, comes back as approval required, and is routed to a named human approver. After the person approves, the action is authorized as a single-use grant that expires in 60 minutes, and the decision is recorded as evidence.
Deploy payments API to production
Built for teams running agents in real workflows
Every approval and decline gives BehalfID more context about how your team handles risk. Over time, the engine can recognize recurring patterns, improve recommendations and reduce unnecessary interruptions—without overriding the policies you set.
Explicit permissions and organizational policy always remain in control.
1 similar decisions observed · approvals and declines both count as evidence
Release Bot asks to run a production database migration.
Not enough comparable decisions yet. Requests keep following the policy you defined, and the engine keeps watching.
The decision counts above are a worked example. What is live today: the engine records every approval and decline, and the decision history behind these recommendations is visible in your own dashboard from the first action you verify.
Adaptive mode observes how authorized humans decide recurring requests. It uses those decisions to surface policy recommendations and, when explicitly enabled, handle well-understood cases with less interruption.
Decisions and their context are recorded. Nothing about runtime behaviour changes.
Repeatable patterns are surfaced as a proposed rule, with the decisions behind it.
An administrator enables a recommendation before it can affect a single decision.
BehalfID does not silently expand an agent’s permissions. Learned patterns become bounded recommendations or administrator-enabled rules, and every one of them can be reviewed, audited or turned off.
How adaptive mode worksPatterns cover the whole decision surface: what should keep waiting for a person, what is consistently declined, who should review it, and when a request no longer looks like the ones approved before.
Production database migrations have been approved 8 times when requested by Release Bot during scheduled deployment windows.
Requests to expose public database ports have been declined 5 times.
Infrastructure changes are consistently routed to the Security Lead.
This request differs from previously approved deploys because it adds a new external destination.
Autonomy should not mean unlimited authority.
Replace shared credentials with named identities, scoped authority, and a complete record of who acted.
BehalfID agent identity card: an agent named “Cursor agent”, owned by Maya Okafor in Engineering, status active. Its environments are development and staging; its authority covers deploying, reading secrets and opening pull requests; its most recent action was merging a release branch, which was allowed; production deploys and refunds over $500 are beyond its scope. Every action answers to this identity and every decision is kept as evidence.
Owned by Maya Okafor · Engineering
Scope is a boundary, not a setting buried in a policy file. Inside it, agents move. Outside it, they ask.
Inside scope. Nothing to ask.
Inside scope, spend capped at $500/day.
Outside scope until a named human says yes.
Open a pull request on the checkout service.
The numbers in the panel below are illustrative. 268 downloads of @behalfid/sdk in the last 30 days is not — that is npm's count, and you can check it.
BehalfID dashboard overview for a sample workspace, last 24 hours: 3 pending approvals, 142 actions verified today, 9 active agents, and a 14-day verification volume chart trending up. Outcomes are mostly allowed, with some approved by a person and a few denied. Recent actions: a Cursor agent deploy of the payments API awaiting approval, an allowed release-branch merge by a release bot, a denied database secret rotation by an ops assistant, and an allowed $240 refund by a billing agent. These figures are illustrative, not measured results.
Drop the SDK into the code path that performs the action. No proxy, no sidecar, no migration.
Read the quickstartimport { behalf } from "@behalfid/sdk";
const decision = await behalf.verify({
agent: "cursor-agent",
action: "deploy_service",
resource: "payments-api",
});
if (decision.allowed) await deploy();{
"allowed": false,
"reason": "production requires approval",
"approval": "requested",
"decidedBy": "Engineering Lead"
}Published rather than linked, because a security review should not have to go looking. Nothing on this list is aspirational — if it is not certified, it says not certified.
Last reviewed
268 downloads of @behalfid/sdk in the last 30 days — npm's count, to , not ours.
Full detail in the compliance posture and security model, including the current limitations list.