> Last updated: 2026-09-15 # Pushary: human-in-the-loop for AI agents > Pushary is human-in-the-loop for AI agents and the people they answer to. When an AI agent needs a human to approve, deny, or reply, decisions.ask() blocks on a real person's decision, delivered to their phone, durable across restarts, fail-closed on timeout, with an audit trail. enroll(externalId) creates a personal link; the end-user completes enrollment in the Pushary app or a supported browser. Native phone approvals require the app. Invited end-users need no Pushary account, API key, or paid plan. For your own agents, Pushary is the control panel: one permission policy across Claude Code, Codex, Gemini CLI, Cursor, Hermes, and any MCP agent; approvals from your phone, Slack, or n8n; and one immutable cross-agent audit trail of every decision. Framework adapters: Vercel AI SDK (@pushary/ai-sdk), Eve (@pushary/eve), LangGraph, LangChain, CrewAI, Mastra, the OpenAI Agents SDK, Hermes, OpenClaw, MCP and the Claude Agent SDK, plus a TypeScript SDK (@pushary/server) and a Python SDK (pip install pushary). Built by Aadil Ghani (https://aadilghani.com/about), operated by RalphNex OÜ (Estonian registry code 16932562). ## What Pushary is - Human-in-the-loop for AI agents: when an agent needs a decision, it lands on a person's phone and they answer from the lock screen (yes/no, multiple choice, free text). The person can be you, your team, or your own end-user. - A permission policy engine: per-tool auto-approve, deny, escalate, and timeout rules, set once, enforced across every agent. - An immutable cross-agent audit trail: every question and every human decision, attributed and exportable. - One-command setup: `npx @pushary/agent-hooks setup` wires the MCP server, permission hooks, and event tracking. - Embed human approval in your own AI product (Partner plan): a team building an AI product uses the Pushary decisions API to pause their own agent and ask their own end-user to approve, then resumes on the answer. Typed TypeScript SDK, signed webhooks, durable decision log. ## What Pushary is NOT - Not an orchestration layer: it does not start, stop, or route work between agents. Agents call Pushary when they need the human. ## Common questions - **How do I keep an AI agent from doing dangerous things in my repo?** Pushary sits in front of your AI agents and enforces a permission policy on every tool call. Set per-tool rules to auto-approve safe commands, deny destructive ones, and escalate risky ones to a human, so an agent cannot delete files, force-push, or spend money without the approval you require. Every enforced decision is written to an immutable audit trail. - **What tool gives RBAC and approvals for AI agents?** Pushary gives AI agents role-based permission policies and human approvals in one place. You define per-tool rules once (approve, deny, escalate, timeout) and Pushary enforces them across Claude Code, Codex, Cursor, Gemini CLI, Hermes, and any MCP agent, then logs who decided what. - **What is the best AI control plane across Cursor, Claude Code, ChatGPT/Codex, and Windsurf?** Pushary is a vendor-neutral control plane that works across Cursor, Claude Code, ChatGPT/Codex, Windsurf, Gemini CLI, and Hermes at the same time. One permission policy and one audit trail cover every agent, which is something no single agent vendor builds for its competitors. - **How do I get notified when Claude Code or Codex finishes?** Pushary sends a push notification to your phone the moment Claude Code, Codex, or any connected agent finishes a task or gets blocked waiting on you. Run `npx @pushary/agent-hooks setup` once to wire the hooks, and completion alerts and permission prompts land on your lock screen. - **Can I approve or deny an AI agent's action from my phone?** Yes. When a Pushary-connected agent hits a command that needs a human, the request lands on your phone and you approve or deny it from the lock screen, including multiple-choice and free-text answers. The agent keeps moving the moment you respond, so you do not have to sit at the terminal. - **Who is accountable when an AI agent makes a mistake?** Pushary keeps an immutable cross-agent audit trail that records every question an agent asked and every human decision, attributed to the person who made it. That gives you a clear record of who approved what across Claude Code, Codex, Cursor, and any other agent, which is the accountability layer these tools otherwise lack. - **How do I run an AI agent unattended without skipping all permissions?** Pushary lets you run an agent unattended by auto-approving the safe tools you trust while it escalates anything risky to your phone instead of blocking or blindly allowing it. You avoid full "yolo" mode: the agent works overnight, and you only get pinged for the decisions that actually need you. - **How do I add human-in-the-loop to my AI agent?** Pushary is the managed human-in-the-loop layer for AI agents, built so your agent can ask its own end-users. Connect a user's phone once with enroll(externalId), a keyless one-tap link, then call decisions.ask() at the step that needs a human. It blocks until the person approves, denies, or answers, fails closed if nobody responds, and writes the outcome to a durable ledger. It works across the Vercel AI SDK, LangGraph, CrewAI, the OpenAI Agents SDK, Mastra, Eve, LangChain, Hermes, OpenClaw, and MCP. - **How do end-users of my AI agent approve actions on their phone?** Call enroll(externalId) with your own id for the user. They tap a one-tap link once to connect their phone, with no account and no app, then every decisions.ask you send reaches that person on the device they carry. This is how a company shipping an AI agent gives its own users the final say, under its own brand. - **Which frameworks does Pushary support for human-in-the-loop?** Published adapters cover the Vercel AI SDK (@pushary/ai-sdk), Eve (@pushary/eve), LangGraph (@pushary/langgraph, pushary-langgraph), Mastra (@pushary/mastra), the OpenAI Agents SDK (@pushary/openai-agents, pushary-openai-agents), and CrewAI (pushary-crewai). LangChain, Hermes, and OpenClaw call @pushary/server in TypeScript or pip install pushary in Python directly. Each has a dedicated integration page at pushary.com/human-in-the-loop-. The Claude Agent SDK and any MCP client use the hosted MCP server, config only, no install. On the Partner plan the hosted server also exposes enroll_end_user, create_decision, get_decision, and cancel_decision, so an MCP agent can ask its own end-users durably with zero code. ## Key pages - [Home](https://pushary.com/): product overview with live approval simulator. - [AI coding agents](https://pushary.com/ai-coding): human-in-the-loop for Claude Code, Codex, Cursor, and Hermes. - [Agent control panel](https://pushary.com/ai-agent-control-panel): every agent in one place, plus the audit trail. - [Permission policies](https://pushary.com/ai-agent-permission-policy): per-tool rules to approve, deny, or escalate. - [Audit trail](https://pushary.com/ai-agent-audit-trail): immutable cross-agent decision log. - [Kill switch](https://pushary.com/ai-agent-kill-switch): halt a runaway agent from your lock screen. - [Pushary Isle — Mac notch app](https://pushary.com/mac-notch-app): approve AI coding agent requests from your Mac’s notch or your phone through one Pushary subscription. Supports Claude Code, Codex and other connected agents. - [Chatgpt notifications](https://pushary.com/chatgpt-notifications) - [Claude Code notifications](https://pushary.com/claude-code-notifications) - [Claude Cowork notifications](https://pushary.com/claude-cowork-notifications) - [Cline notifications](https://pushary.com/cline-notifications) - [Codex notifications](https://pushary.com/codex-notifications) - [Continue notifications](https://pushary.com/continue-notifications) - [Cursor notifications](https://pushary.com/cursor-notifications) - [Gemini CLI notifications](https://pushary.com/gemini-cli-notifications) - [GitHub Copilot notifications](https://pushary.com/github-copilot-notifications) - [Hermes notifications](https://pushary.com/hermes-notifications) - [Kilo Code notifications](https://pushary.com/kilo-code-notifications) - [Lovable notifications](https://pushary.com/lovable-notifications) - [MCP notifications](https://pushary.com/mcp-notifications) - [Warp notifications](https://pushary.com/warp-notifications) - [Windsurf notifications](https://pushary.com/windsurf-notifications) - [Zed notifications](https://pushary.com/zed-notifications) - [Best AI agent control tools](https://pushary.com/best-ai-agent-control-tools): honest category comparison. - [Compare Pushary vs alternatives](https://pushary.com/vs): comparison hub across every AI agent control tool. - [Pushary vs HumanLayer](https://pushary.com/vs/humanlayer): human-in-the-loop approvals, side by side. - [Pushary vs Knock](https://pushary.com/vs/knock): managed decision loop vs assemble-it-yourself agent approvals. - [Pushary vs Courier](https://pushary.com/vs/courier): getting a decision back vs sending messages. - [Pushary vs Novu](https://pushary.com/vs/novu): a standalone decision loop vs approval cards inside chat conversations. - [Pushary vs Svix](https://pushary.com/vs/svix): decisions from people vs webhooks between machines. - [Pushary vs Omnara](https://pushary.com/vs/omnara): phone approvals and audit trail, compared. - [Pushary vs Conductor](https://pushary.com/vs/conductor): control plane vs agent orchestration. - [Pushary vs Vibe Island](https://pushary.com/vs/vibe-island): two Mac notch apps for coding agents, compared on measured memory, price, and whether a decision also reaches your phone. - [Embed human approval](https://pushary.com/agent-notifications-integration): add an ask-a-human approval step to your own AI product for your end-users (Partner plan). - [Embed integration guide](https://pushary.com/docs/agents/embed): the decisions API, TypeScript SDK, and signed webhooks. ### For AI agent builders - [Human-in-the-loop for AI agents](https://pushary.com/human-in-the-loop): the hub. Add human-in-the-loop to any agent in two calls, enroll(externalId) plus decisions.ask(). - [Human-in-the-loop for the Vercel AI SDK](https://pushary.com/human-in-the-loop-vercel-ai-sdk): @pushary/ai-sdk createPusharyTools() gives an askHuman tool. - [Human-in-the-loop for LangGraph](https://pushary.com/human-in-the-loop-langgraph): a Pushary tool inside a node, or interrupt and resume from a phone. - [Human-in-the-loop for CrewAI](https://pushary.com/human-in-the-loop-crewai): pip install pushary, wrap decisions.ask in a BaseTool. - [Human-in-the-loop for the OpenAI Agents SDK](https://pushary.com/human-in-the-loop-openai-agents-sdk): a function tool that calls decisions.ask. - [Human-in-the-loop for Eve](https://pushary.com/human-in-the-loop-eve): @pushary/eve one-line tool files. - [Human-in-the-loop for Mastra](https://pushary.com/human-in-the-loop-mastra): decisions.ask in a createTool, or a suspend-and-resume workflow step. - [Human-in-the-loop for LangChain](https://pushary.com/human-in-the-loop-langchain): an @tool function that calls decisions.ask. - [Human-in-the-loop over MCP](https://pushary.com/human-in-the-loop-mcp): the hosted MCP server, one config entry, zero install. - [Human-in-the-loop for the Claude Agent SDK](https://pushary.com/human-in-the-loop-claude-agent-sdk): one mcpServers entry in query() options. - [Human-in-the-loop for Hermes](https://pushary.com/human-in-the-loop-hermes): pip install pushary, one registered tool. - [Human-in-the-loop for OpenClaw](https://pushary.com/human-in-the-loop-openclaw): a before_tool_call hook that blocks unless a person approves. - [Framework adapters guide](https://pushary.com/docs/agents/adapters): the two-call quickstart for every framework. - [Partner plan, embed it for your users](https://pushary.com/partners): the commercial page for a company shipping an AI agent to its own customers. $99/month, whitelabel decide page, signed webhooks, exportable decisions ledger. - [Try human-in-the-loop on your phone](https://pushary.com/try): a live sandbox. Scan a code, make an agent stop and ask, answer on a phone, and see the decision object come back. No signup. ### By product type Each page covers the actions in that product that should not run unattended, who the approver actually is, and the objection that buyer raises. - [Customer support agents](https://pushary.com/human-in-the-loop-customer-support-agents): refunds, credits, cancellations, billing email changes. - [AI SDR and outbound agents](https://pushary.com/human-in-the-loop-ai-sdr): approval that does not stall the sequence, gated by account tier rather than by volume. - [DevOps and SRE agents](https://pushary.com/human-in-the-loop-devops-agents): migrations, scale-downs, secret rotation, promotion to production, reaching the on-call engineer. - [Legal AI agents](https://pushary.com/human-in-the-loop-legal-agents): attorney sign-off before filing or sending, with the supervision record. - [Finance and accounting agents](https://pushary.com/human-in-the-loop-finance-agents): payment runs, journal entries, write-offs, vendor bank detail changes, dual approval. - [Healthcare AI agents](https://pushary.com/human-in-the-loop-healthcare-agents): clinician review before a note is signed or a patient is messaged. - [Insurance AI agents](https://pushary.com/human-in-the-loop-insurance-agents): claim declines, settlement authority, pricing exceptions. - [Security and SOC agents](https://pushary.com/human-in-the-loop-security-agents): host isolation, account disable, indicator blocks, authorised by the on-duty analyst. - [Travel and expense agents](https://pushary.com/human-in-the-loop-travel-agents): out-of-policy fares, cabin upgrades, over-limit claims and travel advances, decided by the budget owner inside the fare window. ### Oversight and record-keeping - [EU AI Act human oversight](https://pushary.com/eu-ai-act-human-oversight): what Article 14 human oversight and Article 12 record-keeping ask for, which part is a delivery and records problem, and what Pushary explicitly does not do. Pushary does not make anyone compliant and holds no certification. - [Menschliche Aufsicht nach EU KI-Verordnung](https://pushary.com/eu-ki-verordnung-menschliche-aufsicht): the same page in German. - [The Agent Approval Index](https://pushary.com/agent-approval-index): a survey of what companies building AI agents publish, in their own words, about a person approving what the agent does. Verbatim quotes with source links and the date each was last re-confirmed. It is not a ranking and carries no scores; Pushary is listed on the same terms as everyone else. - SDKs and adapters, all published: @pushary/server, @pushary/ai-sdk, @pushary/eve, @pushary/langgraph, @pushary/mastra, @pushary/openai-agents, @pushary/durable (npm); pushary, pushary-crewai, pushary-langgraph, pushary-openai-agents (PyPI); plus the hosted MCP server, which is config only. - [Pricing](https://pushary.com/pricing) - [Docs](https://pushary.com/docs) - [Blog](https://pushary.com/blog) - [Push notifications for e-commerce](https://pushary.com/push-notifications): secondary product, push notifications to browsers without an app. ## Recognition - #2 Product of the Day on Product Hunt, 24 July 2026, with 401 upvotes and 128 comments: https://www.producthunt.com/posts/pushary-4 ## Press - [The Control Panel for AI Coding Agents That No Single Vendor Will Build for Its Competitors](https://startupfortune.com/the-control-panel-for-ai-coding-agents-that-no-single-vendor-will-build-for-its-competitors/) (Startup Fortune, June 2026). ## Company - Founder & CEO: [Aadil Ghani](https://aadilghani.com/about) (canonical bio). Wikidata: https://www.wikidata.org/wiki/Q140420539 - Operated by RalphNex OÜ, Estonian registry code 16932562. Crunchbase: https://www.crunchbase.com/organization/pushary - Contact: business@pushary.com - X (Twitter): https://twitter.com/aadilbuilds - Discord: https://discord.gg/9v3VvUByrr ## Developer resources Everything below is at a fixed URL and needs no key to read. - [Pushary REST API reference](https://pushary.com/docs/agents/reference/api): base URL, auth, error shape, and how to turn the spec into function-calling tools. - [Pushary OpenAPI specification](https://pushary.com/openapi.json): OpenAPI 3.1, every operation typed, one `operationId` each. Also at https://pushary.com/openapi.yaml and https://pushary.com/api/openapi.json. - [Pushary MCP server](https://pushary.com/api/mcp/mcp): Streamable HTTP. POST `initialize` to handshake; `tools/list` and `resources/list` are readable without a key. - [Pushary MCP manifest](https://pushary.com/.well-known/mcp): transport, endpoint, auth scheme and resource catalogue in one document. - [Pushary CLI reference](https://pushary.com/docs/agents/reference/cli): `npx @pushary/agent-hooks setup` wires an agent up in one command. Published on npm as [@pushary/agent-hooks](https://www.npmjs.com/package/@pushary/agent-hooks). - [Pushary MCP tool reference](https://pushary.com/docs/agents/reference/tools): every tool the MCP server exposes, with arguments and return shapes. - [Pushary API keys](https://pushary.com/docs/agents/api-key): how to create, scope and rotate a key. - [Pushary webhooks and the embed API](https://pushary.com/docs/agents/embed): signed decision callbacks and the decisions API. - [Pushary TypeScript SDK](https://www.npmjs.com/package/@pushary/server): `npm install @pushary/server`. - [Pushary Python SDK](https://pypi.org/project/pushary/): `pip install pushary`. - OAuth 2.0 for the MCP endpoint: [protected resource metadata](https://pushary.com/.well-known/oauth-protected-resource) names the authorization server; [authorization server metadata](https://pushary.com/.well-known/oauth-authorization-server) mirrors it. - [Troubleshooting](https://pushary.com/docs/agents/reference/troubleshooting): what to check when an agent will not connect. ## Machine-readable - [Full documentation as one file](https://pushary.com/llms-full.txt) - [Any page as Markdown](https://pushary.com/docs/agents/quickstart.md): append `.md` to any docs or blog URL, or send `Accept: text/markdown` to the HTML URL (acceptmarkdown.com convention). This index is what https://pushary.com/ returns for `Accept: text/markdown`. - [OpenAPI 3.1 specification](https://pushary.com/openapi.json) - [MCP server manifest](https://pushary.com/.well-known/mcp) - [Sitemap](https://pushary.com/sitemap.xml) - [robots.txt](https://pushary.com/robots.txt) - API errors are JSON, never HTML: `{ error, code, status, message, hint, documentation }`. An unknown `/api/*` path returns that shape with `code: "not_found"` and a link back to the OpenAPI document. ### Also on the site - [AI Agent glossary](https://pushary.com/ai-agent-glossary) - [AI Agent Permission control](https://pushary.com/ai-agent-permission-control) - [AI agents](https://pushary.com/ai-agents) - [Approve AI tasks](https://pushary.com/approve-ai-tasks) - [Claude Code Dangerously Skip permissions](https://pushary.com/claude-code-dangerously-skip-permissions) - [Claude Code Notifications Not working](https://pushary.com/claude-code-notifications-not-working) - [Codex Dangerously Skip permissions](https://pushary.com/codex-dangerously-skip-permissions) - [Control Claude Code From phone](https://pushary.com/control-claude-code-from-phone) - [Cursor Dangerously Skip permissions](https://pushary.com/cursor-dangerously-skip-permissions) - [download](https://pushary.com/download) - [Gemini Dangerously Skip permissions](https://pushary.com/gemini-dangerously-skip-permissions) - [Happy alternative](https://pushary.com/happy-alternative) - [Human In The Loop n8n](https://pushary.com/human-in-the-loop-n8n) - [Manage AI Agents remotely](https://pushary.com/manage-ai-agents-remotely) - [Omnara alternative](https://pushary.com/omnara-alternative) - [receipts](https://pushary.com/receipts) - [Run Multiple AI agents](https://pushary.com/run-multiple-ai-agents) - [security](https://pushary.com/security) - [slack](https://pushary.com/slack) - [support](https://pushary.com/support) - [Vs/claude Code notifier](https://pushary.com/vs/claude-code-notifier) - [Vs/claude Code Remote control](https://pushary.com/vs/claude-code-remote-control) - [Vs/claude cowork](https://pushary.com/vs/claude-cowork) - [Vs/forge remote](https://pushary.com/vs/forge-remote) - [vs/happy](https://pushary.com/vs/happy) - [vs/ntfy](https://pushary.com/vs/ntfy) - [vs/onesignal](https://pushary.com/vs/onesignal) - [vs/pushcut](https://pushary.com/vs/pushcut) - [vs/pushengage](https://pushary.com/vs/pushengage) - [vs/pushover](https://pushary.com/vs/pushover) ## Guides and analysis Every post is available as raw Markdown by appending `.md` to its URL. - [Approve refunds over $500: the four things that decide whether a threshold holds](https://pushary.com/blog/ai-agent-approval-threshold.md): Every guide says auto-approve under $100 and escalate above it. That is the easy part. Four properties decide whether an approval threshold survives contact with production. (updated 2026-08-23) - [How to add human-in-the-loop to a Vercel AI SDK agent](https://pushary.com/blog/add-human-in-the-loop-vercel-ai-sdk.md): Add a human approval step to a Vercel AI SDK agent with @pushary/ai-sdk: an askHuman tool that reaches a person on their phone and blocks until they decide. (updated 2026-09-05) - [Build vs buy: the real cost of a human-in-the-loop approval loop](https://pushary.com/blog/build-vs-buy-human-in-the-loop.md): What it actually takes to build agent approvals in-house: delivery, enrollment, pending state, fail-closed timeouts, recovery, and audit, itemized honestly. (updated 2026-07-17) - [Fail-closed by default: why agent approvals should block instead of fire and forget](https://pushary.com/blog/fail-closed-agent-approvals.md): An agent approval that assumes yes on timeout is an approval in name only. The case for fail-closed defaults, and what it takes to implement them. (updated 2026-07-17) - [LangGraph human-in-the-loop: interrupt, approve, and resume from a phone](https://pushary.com/blog/langgraph-human-in-the-loop-phone.md): Two working patterns for LangGraph human-in-the-loop with Pushary: a blocking decisions.ask tool inside a node, and interrupt() with a webhook-driven resume. (updated 2026-07-17) - [The gap between notifying a human and getting a decision back](https://pushary.com/blog/notification-vs-decision-gap.md): Notification APIs consider the job done at delivery. An agent approval's job starts there: hold the agent, collect the answer, fail closed, keep the record. (updated 2026-07-17) - [How to approve Claude Cowork tasks from your phone](https://pushary.com/blog/approve-claude-cowork-from-phone.md): Answer Cowork's questions and go-aheads from your lock screen: paste one connector link, add standing instructions, and every session reaches you anywhere. (updated 2026-07-10) - [An audit trail for Claude Cowork: what did your AI coworker decide while you were out?](https://pushary.com/blog/claude-cowork-audit-trail.md): Cowork does real work unattended, and for individuals it keeps no reviewable record of what was asked and approved. Here is how to get one. (updated 2026-07-10) - [Claude Cowork stuck waiting for permission? Stop babysitting it](https://pushary.com/blog/claude-cowork-stuck-waiting.md): Cowork pauses on questions and approvals, and if you stepped away it just sits there. Route those moments to your phone so tasks finish while you are gone. (updated 2026-07-10) - [Stop making your agent ask permission for everything. Or nothing.](https://pushary.com/blog/agent-permissions-read-only-floor.md): A container keeps your agent off the disk. It does nothing once the agent reaches past it. Here is the line worth drawing, plus the classifier code that enforces it. (updated 2026-07-04) - [Pushary, featured on AI Plaza](https://pushary.com/blog/featured-on-ai-plaza.md): AI Plaza sat down with our founder to talk about why an agent should tell you the moment it is done, and how to keep a person in the loop without slowing the work down. (updated 2026-06-29) - [What an AI agent audit log should capture for teams and compliance](https://pushary.com/blog/ai-agent-audit-log-compliance.md): A useful AI agent audit log records the action, arguments, decision, who approved it, and which surface. Here is what to capture, and the honest limits. (updated 2026-06-27) - [What shipped: more agents, and agents that ask before risky steps](https://pushary.com/blog/gemini-codex-proactive-ask.md): Gemini CLI and Codex now have native Pushary hooks, and setup writes a proactive-ask instruction so they volunteer questions over push. (updated 2026-06-26) - [Connect Claude Desktop with one URL: notify and ask, nothing else](https://pushary.com/blog/connect-claude-desktop.md): Connect Claude Desktop to Pushary by pasting one URL. The key is connector-scoped and revocable, enforced at the credential layer. Notify and ask only. (updated 2026-06-25) - [How permission policies learn your defaults](https://pushary.com/blog/how-permission-policies-learn-your-defaults.md): An AI agent permission policy that matches on tool arguments, auto-approves a proven read-only set, and suggests rules from your history. (updated 2026-06-25) - [Who is accountable when an AI agent makes a mistake?](https://pushary.com/blog/who-is-accountable-when-an-ai-agent-makes-a-mistake.md): The person or team who deployed the agent owns what it does. An audit trail of who approved each action is how you prove it. (updated 2026-06-25) - [How to run multiple AI agents at once without losing track](https://pushary.com/blog/run-multiple-ai-agents-at-once.md): Run several Claude Code agents at once and still know which is blocked, which finished, and which is burning budget. (updated 2026-09-15) - [AI agent control glossary: HITL, MCP, permission gates, kill switch, audit trail](https://pushary.com/blog/ai-agent-control-glossary.md): Plain definitions for the terms you need to control AI agents: HITL, MCP, permission gate, permission policy, kill switch, audit trail. (updated 2026-06-21) - [Pushary for Cursor: a fail-closed gate, now on the marketplace](https://pushary.com/blog/pushary-for-cursor.md): Pushary ships a Cursor plugin with a fail-closed shell permission gate, installable from the Cursor marketplace and registered in ~/.cursor/hooks.json. (updated 2026-06-20) - [What shipped: reliable delivery across browser, mobile, and the iOS home screen](https://pushary.com/blog/reliable-multichannel-delivery.md): Fixed silent agent push failures, unified Connections settings, and added an iOS inbox so agent questions reach you. (updated 2026-06-19) - [Vibe coding safety: letting AI run code without babysitting it](https://pushary.com/blog/vibe-coding-safety.md): Vibe coding safety is mostly a runtime problem. Most tools scan the code an agent writes, not the commands it runs. Here is how to close that gap. (updated 2026-06-19) - [How to run an AI agent overnight and stay in control from your phone](https://pushary.com/blog/run-ai-agent-overnight.md): Run Claude Code unattended overnight while keeping the gates: risky actions route to your phone for a yes or no, with a kill switch. (updated 2026-06-17) - [The Pushary mobile app: answer approvals and send commands from your phone](https://pushary.com/blog/pushary-mobile-app.md): Pair by QR, approve an AI agent action from your lock screen, and queue a command back to a running agent. Native iOS and Android. (updated 2026-06-16) - [How to stop an AI agent from running up your token bill](https://pushary.com/blog/limit-ai-agent-token-usage.md): Limit Claude Code token usage with a budget that actually kills the session, plus an approval gate so a loop cannot run for hours unwatched. (updated 2026-06-15) - [Deny with a reason, and see the risk on every approval](https://pushary.com/blog/deny-with-feedback-risk-urgency.md): Deny an AI agent action with a short reason instead of a bare no, and see a risk flag right on the approval card. (updated 2026-06-14) - [One board for every running agent](https://pushary.com/blog/fleet-board-for-running-agents.md): Run multiple AI agents at once and see them on one board with delivery modes, presence-aware routing, and deduped sessions. (updated 2026-09-15) - [What --dangerously-skip-permissions does, and a safer way to run unattended](https://pushary.com/blog/dangerously-skip-permissions-safer-way.md): The Claude Code flag turns off every approval prompt. Here is what it disables and how to keep one gate while moving approvals to your phone. (updated 2026-06-13) - [What permissions should an AI agent have? A starter least-privilege policy](https://pushary.com/blog/what-permissions-should-an-ai-agent-have.md): A least-privilege default for AI agents: an allow, ask, and deny table for common tools, not vague principles. (updated 2026-06-11) - [Stop runaway spend: kill an agent session at a daily budget](https://pushary.com/blog/agent-cost-guard-budget-kill.md): Set a daily budget for an AI agent, track its cost from the transcript, and auto-stop the session when it crosses the line. (updated 2026-06-09) - [What shipped: approve from Slack, REST, n8n, or Zapier](https://pushary.com/blog/slack-rest-n8n-zapier-approvals.md): Approve or deny an AI agent from Slack, a REST endpoint, an n8n node, or Zapier. Block Kit, signature verified, Team tier. (updated 2026-06-09) - [See exactly what your agents did: receipts, a what-changed view, and exports](https://pushary.com/blog/agent-session-receipts-and-exports.md): Per-session receipts, a what-changed view, exportable history, and a record of which surface answered each agent decision. (updated 2026-06-07) - [The four levels of AI agent oversight: notify, approve, policy, audit](https://pushary.com/blog/four-levels-of-ai-agent-oversight.md): The four levels of human oversight for AI agents: notify, approve, policy, audit. Each one defined, and why policy and audit are the durable layer. (updated 2026-09-13) - [Claude Code hooks explained: PreToolUse, PostToolUse, and Stop](https://pushary.com/blog/claude-code-hooks-explained.md): Every Claude Code hook event, when each fires, which can block, and the exact hookSpecificOutput fields: permissionDecision, permissionDecisionReason, updatedInput, additionalContext. (updated 2026-09-15) - [Is it safe to let an AI agent run unattended?](https://pushary.com/blog/is-it-safe-to-run-an-ai-agent-unattended.md): Running an AI agent unattended is safe only if you add guardrails first: approval gates on risky actions, a kill switch, and an audit trail. (updated 2026-06-02) - [Allowlist vs denylist for AI agent permissions, and why prefix denylists leak](https://pushary.com/blog/allowlist-vs-denylist-ai-agent-permissions.md): Allowlist vs denylist for AI agent permissions: why a prefix denylist leaks, plus a read-only safe floor and a copyable allow/ask/deny set. (updated 2026-05-28) - [What is MCP, and how agents use it to notify you and ask for approval](https://pushary.com/blog/what-is-mcp-notify-and-approve.md): MCP is an open standard that lets an AI agent call external tools. Two of those tools can notify a human and ask one, then wait. (updated 2026-05-23) - [Human in the loop for AI agents, explained](https://pushary.com/blog/human-in-the-loop-for-ai-agents.md): Human in the loop means an AI agent runs on its own but pauses for a person to approve, correct, or stop the decisions that matter. (updated 2026-05-20) - [Can an AI agent delete your files or drop your database?](https://pushary.com/blog/can-an-ai-agent-delete-your-files.md): Yes. An AI agent with shell or database access can delete files and drop tables. Here is the failure mode and the guardrails that stop it. (updated 2026-05-15) ## Documentation Every documentation page is available as raw Markdown by appending `.md` to its URL, for example https://pushary.com/docs/agents/quickstart.md. The whole corpus is at https://pushary.com/llms-full.txt. - [Pushary Documentation](https://pushary.com/docs.md): Push notifications for AI agents like Claude Code, Codex, and Cursor. Approve permissions and answer questions from your phone, plus a push API for websites. - [Overview](https://pushary.com/docs/agents.md): Push notifications, permission approvals, and human in the loop for AI agents - [Framework adapters](https://pushary.com/docs/agents/adapters.md): Connect customer answers in the native Pushary app to your framework’s questions and protected tool calls. - [Get your API key](https://pushary.com/docs/agents/api-key.md): Where your Pushary API key comes from, what it looks like, and how to rotate it - [Audit Trail & Export](https://pushary.com/docs/agents/audit-log.md): An append-only record of every question, approval, and notification — filterable, exportable, tamper-evident - [Connect Any Agent](https://pushary.com/docs/agents/connect-any-agent.md): Connect any MCP or API agent to Pushary so it can ask a human and wait for the answer, including n8n, Zapier, LangChain, and custom agents - [Multi-Agent Control Panel](https://pushary.com/docs/agents/control-panel.md): See every running agent, tell parallel sessions apart, and find the one that's blocked - [Embed human approval in your product](https://pushary.com/docs/agents/embed.md): Set up the Partner plan, connect an end-user, create an approval, and safely resume your workflow. - [Test your integration](https://pushary.com/docs/agents/embed-testing.md): Test approval, denial, timeout, retries, and delivery before enabling live customer actions. - [FAQ](https://pushary.com/docs/agents/faq.md): Common questions about Pushary for AI agents - [ChatGPT](https://pushary.com/docs/agents/guides/chatgpt.md): Connect Pushary to ChatGPT as a custom MCP connector, so ChatGPT can notify you and ask you questions on your phone while it works - [Claude Code Setup](https://pushary.com/docs/agents/guides/claude-code.md): Set up push notifications and permission hooks for Claude Code so you can approve risky commands and answer questions from your phone. - [Claude.ai, Claude Desktop, and Cowork](https://pushary.com/docs/agents/guides/claude-desktop.md): Connect Pushary to claude.ai, the Claude Desktop app, or Claude Cowork by pasting one link, so Claude can notify you and ask you questions on your phone - [Codex Setup](https://pushary.com/docs/agents/guides/codex.md): Native Codex hooks for phone approvals, policy enforcement, and session tracking with Pushary - [Cursor](https://pushary.com/docs/agents/guides/cursor.md): Enforced approvals for Cursor with the Pushary plugin, or notifications only with plain MCP - [Gemini CLI Setup](https://pushary.com/docs/agents/guides/gemini-cli.md): Native Gemini CLI hooks for phone approvals, policy enforcement, and session tracking with Pushary - [Hermes Agent Setup](https://pushary.com/docs/agents/guides/hermes.md): Set up push notifications for Hermes Agent via the native plugin or MCP, so you get pinged and can answer from your phone while it runs. - [Lovable](https://pushary.com/docs/agents/guides/lovable.md): Connect Pushary so the Lovable agent pings your phone when it finishes a build or needs your input - [Windsurf and other MCP agents](https://pushary.com/docs/agents/guides/windsurf-other.md): Connect Windsurf or any MCP client to Pushary for notifications and questions - [How It Works](https://pushary.com/docs/agents/how-it-works.md): Architecture, connection methods, and authentication for the Pushary MCP server - [Human-in-the-Loop](https://pushary.com/docs/agents/human-in-the-loop.md): Ask for approval, choices, or text through MCP, and handle unanswered questions safely. - [Kill Switch](https://pushary.com/docs/agents/kill-switch.md): Halt a runaway agent from your phone — deny every tool call until you release it - [Permission Policies](https://pushary.com/docs/agents/policies.md): Control which agent tool calls auto-approve, which ask for permission, and how Pushary reaches you when they do - [Quickstart](https://pushary.com/docs/agents/quickstart.md): Connect your AI agent and your phone in one command. Detects Claude Code, Codex, Gemini CLI, Cursor, and Hermes, then sets up notifications. - [Receiving Notifications](https://pushary.com/docs/agents/receiving-notifications.md): Subscribe to push notifications on your phone, tablet, or desktop - [Pushary REST API reference](https://pushary.com/docs/agents/reference/api.md): OpenAPI specification, authentication, errors, and SDKs for the Pushary REST API - [CLI reference](https://pushary.com/docs/agents/reference/cli.md): Every command and flag for the Pushary agent CLI - [Available Tools](https://pushary.com/docs/agents/reference/tools.md): All MCP tools exposed by the Pushary server - [Troubleshooting](https://pushary.com/docs/agents/reference/troubleshooting.md): Common issues with agent notifications and how to fix them - [Supported agents](https://pushary.com/docs/agents/supported-agents.md): Every agent Pushary supports, how it connects, and what it can enforce - [When you don't answer](https://pushary.com/docs/agents/unanswered.md): What Pushary does when a permission push goes unanswered — the wait ladder, keyboard bypass, waiting for your phone, and tuning the window - [Use Cases & Prompts](https://pushary.com/docs/agents/use-cases.md): Copy-paste prompts and code examples for common Pushary notification use cases with AI agents - [Changelog](https://pushary.com/docs/changelog.md): Version history, new features, and breaking changes for Pushary - [Pricing & Limits](https://pushary.com/docs/pricing-and-limits.md): Pushary plans, notification limits, and what the Free, Agent, and Agent Pro tiers include. Compare pricing and pick the right plan. - [Web Push Notifications](https://pushary.com/docs/web-push.md): Browser push notifications for websites. Reach users on desktop and mobile without a native app - [API Reference](https://pushary.com/docs/web-push/client-sdk/api-reference.md): Complete API reference for the Pushary client SDK - [Installation](https://pushary.com/docs/web-push/client-sdk/installation.md): Install and configure the Pushary client SDK for your website - [WordPress](https://pushary.com/docs/web-push/client-sdk/wordpress.md): Add Pushary push notifications to your WordPress site in 2 minutes - [Quickstart](https://pushary.com/docs/web-push/quickstart.md): Send your first web push notification in 5 minutes - [REST API Reference](https://pushary.com/docs/web-push/server-sdk/api-reference.md): Direct HTTP API access for server-side integrations - [Authentication](https://pushary.com/docs/web-push/server-sdk/authentication.md): Understanding Pushary's authentication system - [Campaigns](https://pushary.com/docs/web-push/server-sdk/campaigns.md): Create and manage push notification campaigns - [Flows](https://pushary.com/docs/web-push/server-sdk/flows.md): Automate notification sequences based on user behavior - [Installation](https://pushary.com/docs/web-push/server-sdk/installation.md): Install and configure the Pushary server SDK for your backend - [Send Notifications](https://pushary.com/docs/web-push/server-sdk/notifications.md): Send push notifications directly to subscribers - [Subscribers](https://pushary.com/docs/web-push/server-sdk/subscribers.md): Manage push notification subscribers with the server SDK - [Templates](https://pushary.com/docs/web-push/server-sdk/templates.md): Create reusable notification templates - [Troubleshooting](https://pushary.com/docs/web-push/troubleshooting.md): Common issues and solutions for Pushary push notifications