# Get Claude Code notifications on your phone

> Get a phone push when Claude Code finishes or needs approval: Remote Control's built-in push, or a Stop and Notification hook with ntfy. Codex too.

Source: https://shuriken.sh/guides/claude-code-notifications-on-your-phone

Get a phone push when Claude Code finishes or needs approval: Remote Control's built-in push, or a Stop and Notification hook with ntfy. Codex too.

By Shuriken Updated 27 October 2026 6 min read

**Contents**

A Claude Code push notification when a task is done comes one of two ways. On a Claude subscription, Remote Control ties the session to the Claude app on your phone, and the app pushes when a long task finishes or Claude needs a decision. On any plan, API keys included, a Stop or Notification hook can curl a push service such as ntfy.

We run agents for hours at a time, and the two moments worth a ping are the end of a turn and a prompt like "may I run this?". The sections below set up each route, then cover answering prompts, Codex, and what Shuriken does today.

## Route 1: Remote Control's push notifications #

With Remote Control, Claude Code keeps running on your machine and the Claude app (or a browser) shows the session. While it's on, "Claude can send push notifications to your phone", per the [Remote Control docs](https://code.claude.com/docs/en/remote-control).

### How to set it up #

- Get the Claude app for iOS or Android and sign in with the account and organization your Claude Code uses.
- Say yes when the phone asks about notifications.
- Type /remote-control in the session, or start it with claude --remote-control.
- Run /config in the terminal and switch on Push when Claude decides, Push when actions required, or both.

Anthropic describes the first toggle this way: "Claude decides when to push. It typically sends one when a long-running task finishes or when it needs a decision from you to continue." You can also ask for a push in the prompt itself, as in notify me when the tests finish. The second toggle covers permission prompts and questions.

### Limits of the Remote Control route #

- Remote Control needs a Pro, Max, Team or Enterprise plan. API keys aren't supported, and on Team and Enterprise an Owner has to turn it on first.
- In the docs' words, "your computer has to stay on and the claude process has to keep running." On a remote machine, start Claude inside tmux or screen so it survives an SSH disconnect.
- There are two switches and nothing finer: "there is no per-event configuration."
- Claude Code skips pushes while you're typing in or focused on the connected terminal. The docs describe a CLAUDE_CLIENT_PRESENCE_FILE marker that stretches that to any time you're at the machine.
- When /config shows No mobile registered, open the app once so it refreshes its push token. On iOS, Focus modes and notification summaries can hold pushes back.

On a subscription, with only Claude Code to watch, this is the easiest route by far, and unlike a plain push it lets you answer from the phone.

## Route 2: hooks and a push service #

A hook is a command Claude Code runs on an event, and [Anthropic's hooks reference](https://code.claude.com/docs/en/hooks) lists two that suit a phone:

- Stop runs "when Claude finishes responding".
- Notification runs "when Claude Code sends a notification". Its matcher picks the kind: permission_prompt when Claude needs your permission, idle_prompt when it's waiting for you, plus others.

Neither of the two Notification kinds is instant. When we read the reference again on 25 October 2026, permission_prompt waited until you hadn't typed for about six seconds, and idle_prompt came about 60 seconds after Claude's last reply, so either push arrives only once you seem to be away from the terminal.

Each hook gets the event as JSON on standard input. Every event carries cwd, the project folder. A Notification adds message, an optional title and notification_type, and a Stop adds last_assistant_message, Claude's final reply.

On the phone side we use [ntfy](https://docs.ntfy.sh/publish/). You install its app and subscribe to a topic, and anything posted to that topic with one curl arrives as a push. Pushover, Telegram bots and the like work the same way. Replying to Claude from Telegram, Discord or iMessage takes one of Claude Code's channels plugins instead ([Claude Code on Telegram, Discord or iMessage](https://shuriken.sh/guides/claude-code-telegram-discord-channels) has the setup).

### The script #

Save this as ~/.claude/hooks/push.sh and run chmod +x on it. It needs jq and curl:

bash
#!/bin/bash
# push.sh done | push.sh needs-you (the event arrives as JSON on stdin)
input=$(cat)
project=$(basename "$(jq -r .cwd <<<"$input")")
if [ "$1" = done ]; then
title="Claude finished: $project"; body="Your turn."
else
title="Claude needs you: $project"; body=$(jq -r '.message // "Waiting for you"' <<<"$input")
fi
curl -s -H "Title: $title" -d "$body" "https://ntfy.sh/$NTFY_TOPIC" >/dev/null

Set NTFY_TOPIC in your shell profile. Without an ntfy account, its docs warn, "the topic is essentially a password, so pick something that's not easily guessable." Anyone who guesses it can read your pushes.

### The settings #

Put the hooks in ~/.claude/settings.json, so they apply to every project. A matcher of permission_prompt|idle_prompt is read as a list of two exact names:

json
{
"hooks": {
"Stop": [{ "hooks": [{ "type": "command", "command": "~/.claude/hooks/push.sh done" }] }],
"Notification": [{
"matcher": "permission_prompt|idle_prompt",
"hooks": [{ "type": "command", "command": "~/.claude/hooks/push.sh needs-you" }]
}]
}
}

Run /hooks in Claude Code to see that both are registered, then ask Claude something small and wait for the phone.

### Tuning it #

- Stop fires after every reply, one-liners included. If that's too chatty, make the script skip the push while you're at the computer, or push only for turns that ran longer than a few minutes.
- What leaves your machine is the project name and Claude's notification text, not your code. Put last_assistant_message in the body and Claude's reply goes through ntfy's servers too; self-host ntfy if that bothers you, or keep the body vague.
- Hooks live on one machine. Each computer that runs Claude Code needs its own copy of push.sh and the settings.

## Answering permission prompts from your phone #

A push saying "Claude needs your permission" tells you about the prompt. Someone still has to answer it.

- With Remote Control, permission prompts and questions are forwarded to the app, and Claude Code keeps them open until you answer. Turn on Push when actions required, tap the push and answer in the app. Some prompts, such as ones carrying a safety warning, can only be answered in the terminal.
- With hooks, you answer where the session runs: SSH in from a terminal app on your phone and tmux attach, or walk back to your desk. For a home-made relay, Claude Code also has a PermissionRequest hook event, which runs "when a tool call needs a permission decision".

SSH apps, Remote Control and the other ways to work from a phone, not only get pinged on one, are compared in [running Claude Code from your phone](https://shuriken.sh/guides/run-claude-code-from-your-phone).

With Shuriken you follow and answer your agents' chats from your phone.

[Download](https://shuriken.sh/download)

## Codex #

Codex has a notify setting that runs a program of your choice. [OpenAI's configuration docs](https://learn.chatgpt.com/docs/config-file/config-advanced) say it currently fires on agent-turn-complete only, and the program gets a single JSON argument with fields like cwd and last-assistant-message. In ~/.codex/config.toml:

toml
notify = ["/Users/you/.codex/push.sh"]

A copy of the script that reads the JSON from $1 instead of standard input, and posts to the same ntfy topic, does the job. Codex's built-in terminal notifications (tui.notifications) can fire on approval-requested, but they land on your computer, not your phone.

## What Shuriken does today, and what's coming #

Shuriken runs Claude Code, Codex, Gemini CLI and the rest of its 67 agents on all your computers and servers, and every chat reports to one place. One set of notifications covers all of them, with no hook to copy to each machine.

On your computer, Settings › Notifications › Events lists each event with its own switch and sound: Needs you (a permission, a question or a plan waiting), Chat done, Chat failed, and setup events such as Source signed out. You aren't pinged for the chat you're looking at, a noisy project can be muted, and a question answered on one device disappears from the others. The [desktop notifications post](https://shuriken.sh/blog/desktop-notifications) has the details.

On your phone, today, that's the web app at app.shuriken.sh in any phone browser, which installs to the home screen. Every chat, the queue and any waiting approval are there, across all your computers, so you can answer from the bus. Installed, it also gets account alerts as pushes:

- a device gone offline;
- a server that can't update;
- a source that needs signing in again;
- a new sign-in to your account.

It doesn't get a push when a chat needs you. That comes with the native iOS and Android apps, built from scratch and planned for November 2026. We wrote up the plan in [native iOS and Android apps](https://shuriken.sh/blog/native-ios-android-apps), and the [phone page](https://shuriken.sh/features/phone) lists what works in a phone browser today.

If you'd rather have one ping for every agent than a hook per CLI per machine, [download Shuriken](https://shuriken.sh/download).

Share

[X](https://x.com/intent/post?url=https%3A%2F%2Fshuriken.sh%2Fguides%2Fclaude-code-notifications-on-your-phone&text=Get%20Claude%20Code%20notifications%20on%20your%20phone)[LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fshuriken.sh%2Fguides%2Fclaude-code-notifications-on-your-phone)[Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fshuriken.sh%2Fguides%2Fclaude-code-notifications-on-your-phone&t=Get%20Claude%20Code%20notifications%20on%20your%20phone)[Reddit](https://www.reddit.com/submit?url=https%3A%2F%2Fshuriken.sh%2Fguides%2Fclaude-code-notifications-on-your-phone&title=Get%20Claude%20Code%20notifications%20on%20your%20phone)[E-mail](mailto:?subject=Get%20Claude%20Code%20notifications%20on%20your%20phone&body=https%3A%2F%2Fshuriken.sh%2Fguides%2Fclaude-code-notifications-on-your-phone)

## Sources

- [Continue local sessions from any device with Remote Control (Claude Code docs)](https://code.claude.com/docs/en/remote-control) (accessed 22 October 2026)
- [Hooks reference (Claude Code docs)](https://code.claude.com/docs/en/hooks) (accessed 22 October 2026)
- [Publishing (ntfy docs)](https://docs.ntfy.sh/publish/) (accessed 22 October 2026)
- [Advanced configuration: notify (Codex docs)](https://learn.chatgpt.com/docs/config-file/config-advanced) (accessed 22 October 2026)

## Frequently asked questions

**How do I get notified when Claude Code is done?**

With Remote Control on a Claude subscription, run /config and turn on Push when Claude decides. On any plan, add a Stop hook to ~/.claude/settings.json that posts a message to a push service such as ntfy.

**Can I approve Claude Code permission prompts from my phone?**

With Remote Control, yes. The Claude app receives permission prompts and questions, and Push when actions required tells you one is there. A plain hook only reports the prompt; you answer it where the session runs.

**Does this work for Codex?**

Codex's notify setting in ~/.codex/config.toml runs a program of your choice when a turn completes, so the same push-service script works. Its built-in terminal notifications also cover approval requests, but on your computer.

**Does Shuriken send push notifications to my phone?**

Account alerts only, for now. The installed web app pushes when a device goes offline, a server can't update, a source signs out or someone signs in. A push when a chat needs you comes with the native iOS and Android apps, planned for November 2026.

On your phone

Your agents in your pocket.

Follow every chat from your phone: the queue, the changes and your voice, end-to-end encrypted.

[Download](https://shuriken.sh/download)

[Other platforms](https://shuriken.sh/download#main)

## Keep reading

- [Codex remote control: run Codex from your phone: Guide 27 Oct 2026 7 min read Codex remote control runs through the ChatGPT mobile app and a paired Mac or Windows PC. Linux works only as an SSH host; the CLI command is experimental.](https://shuriken.sh/guides/codex-remote-control-from-phone)
- [Claude Code on Android with Termux: what works: Guide 27 Oct 2026 7 min read Claude Code broke on plain Termux in April 2026: it became a glibc binary Android can't run. Ubuntu in proot-distro works; a remote computer works better.](https://shuriken.sh/guides/claude-code-android-termux)
- [How to use Claude Code on an iPad: Guide 27 Oct 2026 7 min read Claude Code doesn't run on iPadOS. On an iPad you drive it remotely: Remote Control, cloud sessions at claude.ai/code, or SSH and tmux to your computer.](https://shuriken.sh/guides/claude-code-on-ipad)
- [Claude Code Remote Control not working? Fixes: Guide 27 Oct 2026 8 min read Remote Control fails when an API key or gateway outranks your claude.ai login, an org leaves it off, or the claude process stops. Each message and its fix.](https://shuriken.sh/guides/claude-code-remote-control-not-working)
- [Remote Control vs Happy Coder vs Shuriken: Comparison 27 Oct 2026 6 min read Claude Code's Remote Control, Happy Coder and Shuriken all put coding agents on your phone. What each covers, what it costs, and where it falls short.](https://shuriken.sh/compare/claude-remote-control-vs-happy-coder)
- [Remote control for coding agents compared (2026): Comparison 27 Oct 2026 9 min read Remote control for coding agents in 2026: Claude Code, Codex and Copilot CLI steer from a phone, OpenCode serves a web UI, and Gemini CLI has none.](https://shuriken.sh/compare/coding-agent-remote-control-compared)
- [Your agents on your phone, from the browser: Update 27 Oct 2026 4 min read Open app.shuriken.sh in any phone browser and add it to your home screen: every chat, the queue, Changes and voice. Browsers never count as devices.](https://shuriken.sh/blog/phone-web-app)
- [Shuriken vs Claude Code Desktop (2026): Comparison 27 Oct 2026 5 min read Anthropic's desktop app is official and comes with your plan. Shuriken runs the same Claude Code CLI and adds several accounts, other agents and servers.](https://shuriken.sh/compare/claude-code-desktop)

## Free tools

- [Claude limit reset tracker](https://shuriken.sh/tools/limit-resets/claude)
- [Codex limit reset tracker](https://shuriken.sh/tools/limit-resets/codex)
