Koren Gast · Updated 18 October 2026

# Claude Code notifications and approvals on your phone

You start a long task in Claude Code and walk away. Twenty minutes later you come back, and it has waited eighteen of them for a yes. This page fixes that in two steps. First, a notification on your phone when Claude Code finishes or needs you: ten lines in a settings file, no extra software. Second, an answer to the permission prompt from the phone, so the work goes on while you are away. I built Angelia, which does the second step, so I'll say where each tool fits.

## Step 1: a notification with hooks

Claude Code runs [hooks](https://code.claude.com/docs/en/hooks): shell commands it starts on events. Two events matter here. `Stop` fires when Claude Code finishes its answer. `Notification` fires when it needs you, for example for a permission prompt (`permission_prompt`) or when it waits for your input (`idle_prompt`).

The simplest way to reach a phone is [ntfy](https://ntfy.sh/): install its app, subscribe to a topic, and anything posted to that topic arrives as a push notification. Add this to `~/.claude/settings.json`:

```
{
  "hooks": {
    "Stop": [
      { "hooks": [{ "type": "command", "command": "curl -s -d 'Claude Code is done' ntfy.sh/YOUR-RANDOM-TOPIC" }] }
    ],
    "Notification": [
      { "matcher": "permission_prompt",
        "hooks": [{ "type": "command", "command": "curl -s -d 'Claude Code needs your yes' ntfy.sh/YOUR-RANDOM-TOPIC" }] }
    ]
  }
}
```

- Pick a long random topic name. On the public ntfy server, anyone who knows the name can read the topic.
- The notification text is fixed here, so no code or file names leave your machine. Do not post the hook's input (it carries the session's details) to a public topic.
- Pushover, a Slack webhook or a Telegram bot work the same way: one `curl` line.

This tells you that Claude Code waits. It does not let you answer. For that you must go back to the terminal, or use step 2.

## Step 2: approve from the phone

There are three ways to answer a prompt without the terminal.

- **[Remote Control](https://code.claude.com/docs/en/remote-control)** (Anthropic): the session shows up in the Claude app, and you answer there. Best for one coding session you started at your desk.
- **Official [channels](https://code.claude.com/docs/en/channels)** (research preview): a Telegram, Discord or iMessage plugin can relay the prompt to the chat. It works in the one session you keep open.
- **Angelia** (mine): Claude Code runs in the background on your Mac, one session per chat, on Telegram or WhatsApp. Every prompt comes to the chat.

The [four ways compared](https://useangelia.com/guides/claude-code-whatsapp-telegram/) covers when each fits.

## How approvals work in Angelia

Install it and pair a chat ([step by step](https://useangelia.com/guides/claude-code-from-phone/)). Under `permission_mode: acceptEdits`, Claude Code edits files on its own and asks before it runs other commands. The question comes to the chat:

```
🔐 Bash: npm test
Reply "yes 6b480a6f" or "no 6b480a6f".
```

- Answer `yes 6b480a6f` and the turn goes on. The id ties the answer to this one request, so an old yes cannot approve a new command.
- No answer in ten minutes counts as no.
- Only the chat's owners can approve. In a group, other members can talk to the agent but cannot say yes for you.
- The same works when Angelia runs Grok Build or pi. Codex runs inside its own sandbox and asks only when it needs more access than the sandbox gives.

The "done" notification comes for free: the answer itself arrives as a chat message, after short progress lines while it works.

## Fewer prompts

Each profile has a permission mode. `default` asks before edits and commands. `acceptEdits` asks only before commands. `plan` only plans. `bypassPermissions` asks nothing. Use it only in a profile that you alone write to, and whose folders you can afford to lose. Angelia also writes deny rules for your credentials and the other profiles' folders into every profile. A deny rule stops Claude Code's file tools, not every program a command starts, so keep commands asking in a profile other people can write to.

## More guides

- [How to run Claude Code 24/7 on your own machine](https://useangelia.com/guides/claude-code-24-7/)
- [How to control Claude Code from your phone](https://useangelia.com/guides/claude-code-from-phone/)
- [Claude Code on WhatsApp and Telegram: four ways compared](https://useangelia.com/guides/claude-code-whatsapp-telegram/)

## Try Angelia

```
curl -fsSL https://useangelia.com/install | sh
```

It checks the release's signature, then a wizard pairs your first chat. Free and open source (MIT). [How it works](https://useangelia.com/) · [Security model](https://useangelia.com/docs/security/) · [GitHub](https://github.com/korengast/angelia)

Angelia · open source, MIT [Docs](https://useangelia.com/docs/) · [info@useangelia.com](mailto:info@useangelia.com) · [GitHub](https://github.com/korengast/angelia)
