Droid(Factory) + Server酱:长任务跑完微信收到完成通知

效果:Droid 完成编码、重构、批处理等长任务后,你的微信立即收到完成提醒。

前置条件

  • Server酱 SendKey:登录 sct.ftqq.com,在「SendKey」页面复制(30 秒获取教程)。
  • Droid(Factory):已安装并可正常运行。Droid 在 skills.sh 官方支持列表中,支持通过 skills CLI 安装 Skill。
  • 如需推送到企业微信/钉钉/飞书群,参见通道配置

配置步骤

1. 设置环境变量

将 SendKey 写入系统环境变量,不要放进项目文件:

echo 'export SERVERCHAN_SENDKEY=你的SENDKEY' >> ~/.zshrc
source ~/.zshrc

如果你使用 bash,将 ~/.zshrc 替换为 ~/.bashrc

2. 安装官方 Server酱 Skill(推荐)

在终端执行:

npx skills add easychen/serverchan-skill

安装完成后,在 Droid 对话中直接说:

任务完成后微信通知我

Skill 会自动完成以下工作:

  • 自动识别 SCTsctp 端点,无需手动区分
  • 自检 SERVERCHAN_SENDKEY 环境变量是否存在
  • 绝不在对话或日志中回显密钥
  • 批量任务的结果合并为一条推送,避免消息轰炸

仓库地址:https://github.com/easychen/serverchan-skill

3. 备选:不装 Skill,对话中直接吩咐

在 Droid 对话中说"完成后执行 curl 通知我",并提供以下命令:

curl -sS -X POST "https://sctapi.ftqq.com/${SERVERCHAN_SENDKEY}.send" -d "title=任务完成" --data-urlencode "desp=一句话结果"

Agent 首次执行终端命令时一般需要你确认授权。

你也可以把上述通知约定写入该工具的项目规则或上下文文件(文件名以官方文档为准),让 Droid 每次跑完任务自动执行通知。

完整示例

一次完整的 Droid 对话流程:

  1. 你:重构 src/utils 目录下的所有文件,完成后微信通知我
  2. Droid 执行重构任务
  3. Droid 通过 Skill 或 curl 发送通知
  4. 你的微信收到消息,标题为"任务完成",正文为执行结果摘要

等价的 curl 命令:

curl -sS -X POST "https://sctapi.ftqq.com/${SERVERCHAN_SENDKEY}.send" \
  -d "title=任务完成" \
  --data-urlencode "desp=已重构 src/utils 下 12 个文件,通过全部测试。"

常见问题

免费额度够用吗?

免费额度为每天 5 条,每分钟上限 50 条。Droid 长任务通常每天触发几次通知,完全够用。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

消息没收到怎么办?

确认环境变量已正确设置(例如执行 test -n "$SERVERCHAN_SENDKEY" 检查,注意不要回显密钥),再参考常见问题与排查

Skill 安装失败怎么办?

确认 Node.js 和 npx 可用(node -vnpx -v 能正常输出版本号)。网络问题可尝试切换 npm 源后重试。

频率有限制吗?

每分钟上限 50 条。Skill 已内置批量任务合并机制,多个任务完成会合并为一条推送。会员每日 API 请求上限 1000 次。

相关集成

懒人方案:把这段话复制给你的 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 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。