Human sign-off for AI agents

Let your AI agent act — only once you say yes.

Impri is the approval inbox between your agent and the real world. Your agent proposes a refund, an email, a deploy — a human approves, edits or rejects it from the web inbox, Slack, Telegram, Discord, email or their phone, and only then does it execute. Think of it as the imprimatur your agent needs before anything ships.

Free: 100 approvals a month · no card · no email · self-host instead

MCP + REST API Open-core, MIT Self-host in 5 minutes
payment.refund act_5jf8…
Refund $84.00 — order #10432
Full refund requested — item arrived cracked, photo attached to support ticket #6021. Within policy; amount is editable before approving.
Pending review
Reject Approve
Watch the 27-second demo (with sound)

Wire it into your agent

Claude Code Codex CLI Cursor Windsurf Claude Agent SDK n8n MCP server REST API

Get notified wherever you already are

Slack Discord Telegram Email ntfy Webhooks Web push
See every agent install guide →
The Impri web inbox listing pending, approved and rejected actions
The inbox — every proposed action in one queue
An Impri action detail view with the full preview and Approve / Reject controls
Full preview before you decide
An Impri approval card delivered to a Slack channel with Approve and Reject buttons
Decide from Slack, Telegram or your phone
The loop

Propose. Approve or edit. Execute.

Impri never executes anything itself. It holds the queue and the decision — your agent proposes, a human decides, your agent executes only on approve.

01

Propose

Your agent POSTs an action with a preview — a refund, an email, a deploy, a publish — before it does anything.

02

Approve or edit

A human approves, edits the draft, or rejects it — from the web inbox, Slack, Telegram, Discord, email or their phone.

03

Execute

The decision returns via webhook or polling. Your agent executes the approved (possibly edited) version — never the original draft.

Optional: a watcher can kick off step one automatically by polling RSS, Reddit or a page for changes.

New to this? Read What is an approval inbox? and Human-in-the-loop for AI agents, explained.

Why it's safe

Built as a safety layer, not a bot.

Fail-closed by default

Pending and expired actions never execute. The code path that sends the email or issues the refund is unreachable until an explicit human approve comes back.

Edit, don't just reject

A reviewer can tweak the draft before approving. The diff against the original ships inside the same signed payload your agent already receives.

Immutable audit trail

Every decision is append-only — no update or delete route exists for an audit row. GDPR erase leaves a tombstone showing an erasure happened, not a gap.

Signed webhooks

Every decision webhook carries an HMAC-SHA256 signature, timestamp and nonce — verify it before you trust the payload, or just poll instead.

Five lines

Push an action.
Wait for the human.

One POST puts a draft in the inbox. Your agent polls (or gets a webhook) and only acts on the decision — approved, rejected, or edited. Same flow from an MCP tool.

How to add human approval →
agent — bash
$ curl -X POST https://api.impri.dev/v1/actions \
    -H "Authorization: Bearer im_…" \
    -H "Content-Type: application/json" \
    -d '{
      "kind": "payment.refund",
      "title": "Refund $84.00 — order #10432",
      "preview": { "body": "Item arrived cracked, ticket #6021" },
      "payload": { "order_id": "10432", "amount_cents": 8400 },
      "editable": ["payload.amount_cents"]
    }'

→ 201 { "id": "act_5jf8", "status": "pending" }
# …human approves the amount in the inbox…
→ approved  agent executes the refund ✓
Use cases

What people gate behind Impri.

Six places where a human decision belongs between an AI agent and a real-world side effect.

See all use cases →
Pricing

100 free approvals a month. Scale when you need to.

Free
$0
  • 100 approvals / month
  • 3 watchers (optional)
  • No card, no email
Create free workspace →
Most popular
Indie
$9 / mo
  • 2,000 approvals / month
  • 20 watchers (optional)
  • Checks every 5 minutes
Create free workspace →
Team
$29 / mo
  • Unlimited approvals
  • Unlimited watchers (optional)
  • Checks every minute
Create free workspace →

Signed webhooks, full data export, and email / ntfy / push notifications are on every tier — security is never a paid add-on.

Open source

MIT, self-hostable, no lock-in.

The full core is MIT-licensed and free to run yourself — no watcher limit, no approval quota, no telemetry. Same API surface as the hosted cloud, just a different base URL.

Self-host instead Self-hosting guide →
self-host — bash
$ git clone https://gitlab.com/sekera.radim/impri.git
$ cd impri
$ docker compose up -d
# API on :8484, web inbox on :8080 — bootstrap key printed to the server log

Give your agent hands — and a conscience.

Wire the MCP server or REST API into your agent today, and keep a human in the loop.

Create free workspace Self-host instead