首页/文章/出门也能盯住 Claude Code:用手机 SSH 接管新加坡 Mac mini,卡住或完成就推送通知

出门也能盯住 Claude Code:用手机 SSH 接管新加坡 Mac mini,卡住或完成就推送通知

· SgRent

人走开之后,最怕的是「它在等你」

把 Claude Code 放到一台常开的 Mac mini 上跑长任务,很快会遇到一个新问题:任务本身没出错,只是停在了一个确认提示上,比如要不要执行某条命令、要不要改某个目录。你在外面吃饭、开会、通勤,完全不知道;回到电脑前才发现,它已经安安静静等了两个小时。

另一种情况正好相反:任务早就做完了,你却以为还在跑,迟迟没去验收和安排下一步。

解决办法分两半:

  1. 让机器主动告诉你:卡住或完成时,推送一条消息到手机。
  2. 让你随时能接回去:收到消息后,用手机 SSH 连上 Mac mini,回到同一个会话,回答一句话就让它继续。

下面按步骤在一台新加坡 Mac mini 上配好。

Claude 账号由你自己开通并登录,请遵守 Anthropic 的服务条款与支持地区规则。本文只谈如何搭一个稳定合规的使用环境,不涉及共享或转卖账号。SgRent 与 Anthropic 没有官方合作关系。

准备清单

  • 一台常开的 Mac mini(整机租用或自有设备托管),已装好 Claude Code 并用你自己的账号登录
  • 已安装 tmux,没有的话用 Homebrew 安装:brew install tmux
  • 手机上装一个 SSH 客户端(iOS、Android 都有成熟的选择),并导入你的 SSH 私钥,用密钥登录,不用密码
  • 一个能收推送的渠道:可以是 ntfy 这类推送应用,也可以是你自己建的 Telegram 机器人

步骤一:把会话固定在一个有名字的 tmux 窗口里

手机上最麻烦的是找会话,所以名字要固定:

  1. SSH 登录 Mac mini 后执行 tmux new -s claude,进入项目目录,再启动 claude。
  2. 在 ~/.tmux.conf 里加两行:set -g mouse on(手机上可以用手指滚动查看历史)和 set -g history-limit 50000(多留一些回滚记录)。
  3. 离开时按 Ctrl-b 再按 d 脱离,会话继续在 Mac mini 上运行。

以后无论从哪台设备连回来,都只需要 tmux attach -t claude。

步骤二:不进会话,先看一眼

手机屏幕小,直接 attach 进去容易误触。可以先在 Mac mini 上建一个小脚本 ~/bin/peek,内容只有一行:tmux capture-pane -p -t claude | tail -40,再 chmod +x ~/bin/peek。

之后在手机上执行 ssh 你的主机 '~/bin/peek',就能看到会话最后 40 行,判断它是在干活、在等确认,还是已经结束。不需要回复时,看完就走,不碰会话本身。

步骤三:写一个推送脚本

在 Mac mini 上新建 ~/.claude/notify.sh,思路很简单:读入 Claude Code 交给 hook 的 JSON,取出提示文字,再用 curl 发出去。

  • 读取内容:msg=$(jq -r '.message // "任务已结束"')。较新的 macOS 自带 jq,没有的话 brew install jq。
  • 用 ntfy 推送:curl -s -d "$msg" https://ntfy.sh/你的随机主题名。公共主题谁知道名字谁就能订阅,所以主题名要足够长、足够随机,推送内容里也不要放密码、密钥或客户数据。
  • 用 Telegram 机器人推送:调用机器人的 sendMessage 接口,把 $msg 发到你自己的对话;机器人令牌存在只有你能读的文件里,不要写进项目仓库。

写好后 chmod +x ~/.claude/notify.sh,手动执行 echo '{"message":"测试"}' | ~/.claude/notify.sh,确认手机能收到。

步骤四:用 hook 在卡住和完成时自动触发

Claude Code 的 hooks 可以在特定事件发生时执行命令。这里用到两个事件:

  • Notification:Claude 需要你确认权限,或者空闲等待输入一段时间后触发,正好对应「它在等你」。
  • Stop:Claude 完成本轮回复时触发,对应「做完了,来验收」。

在 ~/.claude/settings.json(对所有项目生效)或项目的 .claude/settings.json 里,给 hooks 下的 Notification 和 Stop 各加一条 type 为 command 的配置,命令都指向 ~/.claude/notify.sh。配好后在会话里输入 /hooks 确认两条都已加载,再故意让它执行一条需要确认的命令,看手机是否响。

如果 Stop 提醒太频繁(每轮短对话都推一次),可以只在长任务时打开它,或者在脚本里判断:距上次推送不足几分钟就不发。

步骤五:收到提醒后,用手机三步处理

  1. 先 peek 看一眼,弄清楚它在问什么。
  2. 需要回答时,ssh 上去执行 tmux attach -t claude,回复一句「可以」「不要改这个目录」或选一个选项。
  3. 回完立刻 Ctrl-b d 脱离,别在手机上做大段编辑。

如果会话已经被关掉,在项目目录执行 claude --continue 接着最近一次对话。真正需要大量输入的工作,留到回到电脑前再做;手机只负责「解锁卡点」和「确认完成」。

为什么要放在一台常开的新加坡整机上

这套方法的前提,是会话和通知脚本一直在同一台机器上运行。放在笔记本上,你一合盖出门,会话就停了,自然也不会有提醒;放在一台常开的 Mac mini 上,tmux 里的会话一直在,hook 随时能发出通知,你从手机、平板或另一台电脑连回去,看到的都是同一个现场。网络环境稳定、时区固定,排查问题也只需要盯一台机器。

SgRent 提供的就是这样的环境:新加坡家庭宽带原生 IP 上的实体 Mac mini M6,整机独享(一人一台物理机),支持 SSH 和 UU 远程连接,FileVault 全盘加密,退租时抹机重装。新客户整机租用月付 ¥699 起,季付、半年付、年付有折扣;已有 Mac 的也可以托管,¥299/月起。实际延迟取决于你本地的网络线路,建议先用一个月把这套手机接管流程跑通。

小结

  • 会话固定在 tmux new -s claude,任何设备都用 tmux attach -t claude 接回
  • 用 peek 脚本先看最后几十行,不需要时不进会话
  • notify.sh 读 hook 的 JSON,用 curl 推送到 ntfy 或你的 Telegram 机器人
  • Notification hook 管「它在等你」,Stop hook 管「做完了」
  • 手机只做解锁卡点和确认完成,大段工作留给电脑

有问题可以在 Telegram 联系 @singatao,或直接看 价格与付款周期。

需要一台新加坡的独享远程 Mac? SgRent 提供新加坡家庭宽带原生 IP 的 Mac mini M6,整机独享,UU 远程连接。整机租用 ¥699/月,自有设备托管 ¥299/月;季付 9 折,半年付 6 送 1,年付 12 送 2。
前往 panel.zumac.ai 订购 → · 查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服