Impri is a human-in-the-loop approval inbox for AI agents. Its core idea is: when an agent is about to perform an operation with side effects (such as sending an email, posting a reply, running a database migration, or writing), it first pushes the proposed action to the inbox and polls for a decision; only after the API actually returns status: "approved" does the execution branch become reachable. In this way, "ask the user first" is transformed from an instruction in the system prompt into a data dependency—the approval gate is outside the model, not inside the model prompt.
Main capabilities
- Approval inbox: agents submit proposed actions, and the action only runs after a human approves, rejects, or edits it.
- Multi-channel notifications: actions can notify Slack, Discord, Telegram, ntfy, email, or a generic webhook, so approvers do not need to watch the dashboard all the time.
- Edit before approval: approvers can modify the draft before approving, and the agent receives the edited text.
- Interface support: provides both MCP and REST access methods.
- Self-hosting: the full core can be self-hosted, MIT licensed, with no license key required.
- Framework integration: the integrations/ directory provides packages for the Claude Agent SDK, CrewAI, LangChain, and OpenAI Agents SDK; the documentation provides webhook-based patterns for n8n, Make, and Zapier.
- Audit log: provides event types, a query API, export, and retention policies.
- Watcher presets: provides 18 templates, supporting REST, SDK, and MCP usage.
How to use
- If the client supports a remote MCP server, it can connect directly to the hosted endpoint with no installation required.
- If pointing to a self-hosted server, you need to run the local package.
- Cursor: add the configuration block in .cursor/mcp.json.
- Windsurf: add the same configuration block in mcp_config.json.
- Get the im_... key: with a single curl call, no registration form required.
- If IMPRI_BASE_URL is omitted, it defaults to http://localhost:8484(自托管);托管云需设置为 https://api.impri.dev。
- Self-hosting: the server runs at http://localhost:8484,Web the inbox runs at http://localhost:8080;首次启动时引导管理员密钥会打印到日志中。
- The agent side can use MCP or REST to submit actions, poll for decisions, and make other calls.
Use cases
- The agent has side-effect capabilities such as sending emails, posting replies, or performing database writes, and human confirmation is required before execution.
- Teams want to approve quickly through common channels such as Slack, Discord, Telegram, etc., without having to log in to a dedicated dashboard.
- Processes that require modifying the agent's draft content before approval.
- Scenarios where you want to self-host and control the data and approval pipeline.
Limitations and notes
- The official documentation explicitly states: this gate is truly effective only when the "approved path" is the only path by which the agent can reach that side effect; if the original credentials are also given to the agent, it may bypass approval.
- Version status: v0.1, pre-release. MCP has been released; the CLI and the two SDKs currently only support local installation (not yet published to npm / PyPI).
- The hosted cloud is in early beta.
- Pricing: free tier (3 watchers, 100 approvals/month); Indie $9/month (20 watchers, 2,000 approvals/month, 5-minute checks); Team $29/month (unlimited watchers and approvals, 1-minute checks). The full core is free to self-host, and tier limits outside the hosted cloud do not apply.
- License: MIT, see LICENSE for details; the hosted cloud and paid tiers are commercial products, see MONETIZATION.md for details.
- Author: Radim Sekera. Related project: briefgate.dev (client onboarding for AI coding agents).