VibePager · Guide
Getting Claude Code to tell you when it stops
A coding agent that works for eight minutes and then waits silently for permission has just turned you into a progress bar. Here is every way to fix that, from a one-line setting to a push notification on your phone.
Updated September 2026
Two different events, often confused
People search for "notify me when done", but in practice there are two moments worth a notification, and they deserve different treatment:
- It finished. The turn is over, the tests ran, there is something to read. Nice to know. You can get to it whenever.
- It stopped and is waiting for you. It wants to edit a file or run a command and will not move until you answer. This one is expensive: every minute you do not notice is a minute of nothing happening.
Most setups only solve the first. The second is the one that actually costs you time.
On the machine itself
The terminal bell
Claude Code can ring the terminal bell when it wants your attention. Whether that becomes a visible notification depends on your terminal: iTerm2, Ghostty, WezTerm and Windows Terminal can all turn a bell into a system notification, usually behind a setting like "notify on bell" or a bell filter for inactive tabs. This is the cheapest fix and it is often enough when you are at the same desk.
Hooks
Claude Code can run your own command at defined points in its lifecycle. That is the escape hatch for anything the built-in behaviour does not cover: play a sound, post to Slack, hit an ntfy or Pushover endpoint, blink a light. It is the most flexible option and the most work, and it is worth reading the current hooks documentation rather than copying a snippet from a blog post, because the event names have changed over releases.
Editor extensions
If you drive Claude Code from inside VS Code or JetBrains, the extension surfaces its own indicators. Useful while the window is in front of you; invisible the moment it is not.
On your phone
Everything above assumes you are near the machine. The moment you walk away, a terminal bell is a sound in an empty room. Getting the event onto a phone needs something with a push channel: a hook posting to a service like ntfy or Pushover, or a product built for it.
That is what VibePager does: when the agent stops for a decision, your phone gets a push — and, crucially, the notification opens straight onto the decision. You see the action, the file and the diff, and you answer with one tap. Being told and being able to answer are the same gesture, which is the difference between a notification that helps and one you swipe away because you cannot act on it yet.
On iPhone, add vibepager.com/app to the Home Screen first — a browser tab cannot receive push notifications on iOS until it has been installed that way.
Which one to pick
| If you are… | Use |
|---|---|
| At the same desk, one terminal | Your terminal emulator bell setting. Free, two minutes. |
| At the desk, many tabs or many agents | The bell plus a terminal that flags inactive tabs, or a hook that names the project in the message. |
| In the house but not at the machine | A hook posting to ntfy or Pushover. Free, and it reaches the phone. |
| Away, and you want to unblock the agent, not just hear about it | A remote control with push — VibePager, or a browser IDE you keep logged in. |
Questions
- Can Claude Code notify me when it is done?
- Yes. The simplest route is the terminal bell plus a terminal that converts a bell into a system notification. For anything richer — a phone push, a Slack message, a sound per project — use a hook that runs your own command when the event fires.
- Can I get a notification on my phone?
- Not by itself: nothing in the CLI has a push channel. You either add one with a hook posting to a service like ntfy or Pushover, or use a product that carries the event to a phone, such as VibePager, which also lets you answer the permission request from the notification.
- Why do I only get notified after it finished, not when it is waiting?
- Because the notification was wired to the end of the turn. A permission request is a different event, and it is the one worth waking you up for — hook that one specifically.
- Do notifications work when the terminal is in the background?
- The bell fires regardless; whether you see it is your terminal emulator’s job. Check its settings for bell handling and for marking inactive tabs, and allow it to post notifications in your system settings.
VibePager runs the agents on your own machine and puts the controls on your phone.