claude-code-notifier
how it works guides faq
◐English
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
Get started
All guides

Approve Claude Code permission requests from your phone

Updated 31 October 2026 · 6 min read
on this page 01Why permission prompts stall your work 02How the PermissionRequest hook answers for you 03Doing it yourself 04Using Claude Code Notifier 05Approve fewer things, too 06FAQ

You can approve Claude Code permission requests from your phone because Claude Code runs a PermissionRequest hook just before it shows a permission prompt, and that hook can return the decision itself. A tool that sends the request to your phone, waits for your tap and then hands back allow or deny lets you answer from anywhere. Claude Code Notifier does this with a small command line tool, ccn, on Mac, Windows and Linux, plus an iPhone or Android app.

01Why permission prompts stall your work

In the default permission mode, Claude Code asks before it runs most shell commands, edits files or fetches a web page. The prompt waits in the terminal until someone answers. If you have gone to make a coffee, the whole task stops at that question, and you only find out when you come back.

You have three ways round this:

  • Approve less often. Add allow rules for commands you trust, or use a more permissive mode. That suits routine work, and it is covered in Claude Code permission modes explained.
  • Get told, then walk back. A notification hook tells you a prompt is waiting. You still have to return to the keyboard.
  • Answer remotely. A PermissionRequest hook carries the question to your phone and returns your answer to Claude Code.

This guide is about the third option.

02How the PermissionRequest hook answers for you

Claude Code fires PermissionRequest when a tool call needs a permission decision. The hook receives JSON on standard input with the tool_name and tool_input (for example the Bash command), and an optional permission_suggestions list of rules Claude Code would offer to save.

The hook answers by printing JSON like this:

{
  "hookSpecificOutput": {
    "hookEventName": "PermissionRequest",
    "decision": {
      "behavior": "allow"
    }
  }
}

behavior is allow or deny. For a denial you can add a message, which tells Claude why, and interrupt: true, which stops Claude altogether. For an approval, updatedPermissions can apply permission rules so you are not asked again. If the hook returns nothing, Claude Code shows its usual prompt.

So a remote approval hook has three jobs: send the request somewhere you will see it, wait for an answer, and print the right JSON before the hook times out. The full field list and a working script are in Answering permission requests from a hook.

Registering the hook

Hooks live in ~/.claude/settings.json (for every project) or .claude/settings.json (for one project):

{
  "hooks": {
    "PermissionRequest": [
      {
        "matcher": "*",
        "hooks": [
          { "type": "command", "command": "/path/to/your-approval-script" }
        ]
      }
    ]
  }
}

The matcher filters on tool name, so "Bash" would send only shell commands to your phone. Command hooks have a default timeout of 600 seconds, which caps how long a hook can wait for you.

03Doing it yourself

A home-made version is possible. A typical design posts the request to a push service such as ntfy, includes two action buttons that call back to a small web endpoint, and has the hook poll that endpoint until an answer arrives or a timer runs out. See Claude Code push notifications with ntfy for the sending half.

The parts that take time are the edges:

  • You are at the keyboard. If the hook always waits for the phone, you cannot answer in the terminal while it waits. A good hook notices you are present and steps aside.
  • Timeouts. The hook must give up before Claude Code's timeout and fall back cleanly.
  • Trust. Anyone who can reach your callback endpoint can approve commands on your computer. It needs authentication.
  • Several sessions. Each request has to reach the right session and come back to it.

If you enjoy building this, it is a good weekend project. If you want it working today, a ready-made tool saves the effort.

04Using Claude Code Notifier

Claude Code Notifier is an independent tool made by TouchTap Ltd. It is not made by or affiliated with Anthropic. It has two parts: ccn, a free command line tool for Mac, Windows and Linux, and phone apps for iPhone and Android.

1. Install ccn

On Mac and Linux:

curl -fsSL https://claudecodenotifier.com/install.sh | sh

On Windows, in PowerShell (Windows support is in beta):

irm https://claudecodenotifier.com/install.ps1 | iex

Homebrew, npm and plugin installs are listed on the ccn page. Installing adds seven hook entries to ~/.claude/settings.json, each running ccn hook, and keeps a backup of the file. One of them is the PermissionRequest hook. ccn runs for a few milliseconds when Claude Code calls it, then exits. Nothing runs in the background, and it works in any terminal, including IDE terminals.

2. Pair your phone

Run ccn pair and scan the QR code, or type the 6-digit code from the app. The step-by-step version for each operating system is in Connect your phone to Claude Code.

3. Answer from the notification

When Claude needs a permission and you are away, your phone shows what it wants to do, such as the command it wants to run. You can:

  • Allow once, for this call only.
  • Allow for the session, so the same kind of request in that session does not ask again.
  • Deny, and Claude carries on knowing it was refused.

The hook returns your answer and Claude continues.

What happens when you are at your desk

ccn checks whether you are present. If you typed in the last 30 seconds, nothing waits: the terminal asks as usual and the phone gets at most a note. If you are away, the terminal waits for the phone's answer, up to a ceiling you choose, and stops waiting the moment you touch the keyboard. So you can always answer in whichever place is nearer.

The ceiling is a setting:

ccn config set hold_ceiling_seconds 900

It takes 30 to 3600 seconds and defaults to 600. presence_threshold_seconds changes the 30-second window. Most settings can also be changed per computer from the phone app.

Checking it works

ccn doctor   # checks hooks, credentials, server connection and presence detection
ccn test     # sends a test notification

The phone apps are free to download and need a subscription or a lifetime purchase to use. See pricing. Without a phone, ccn still shows a desktop notification on the computer when Claude needs a permission, for free.

05Approve fewer things, too

Remote approval works best alongside sensible allow rules. If you approve npm test twenty times a day, add a rule such as Bash(npm test *) to permissions.allow and keep your phone for the requests that deserve a look. Before you approve from a small screen, read the command. Is it safe to approve Claude Code actions from your phone? covers what to check.

06FAQ

Can Claude Code ask for permission on my phone without any extra tool?

Anthropic's Remote Control feature lets you continue a local session from the Claude app or claude.ai/code on supported plans, including answering prompts. A hook-based tool like Claude Code Notifier works differently: it does not need Remote Control turned on and only sends the moments that need you. Using Claude Code from your phone compares them.

What happens if I do not answer on my phone?

With ccn, the hook waits up to your hold_ceiling_seconds setting. If you come back and touch the keyboard first, it stops waiting and the terminal prompt is yours to answer.

Does "allow for the session" change my settings.json?

No. It applies to that session only. To allow something permanently, add an allow rule in /permissions or in your settings file.

Does this work on Windows and Linux?

Yes. ccn runs on Mac, Windows and Linux, and the phone app works with all three. Windows support is in beta.

Can I use it with more than one computer?

Yes. One phone can pair with several computers, and a computer can have several phones. ccn devices lists or revokes paired phones.

Claude Code Notifier Get a push on your phone when Claude Code finishes or needs you, then approve, deny or answer from there. The ccn command line tool is free on Mac, Windows and Linux.
Download for iOS Download for Android Install ccn

Related guides

  • Answering permission requests from a hook (PermissionRequest)How Claude Code's PermissionRequest hook works, how to allow or deny from a script, and why permission rules are often the better tool.
  • Connect your phone to Claude Code on Mac, Windows or LinuxPair your phone with Claude Code in a minute: install ccn, then scan a QR code or type a 6-digit code. Steps for Mac, Windows and Linux.
  • Is it safe to approve Claude Code actions from your phone?How remote approval for Claude Code works, what can go wrong, what data leaves your computer, and the settings that keep it safe.
  • Claude Code permission modes explained (default, acceptEdits, plan, bypassPermissions)What each Claude Code permission mode does (default, acceptEdits, plan, auto, dontAsk, bypassPermissions), how to switch, and when each is safe.
claude-code-notifier

Claude Code Notifier is an independent third-party application. It is not affiliated with, endorsed by, or sponsored by Anthropic, PBC. "Claude" and "Claude Code" are trademarks of Anthropic, PBC.

apps iOS App Android App ccn for macOS, Windows & Linux All guides
legal Privacy Policy Terms of Service Other languages © 2026 touchtap. All rights reserved. TouchTap Ltd is registered in England and Wales, company number 13942589.