Claude finished coding.
Your phone knows.
Pushary sends a push notification when Claude Code finishes or needs your permission, and lets you approve from your phone in one tap.
Push notifications + human-in-the-loop for Claude Code. Answer questions from your lock screen.
One command
npx @pushary/agent-hooks@latest setupPick Claude Code when prompted. Installs the hooks and connects over MCP.
The Claude Code workflow without notifications
You kick off a database migration in the terminal, walk away, and come back to find Claude has been stuck on a yes/no question for half an hour.
Every way to get notified when Claude Code finishes
There are four ways to get notified when Claude Code finishes or needs your input: the built-in terminal bell, a desktop alert from a Notification hook, a free ntfy push to your phone, and Pushary, which adds two-way approvals so you can answer Claude from your lock screen. The first two only help while you are at the machine. The last two reach you anywhere.
1. Terminal bell and desktop notifications
FreeBuilt into Claude Code, zero setup
In Ghostty, Kitty, and iTerm2, Claude Code already sends a desktop notification when it finishes or pauses for permission, and it reaches your local machine even over SSH. In other terminals, switch the notification channel to the terminal bell with the command below. Good enough if the terminal is always on your screen. It cannot reach you once you step away.
claude config set --global preferredNotifChannel terminal_bell2. Desktop alert with a Notification hook
FreeDeterministic, fires on permission prompts and idle waits
Claude Code fires a Notification event when it needs your approval (permission_prompt) or is done and waiting for your next prompt (idle_prompt). A hook in .claude/settings.json turns that into any command you want, like a macOS notification via osascript or notify-send on Linux. Add a matcher such as permission_prompt to only fire for specific types. This is the mechanism most DIY tutorials skip: no prompt hacks in CLAUDE.md, just a documented event.
{
"hooks": {
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs you\" with title \"Claude Code\"'"
}
]
}
]
}
}3. Free phone push with ntfy
FreeA Stop hook plus curl reaches your phone, one-way
The Stop event fires when Claude finishes responding. Point a Stop hook at ntfy.sh and your phone gets a push for free. The trade-offs: it is one-way, so when Claude is blocked on a question you still have to walk back to the terminal to answer, and public ntfy topics are readable by anyone who guesses the name unless you reserve one or self-host.
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -d 'Claude Code finished' ntfy.sh/your-topic"
}
]
}
]
}
}4. Pushary: push plus approvals from your phone
$9.99/moThe only option where you can answer Claude remotely
One command installs the hooks and connects Claude Code over MCP. You get a push when Claude finishes, and when it is blocked on a permission or a question, the notification carries the question itself. Tap yes or no from your lock screen and Claude continues. Permission policies decide which tools need your approval, and every decision lands in an audit trail. This is the difference from every free option above: they tell you Claude is waiting, Pushary lets you unblock it.
npx @pushary/agent-hooks@latest setupHow the options compare
| Method | Reaches your phone | Answer from the notification | Price |
|---|---|---|---|
| Terminal bell and desktop notifications | Free | ||
| Desktop alert with a Notification hook | Free | ||
| Free phone push with ntfy | Free | ||
| Pushary: push plus approvals from your phone | $9.99/mo |
Stop watching Claude Code spin. Start getting notified.
One command. Your phone buzzes when Claude Code is done.
Claude Code notification questions
How do I get a notification when Claude Code finishes?
Claude Code fires a Stop event when it finishes responding. Hook it in .claude/settings.json to ring a bell, show a desktop alert, or curl a push service. For notifications you can act on from your phone, run npx @pushary/agent-hooks setup and pick Claude Code.
How do I know when Claude Code is waiting for my input?
The Notification event fires with type permission_prompt when Claude needs an approval and idle_prompt when it is done and waiting for your next prompt. A Notification hook turns those into alerts. Pushary routes the same events to your phone and lets you answer without going back to the terminal.
Can Claude Code send notifications to my phone?
Yes, two ways. A Stop hook that curls a free service like ntfy gets you a one-way push. Pushary gets you a two-way push: when Claude is blocked on a question, the notification carries the question and you answer yes or no from your lock screen.
How is Pushary different from free options like ntfy or a hook script?
Free options are one-way: they tell you Claude finished or is stuck, and then you walk back to the terminal. Pushary is two-way: you approve permissions and answer questions from the notification itself. It also adds per-tool permission policies and an audit trail of every decision.
Can Claude ask me questions via push notification?
Yes. Pushary's human-in-the-loop feature lets Claude send yes/no questions to your phone. You answer from your lock screen and Claude continues based on your response.
Does it work with Claude Desktop and Claude Code?
Yes. Pushary works with both Claude Desktop and Claude Code (terminal) via MCP. Any Claude client that supports MCP servers can use Pushary.
How much does Pushary cost?
Pushary starts with a 7-day free trial at $9.99/month. Includes 5,000 notifications per month and full MCP API access.
Guides
Also works with