OpenAI Codex CLI + Server酱:长任务跑完微信收到完成通知

效果:Codex CLI 执行重构、批量修改、测试等耗时任务完成后,自动向你的微信推送一条完成通知。

前置条件

  • 一个 Server酱 SendKey(30 秒获取教程)。
  • 已安装 OpenAI Codex CLI 并能正常执行对话与 shell 命令(执行确认策略以当前版本设置为准)。
  • 如需推送到企业微信、钉钉或飞书群,参见通道说明

配置步骤

方法一:安装 Server酱 Skill(推荐)

Codex CLI 支持 skills.sh 生态,一条命令安装:

npx skills add easychen/serverchan-skill

将 SendKey 写入环境变量(不要写进项目文件):

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

使用 bash 则将 ~/.zshrc 替换为 ~/.bashrc

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

任务完成后微信通知我

Skill 会自动识别 SCT/sctp 端点、检查 SERVERCHAN_SENDKEY 是否设置,批量任务合并为一条推送,且不在对话中回显密钥。Skill 仓库:https://github.com/easychen/serverchan-skill

方法二:在 AGENTS.md 中写入通知约定

Codex CLI 使用 AGENTS.md 作为项目规则/上下文文件(具体行为以当前版本为准)。在项目根目录创建或编辑 AGENTS.md,加入以下内容:

## 任务完成通知

任务完成后,执行以下命令通知开发者:

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

同样需要将 SendKey 写入环境变量:

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

方法三:对话中直接吩咐

不修改任何文件,在对话中直接对 Codex CLI 说:

完成后用 curl 调 Server酱 通知我

Agent 会执行 shell 命令完成推送。此方式每次对话需重复吩咐。

完整示例

以下段落可直接放入 AGENTS.md

## 完成通知

当任务(重构、批量修改、测试等)完成后,执行以下命令推送通知:

curl -sS -X POST "https://sctapi.ftqq.com/${SERVERCHAN_SENDKEY}.send" \
  -d "title=任务完成" \
  --data-urlencode "desp=已完成:简要说明做了什么、修改了哪些文件、是否有报错"

如果 SERVERCHAN_SENDKEY 未设置,跳过通知并在最后提示用户配置。

常见问题

每天能发多少条?

免费额度每天 5 条,每分钟上限 50 条。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

消息没收到怎么办?

先检查 SERVERCHAN_SENDKEY 环境变量是否正确设置(test -n "$SERVERCHAN_SENDKEY"),再确认 curl 执行成功。更多排查见常见问题与排查

频率限制是什么?

每分钟最多 50 条。Skill 已内置批量任务合并逻辑,多个任务完成会合并为一条推送,正常使用不会触发限制。

sctp 开头的 SendKey 怎么用?

Skill 会自动识别 sctp 前缀并切换到对应端点。手动使用请查阅 Server酱 官方文档。

相关集成

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