博客/手机通知

Claude Code 手机通知:知道任务跑完的三种方式

2026-07-17

长时间的 Claude Code 任务会时不时停下来等你:批准计划、回答问题、审查 diff。你不回应,它就一直停着。下面是三种在手机上收到提醒的方式,以及收到之后各自能做什么。

方案一:hooks + ntfy 自建

Claude Code 提供了在生命周期事件上触发的 hooks。把 Stop hook 指向 ntfy.sh 这类推送服务,agent 一停手机就响:

{
  "hooks": {
    "Stop": [{
      "hooks": [{
        "type": "command",
        "command": "curl -s -d 'Claude Code finished' ntfy.sh/your-topic"
      }]
    }]
  }
}

优点:免费、透明、哪里都能用。缺点:每台机器都要配置和维护、通知里没上下文、收到之后想操作还是得自己找终端、手动 re-attach。

方案二:官方推送

较新的 Claude Code 版本通过官方 Claude App 提供了推送通知,与 Remote Control 配套。如果你的会话本来就跑在官方托管的流程里,不需要任何配置。它只覆盖 Claude App 能看到的会话,回复要通过 Remote Control 的界面,而不是你自己服务器上的终端。

方案三:ServerCC

ServerCC 通过 SSH 在你自己的服务器上运行 agent,可以放在 tmux 里。用「后台运行」离开会话后,agent 从工作变为空闲时,ServerCC 会发一条本地通知。ServerCC 启动的会话、持久 tmux 会话、已接入的主机 tmux pane 都会通知。每个会话每次转入后台最多通知一次,也可以在工作区设置里关掉。

点通知会回到 App。会话在运行中标签页里,点一下重新接入,之前的终端输出都在。接入后可以批准计划、输入回答、看 git diff,或者再开一个会话。

该选哪个?

  • 会话跑在官方托管流程里,用官方推送就行,不用配置。
  • 想每一环都自己搭,hooks + ntfy 免费,也能写脚本。
  • agent 跑在自己服务器上,收到通知后还要在手机上回复,用 ServerCC。通知、终端和 git diff 在同一个 App 里。

这几种也可以组合使用,比如 CI 消息走 ntfy,agent 会话用 ServerCC。添加服务器的步骤见快速开始。