Docs
Each guide says what you need first, the steps and commands, two real use cases, what you will see, example output and what to do when something fails. Each has a 30-second video.
Start hereGet your first approval in two minutesSign up with your email, create a workspace, send a test request from your browser and approve it. No code and no card.Get started
Approvals
Channels
Records and security
Readiness
Reference
Approvals: Quickstart · MCP server · SDKs · Webhooks · Framework adapters · Policies · Signed ledger. Readiness: Scores and right of reply. Security · Subprocessors
Quickstart
Sign up, name your workspace and press Send a test request on Getting started. The full walkthrough is in Get your first approval. From a terminal, the same thing is one command with a test key from API keys:
npx promptcompute init --key pc_test_...
It registers a sample refund action and policy, sends a sample request, and waits while you decide it by email, Slack or the web inbox.
MCP server
Our official MCP server is at https://mcp.promptcompute.ai/mcp, over Streamable HTTP with OAuth sign-in. Tools: request_approval, get_approval, cancel_approval, answer_approver, report_execution. Clients with the Tasks extension get a task that completes with the decision; others wait up to 50 seconds and then poll get_approval.
SDKs
npm i @promptcompute/sdk
import { PromptCompute } from "@promptcompute/sdk";
const pc = new PromptCompute(); // PROMPTCOMPUTE_API_KEY
const refund = pc.withApproval(doRefund, { action: "payment.refund" });
await refund({ order_id: "pi_123", amount: 240 }); // runs only after approval, with final_argspip install promptcompute from promptcompute import requires_approval @requires_approval(action="payment.refund") def refund(order_id: str, amount: float) -> None: ...
Rejected, expired or denied requests raise typed errors and the function never runs. Idempotency keys come from the run id and step, so retries never ask twice.
Webhooks
Events approval.created, approval.decided, approval.info_requested, approval.expired, approval.cancelled, autonomy.suggested and approval.outcome_reported, signed in the promptcompute-signature header as t=<unix>,v1=<HMAC-SHA256 of "t.body">. Failed deliveries retry with backoff for 24 hours; the Webhooks page has the delivery log and a Replay button. Both SDKs verify signatures.
Framework adapters
Claude Code and the Claude Agent SDK (a PreToolUse hook: npx promptcompute hook claude-code), the OpenAI Agents SDK (tool guard), LangGraph (interrupt and resume), Temporal (webhook to workflow signal) and Inngest (event for step.waitForEvent). All ship in @promptcompute/sdk.
Policies
Rules in YAML with CEL conditions, first match wins, a default rule required. Validate and publish from CI with pc policies validate and pc policies push, and replay the last 30 days against a draft before publishing.
Route to group:key groups set up under Groups. required_approvals: 2 needs two different people, and any reject ends the request. escalate steps notify the next group when time runs out and let it decide too; at the final timeout on_expire rejects or denies, never approves. Groups send up to 3 reminders inside their business hours. Members set a delegate for days they are away, and guests outside your org approve by email after a one-time code. The person the agent acts for and the person who created its API key cannot approve its requests.
Signed ledger
Every request, decision and rule change is hash-chained and signed with Ed25519. Verify an export offline with npx -p @promptcompute/ledger-verify pc-ledger verify export.jsonl --keys <keys url>. See status for anchoring.
Readiness scores and right of reply
Scores come only from public pages, with a quote and source for every finding. See the methodology. A company can claim its page with a DNS TXT record or an email at its domain, then send corrections (reviewed within 2 business days) or ask to be delisted. Anyone can report a problem with a result; the check is rescanned within 24 hours. Our crawler is described at /bot.
Security
Tenant data is isolated with Postgres row-level security on every table. Agent-supplied text is shown as untrusted plain text and cannot change a card's summary or buttons. High-risk decisions need a passkey or one-time code from the last 5 minutes. Report a vulnerability to security@promptcompute.ai.
Subprocessors
The current list, with what each one processes, is on the trust page.
| Neon | Postgres database | United States, or the European Union for EU organizations |
| Railway | API, MCP server and background jobs | United States, or the European Union for EU organizations |
| Vercel | Web app hosting | United States, or the European Union for EU organizations |
| Google Cloud | Key management for ledger signing and data keys | United States and European Union |
| Anthropic | AI model provider: reading public pages for readiness scores, drafting questionnaire answers | United States |
| Resend | Email delivery | United States |
| Stripe | Billing | United States |
| Slack | Approval cards, when you connect it | United States |
| Microsoft | Approval cards in Teams, when you connect it | Your Microsoft 365 region |
| Cloudflare | Bot checks on public forms | Global |
| Sentry | Error reports, without request bodies | United States |
| PostHog | Product analytics | United States |
| Attio | CRM for people who ask us for a readiness report | United States |