【自称CS领域大神】看了让你的Claude Code工作效率提高120%

如何优雅的给Claude Code装上通知功能

众所周知,相信大家都在或多或少的使用Claude Code辅助工作和学习,一个令人头疼的点在于有些时候让Claude干一件事情,自己去刷别的经常忘记了时间导致效率低下,因为claude code并没有消息提醒。

Claude Code 的 hook 功能可以让你在特定事件发生时执行自定义脚本。要实现推送提醒,你需要:

基本设置

首先在 Claude Code 配置文件中启用 hooks。配置文件通常在 ~/.claude/config.json

{
  "hooks": {
    "on_permission_request": "~/.claude/hooks/notify_permission.sh",
    "on_task_complete": "~/.claude/hooks/notify_done.sh"
  }
}

本地运行实现推送脚本

对于 macOS,可以使用系统通知:

#!/bin/bash
# ~/.claude/hooks/notify_permission.sh

osascript -e 'display notification "Claude Code needs permission" with title "Action Required"'

#!/bin/bash
# ~/.claude/hooks/notify_done.sh

osascript -e 'display notification "Task completed" with title "Claude Code Done"'

对于 Linux,可以用 notify-send

#!/bin/bash
notify-send "Claude Code" "Needs permission" -u critical

本地更高级的选项

如果你想要更强的提醒(比如声音、Slack 消息等),可以:

  1. 添加声音
osascript -e 'beep 2'  # macOS
paplay /usr/share/sounds/freedesktop/stereo/bell.oga  # Linux

  1. 发送到手机(使用 Pushover 或类似服务)
curl -s \
  --form-string "token=YOUR_APP_TOKEN" \
  --form-string "user=YOUR_USER_KEY" \
  --form-string "message=Claude needs permission" \
  https://api.pushover.net/1/messages.json

  1. Slack webhook
curl -X POST -H 'Content-type: application/json' \
  --data '{"text":"Claude Code needs permission"}' \
  YOUR_SLACK_WEBHOOK_URL

记得给脚本添加执行权限:

chmod +x ~/.claude/hooks/*.sh

这样每次 Claude Code 需要权限或完成任务时,你就会收到通知了。

在服务器上怎么办

那么有很多人说,假设我是SSH到公司或者学校的HPC上怎么办?

在 HPC 上情况会复杂一些,因为通常没有图形界面,而且你可能是通过 SSH 连接的。以下是几个实用方案:

1. 邮件通知(最可靠)

#!/bin/bash
# ~/.claude/hooks/notify_permission.sh

echo "Claude Code needs your permission at $(date)" | \
  mail -s "Claude Code: Action Required" [email protected]

一般服务器都应该有配置好的邮件系统,这样你能在手机上立即收到通知。

2. 本地桌面通知(通过 SSH 反向代理)(注意安全 请咨询服务器管理员慎用)

在本地机器运行一个简单的通知服务器:

# 本地机器:~/notify_server.py
from flask import Flask, request
import subprocess

app = Flask(__name__)

@app.route('/notify', methods=['POST'])
def notify():
    msg = request.json.get('message', 'Notification')
    subprocess.run(['osascript', '-e', 
                   f'display notification "{msg}" with title "Claude Code (HPC)"'])
    return 'OK'

app.run(port=5555)

在 HPC 的 hook 脚本中:

#!/bin/bash
# ~/.claude/hooks/notify_permission.sh

curl -X POST http://localhost:5555/notify \
  -H "Content-Type: application/json" \
  -d '{"message":"Claude needs permission"}'

SSH 连接时使用反向端口转发:

ssh -R 5555:localhost:5555 [email protected]

3. Telegram Bot(推荐,跨平台)

创建 Telegram bot 后:

#!/bin/bash
# ~/.claude/hooks/notify_permission.sh

BOT_TOKEN="your_bot_token"
CHAT_ID="your_chat_id"

curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
  -d chat_id="${CHAT_ID}" \
  -d text="🔔 Claude Code needs permission on $(hostname)"

4. 文件监控(简单但需要轮询)

Hook 写入标记文件:

#!/bin/bash
echo "$(date): Permission needed" >> ~/claude_notifications.log

本地机器定期检查:

# 本地运行
while true; do
  ssh greatlakes "tail -n 1 ~/claude_notifications.log" | \
    while read line; do
      osascript -e "display notification \"$line\" with title \"HPC Alert\""
    done
  sleep 30
done

5. Slack/Discord Webhook(企业环境常用)

#!/bin/bash
WEBHOOK_URL="your_webhook_url"

curl -X POST "${WEBHOOK_URL}" \
  -H 'Content-Type: application/json' \
  -d "{\"text\":\"Claude Code on $(hostname) needs permission\"}"

Claude推荐 Telegram Bot 方案,因为:

  • 设置简单,不需要保持 SSH 连接

  • 手机能即时收到通知

  • 免费且可靠

  • 不依赖学校和企业的邮件系统延迟

一些好玩的

利用Hooks功能,可以让Claude Code在特定事件发生时执行特定动作,比如在任务完成后播放音频提醒:比如ask for permission或者plan mode ask questions的时候弹出等等等的声音,或者在完成之后播放超级马里奥通关的音乐等等。另外,它还可以让Claude Code自动执行Python脚本,这个想象力就很大了。

20 个赞

支持林酱AI冲钛!

我以为

【CS领域大神】

是别人给你加的

3 个赞

这是一个hook

你不是统计PhD吗 :distorted_face:

前后各去掉两个字

@统计PhD 已经死了

感觉没什么用,我都是一直盯着看看他到底在做什么

可以在运行时候震动吗?

前几天看到 bark 更新,增加了 MCP 支持的来着,更新一下服务点应该就好了。

1 个赞

我就说林酱是做ai领域大手子

现在是 @CSphd 了是吧

這個在公司裡的vscode or cursor要怎麼設定?

一样的,参考我写的“在服务器里怎么办”,可以设置给你发邮件或者用discord telegram bot,前提是注意安全别被开除,最好问一下负责人。邮件的话到无所谓主要是telegram bot

你这样更安全一点

:hot_pepper::chicken:
:mosquito::mango:

没看懂这是干嘛用的

你平时用Claude Code或者Codex吗

不用 我是古法写code

Respect