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_args
pip 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.

NeonPostgres databaseUnited States, or the European Union for EU organizations
RailwayAPI, MCP server and background jobsUnited States, or the European Union for EU organizations
VercelWeb app hostingUnited States, or the European Union for EU organizations
Google CloudKey management for ledger signing and data keysUnited States and European Union
AnthropicAI model provider: reading public pages for readiness scores, drafting questionnaire answersUnited States
ResendEmail deliveryUnited States
StripeBillingUnited States
SlackApproval cards, when you connect itUnited States
MicrosoftApproval cards in Teams, when you connect itYour Microsoft 365 region
CloudflareBot checks on public formsGlobal
SentryError reports, without request bodiesUnited States
PostHogProduct analyticsUnited States
AttioCRM for people who ask us for a readiness reportUnited States