Goose + Server酱:长任务跑完,微信收到完成通知

效果:Goose 完成编码、重构、批处理等长任务后,自动向你的微信推送一条完成通知。

前置条件

  • Server酱 SendKey:前往 获取 SendKey(30 秒教程),复制你的 SendKey。
  • Goose 已安装并可正常运行。
  • 终端环境变量 SERVERCHAN_SENDKEY 已设置(见下方步骤)。
  • 如需推送到企业微信、钉钉或飞书群,参见通道配置

配置步骤

1. 设置环境变量

~/.zshrc~/.bashrc 中添加:

export SERVERCHAN_SENDKEY="你的SENDKEY"

保存后执行 source ~/.zshrc(或 source ~/.bashrc)使其生效。验证:

test -n "$SERVERCHAN_SENDKEY" && echo "已设置" || echo "未设置"

若输出“已设置”即配置成功。不要将 SendKey 写入项目文件。

2. 安装 Server酱 Skill

在终端执行:

npx skills add easychen/serverchan-skill

该 Skill 来自 easychen/serverchan-skill,安装后 Goose 即具备 Server酱 推送能力。Skill 内置以下约定:

  • 自动识别 SCTsctp 端点
  • 自动读取 SERVERCHAN_SENDKEY 环境变量,绝不回显密钥
  • 批量任务合并为一条推送

3. 启用通知

在 Goose 对话中直接说:

任务完成后微信通知我

Goose 会在任务结束时自动调用 Server酱 推送通知。

完整示例

以下是不安装 Skill 时的备选方案——在对话中直接吩咐 Goose:

完成后执行 curl 通知我

Goose 会执行以下命令:

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

首次执行终端命令时,Goose 一般会请求用户确认。

你也可以将上述通知约定写入项目规则或上下文文件(具体文件名以 Goose 官方文档为准),让 Goose 在每次任务完成后自动执行通知。

常见问题

免费额度够用吗?

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

消息没收到怎么办?

先检查 SERVERCHAN_SENDKEY 环境变量是否正确设置,再确认 SendKey 前缀与端点匹配。更多排查步骤见 常见问题与排查

频率限制是多少?

每分钟最多 50 条推送。Skill 已内置批量任务合并机制,多个任务完成会合并为一条通知,避免触发频率限制。

Skill 安装失败怎么办?

确认 Node.js 环境正常(npx 可用),网络可访问 GitHub。也可改用备选方案,在对话中直接吩咐 Goose 执行 curl 命令。

相关集成

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