Claude Code + Server酱:AI 干完活,微信告诉你

效果:让 Claude Code 跑一个长任务后走开,任务完成(或需要你确认)时微信收到通知,不用盯着终端。

前置条件

先把 SendKey 存入环境变量(两种方式都依赖它):

# 写入 ~/.zshrc 或 ~/.bashrc
export SERVERCHAN_SENDKEY="你的SENDKEY"

方式一:安装官方 Agent Skill(推荐)

一条命令安装官方 Skill

npx skills add easychen/serverchan-skill

Skill 让 Claude Code "学会"推送:之后你只要说"跑完通知我",它就会在合适的时机推送。内置约定:按 SendKey 前缀自动选择 SCT/SC3 端点、发送前自检环境变量、绝不回显 SendKey、批量任务合并为一条摘要(尊重每天 5 条的免费额度)。

安装后对 Claude Code 说:

帮我跑完整个测试套件,结束后微信通知我结果

方式二:Stop Hook(每次会话结束自动通知)

不想依赖模型判断,希望每次 Claude Code 停下来(完成任务等待输入)都收到通知,用 Hook 更合适。在 ~/.claude/settings.json 中加入:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "curl -sS -X POST \"https://sctapi.ftqq.com/${SERVERCHAN_SENDKEY}.send\" -d \"title=Claude Code 已完成\" -d \"desp=任务结束,等待你的下一步指令\" > /dev/null"
          }
        ]
      }
    ]
  }
}

上例适用于 SCT 开头的 SendKey;SC3 用户把 URL 换成 https://<uid>.push.ft07.com/send/${SERVERCHAN_SENDKEY}.send

完整示例:长任务 + 结果摘要

装好 Skill 后,一句话即可:

重构 src/ 下所有废弃 API 调用,跑通测试。这个任务比较久,
完成后把改动摘要和测试结果推送到我微信。

Claude Code 会在任务结束时调用 Server酱 API,你的微信收到形如"✅ 重构完成:12 个文件,测试 84/84 通过"的消息。

常见问题

Skill 和 Hook 选哪个? Skill 由模型按语义触发,通知内容智能(带结果摘要),适合"按需通知";Hook 是确定性触发,每次停止都发,适合"必须知道它停了"。两者可以共存。

会不会把我的 SendKey 泄露给模型或日志? SendKey 只存在环境变量里,Skill 规则明确禁止打印;Hook 中由 shell 展开变量,不经过模型。注意不要把含真实 key 的配置提交到 git。

免费额度够吗? 每天 5 条。Skill 的合并摘要规则就是为此设计的;高频使用可考虑订阅(39 元/年)。

通知能发到手机 App 而不是微信吗? 可以,换用 Server酱³ 的 SendKey 即可,见通道对比

相关集成

懒人方案:把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手,它就会替你完成 Server酱 的接入:

请帮我把 Server酱 微信通知接入到我当前的项目/工具中:
1. API:POST https://sctapi.ftqq.com/{SendKey}.send,参数 title(必填,不能含换行)、desp(正文,支持 Markdown,可选);成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头,则改用 https://{uid}.push.ft07.com/send/{SendKey}.send,uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取;如果没有,提醒我到 https://sct.ftqq.com 免费获取(每天 5 条额度)。
4. 安全要求:不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定:任务结束发 1 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。