Pushary for agent builders

Let your users approve what your AI agent does.

Your agent asks before a refund, an email or a delete. Your user taps Approve or Deny on their phone, under your brand.

What your user sees. Acme is your product.

TypeScript · Python · Vercel AI SDK · LangGraph · Mastra · OpenAI Agents SDK · CrewAI

Your framework can pause your agent. It can't reach your user.

Reaching them takes all of this. Pushary already has it:

  • A phone app with Approve and Deny on the lock screen
  • Push notifications for iPhone, Android and browsers
  • A way for your users to connect without another account
  • A request that stays open when your server restarts or deploys
  • A timeout that means no, never yes
  • A record of who said yes, and when

You add two calls to your code. That is the whole build.

Your agent asks. Your user decides.

Four steps, from connecting a user to running the action.

  1. 01

    Connect your user once

    Show them a link in your product. They install the free Pushary app, open the link and allow notifications. No sign-up, no payment.

  2. 02

    Your agent asks first

    Right before the risky step, your code sends the question to that user: “Approve a $4,200 refund?” It can be a yes or no, a choice from a list or a typed answer.

  3. 03

    Your user taps a button

    The notification starts with your product's name. They tap Approve or Deny on the notification.

  4. 04

    Your agent gets the answer

    Approve, and the agent carries on. Deny or no answer, and it stops. Every answer is saved, and can be sent to your server.

Try it on your phone

No sign-up. Takes a minute.

Your brand on every request.

Your users know your product, not ours. So every request leads with your name.

Acme needs your approvalnowApprove a $4,200 refund for order #4471?

Shows your brand

The notification
Starts with your product's name: “Acme needs your approval”.
The approval screen
Your name and logo above the question.
The web page
Each request has one, with your name and logo. Switch off “Powered by Pushary” to drop our mark.
The connect link
Your name and logo, and a button to get the app.

Shows Pushary

The app
Your users install the free Pushary app once. Its icon shows on the notification, and some phones show its name too.
The web address
Links and web pages stay on pushary.com.

Your users never make a Pushary account and never pay us. One free app works for every product on Pushary, so you never publish an app of your own.

Only ask when it matters.

Set a few rules so your users are not asked about every small thing. Change a limit without shipping code.

$42 refund
Runs on its own. Nobody is asked.
$4,200 refund
Asks your user first.
$40,000 refund
Blocked. It never runs.
your rules
refund.create   amount < 100       allow
refund.create   amount >= 1000     require_approval
refund.create   amount >= 10000    deny

This is shorthand. You add each rule with one API call. No rule for an action? It asks a person. A missing rule is never a yes.

Two calls. That's the integration.

Connect a user once, then ask before the risky step. TypeScript or Python, with adapters for the agent frameworks you already use.

Read the setup guide

Listed in the Vercel AI SDK tools registry, LangChain's integrations, the Hermes Agent plugin catalog and the Strands Agents integrations.

npm i @pushary/server
import { createPusharyServer } from "@pushary/server"

const px = createPusharyServer({ apiKey: process.env.PUSHARY_API_KEY! })

// 1. Once per user: show them this link in your product.
const { universalLink } = await px.enroll(user.id)

// 2. Before the risky step: ask, and wait for the answer.
const decision = await px.authorize({
  toolName: "refund.create",
  toolTarget: "order_4471",
  externalId: user.id,
  parameters: { amount: 4200 },
  question: "Approve a $4,200 refund for order #4471?",
})

if (!decision.approved) throw new Error(decision.reason)
await issueRefund()
approved: true
Your user tapped Approve, or a rule allowed it. Run the action.
approved: false
Your user said no, a rule blocked it, or nobody answered in time. Don't run it.

Who it's for

You ship an AI agent to customers

Your agent issues refunds, sends emails or changes accounts. Your customers approve the risky ones from their phone.

You build agents for clients

Stop rebuilding the approval step on every project. Add Pushary once and reuse it.

You run a platform others build on

Give every builder on your platform phone approvals, without building them yourself.

One plan covers one product. Building for several clients, or running a platform? Email us and we will set up a plan that fits.

Partner plans

Pick the size that fits your product. Existing Partner customers keep their terms.

Partner Launch

Approvals inside your product

$99per month
  • Your users approve what your agent does
  • Up to 5K of your users
  • 25K approval requests a month
  • Up to 3 members
  • 90 days of answer history
  • Every answer sent to your server
  • TypeScript, Python, REST and MCP

Partner Growth

Approvals inside your product

$299per month
  • Your users approve what your agent does
  • Up to 25K of your users
  • 100K approval requests a month
  • Up to 10 members
  • 365 days of answer history
  • Every answer sent to your server
  • TypeScript, Python, REST and MCP
  • Priority support

Partner Scale

Approvals inside your product

$799per month
  • Your users approve what your agent does
  • Up to 100K of your users
  • 500K approval requests a month
  • Up to 25 members
  • 730 days of answer history
  • Every answer sent to your server
  • TypeScript, Python, REST and MCP
  • Priority support

Enterprise

Custom agreement

Customlet's talk
  • Your users approve what your agent does
  • Every answer sent to your server
  • TypeScript, Python, REST and MCP

Your first trial covers 100 of your users and 100 approval requests for 3 days. Paid limits start when billing starts. Retries and extra devices don't count as extra requests. Plain notifications without a question aren't included. No automatic overage charges.

Questions, answered

How do I let my users approve what my AI agent does?
Pushary lets your AI agent ask your users before it does something risky, like a refund, an email or a delete. Your code calls Pushary right before that step. Your user gets a notification on their phone with your product's name, and taps Approve or Deny. Your agent gets the answer and runs the action only on Approve. If nobody answers in time, the action does not run. You can add rules so small actions run on their own and only the big ones ask a person. Every answer is saved, and can be sent to your server. Your users install the free Pushary app once. They never sign up with Pushary or pay us.
Do my users have to sign up or pay?
No. They install the free Pushary app, open your connect link and tap Connect. No account, no password, no payment. On iPhone, yes or no questions are answered right on the lock screen. On Android, Deny is one tap and Approve opens the app to unlock first. A choice or a typed answer opens the app. On Android or a computer, someone who does not want the app can answer in their browser instead.
Is it white-label?
Your brand leads, and the app is ours. Every notification starts with your product's name. The approval screen, the web page and the connect link show your name and logo, and you can switch off “Powered by Pushary” on the web page. Your users answer in the free Pushary app, so its icon shows on the notification, and links stay on pushary.com. One app works for every product that uses Pushary, so you never publish an app of your own.
Who gets asked?
You choose. Each request carries your own id for the person who should answer. The same setup can ask a customer about a refund and someone on your team about a deploy.
Won't my users get asked all the time?
Not if you add rules. Small actions run on their own, blocked ones never run, and only the rest ask a person. That is what lets your agent do more without bothering anyone.
What if my user never answers?
The action does not run. By default the call waits 55 seconds, then your code gets approved: false. The request stays open for an hour, so a later answer is still saved and you can pick it up. You can change both times.
How much is the Partner plan?
Partner Launch is $99 a month for up to 5,000 of your users and 25,000 approval requests a month. The 3-day trial covers up to 100 users and 100 approval requests. You add a card at checkout. There are no automatic overage charges. The plans above show the larger sizes.
Which frameworks does it work with?
Published adapters cover the Vercel AI SDK (@pushary/ai-sdk), Eve (@pushary/eve), LangGraph (@pushary/langgraph, or pushary-langgraph in Python), Mastra (@pushary/mastra), the OpenAI Agents SDK (@pushary/openai-agents, or pushary-openai-agents), CrewAI (pushary-crewai), Pydantic AI (pushary-pydantic-ai), Haystack (pushary-haystack) and the Claude Agent SDK (@pushary/claude-agent-sdk). LangChain, Hermes and OpenClaw call @pushary/server in TypeScript or pip install pushary in Python directly. n8n has a community node, n8n-nodes-pushary. Any other MCP client uses the hosted MCP server, which is configuration rather than an install.
How is this different from Knock or Novu?
Knock and Novu can ask for an approval too. With Knock the answer comes back to your webhook, and you write the waiting and the timeout. Novu asks inside a chat, or by Slack, Telegram or email. Pushary puts Approve and Deny on your user's phone, your code waits for the answer, and no answer means no.
How is this different from HumanLayer?
HumanLayer is now a coding tool for teams, and its old approvals kit is no longer kept up. Pushary is built for asking your own users. Each one connects with a link and the free app, with no account of their own.
I build agents for several clients. Do I need one plan each?
One Partner plan covers one product, with one brand. For several client workspaces, email aadil@pushary.com with how many you expect and we will price it with you.
Does this cover the EU AI Act human oversight rule?
Pushary gives you the mechanism: a named person decides before a risky action runs, and the record shows which rule or which person decided. Whether the AI Act covers your system, and what it asks of you, is still yours to check. There is a longer write-up at /eu-ai-act-human-oversight.

Your agent asks. Your users decide.

Two calls in your code. Your users answer on their phone, under your brand. Every answer is saved.

Start free

Using AI agents yourself? Get their questions on your phone or your Mac, and answer from either one. See the agent plans.