监测 Codex 对话状态,并在完成、中断或失败时通过飞书机器人发送通知。 当前脚本会自动兼容两类 Codex 本地数据源:
- 旧版
~/.codex/log/codex-tui.log - 新版
~/.codex/sessions/**/rollout-*.jsonl
- 监测 Codex 主会话 turn 的完成、中断和失败事件
- 多 Agent 模式下忽略内部子会话,只通知用户主会话
- 通知只包含项目名和工具名,不发送完整命令参数或绝对路径
- 飞书临时失败支持有边界的超时与重试
- 本机可运行
bash - 本机可运行
curl - 本机可运行
flock - 已经安装并在使用 Codex
git clone <your-repo-url>
cd AI-Assistant-Notify创建一个飞书自定义机器人,并拿到 webhook。
推荐只在仓库根目录放一份 .env:
cp .env.example .env配置示例:
CODEX_FEISHU_WEBHOOK="https://open.feishu.cn/open-apis/bot/v2/hook/your-codex-webhook"
CODEX_FEISHU_KEYWORD="Codex提醒"
# 可选,以下均为默认值
FEISHU_NOTIFY_CONNECT_TIMEOUT_SECONDS=5
FEISHU_NOTIFY_MAX_TIME_SECONDS=15
FEISHU_NOTIFY_MAX_ATTEMPTS=3
FEISHU_NOTIFY_RETRY_BACKOFF_SECONDS=1配置文件固定为仓库根目录 .env。
./bin/ai-assistant-notify test-notify./bin/ai-assistant-notify start./bin/ai-assistant-notify statusstatus 会额外显示当前 watcher 实际使用的数据源,例如 legacy_log 或 rollout_jsonl。
同时会显示几条版本信息:
Codex installed:当前本机已安装版本Codex verified:当前工具已验证通过的版本上限Codex latest:当前检测到的可升级最新版本Compatibility:当前已安装版本是否还在已验证范围内
如果 Compatibility 显示为 recheck needed,说明当前已安装版本已经高于脚本已验证范围,最好重新做一次兼容性检查,并在确认无回归后同步更新仓库里的已验证版本上限。
./bin/ai-assistant-notify stop语法检查、进程管理测试、飞书 mock 测试和 Codex watcher 回放测试:
./scripts/test.sh如果脚本没有执行权限,可以先运行:
chmod +x ./scripts/test.sh ./scripts/test_process_utils.sh ./scripts/test_notify.sh ./scripts/test_codex_watcher.sh先看状态:
./bin/ai-assistant-notify status再看日志:
- 运行日志:
/tmp/ai-assistant-notify/watch-runtime.log - 错误日志:
/tmp/ai-assistant-notify/watch-errors.log
常见检查项:
- webhook 地址是否正确
- 飞书关键词是否和机器人配置一致
- Codex 是否已经产生本地会话数据
- 若是旧版本 Codex,检查
~/.codex/log/codex-tui.log是否存在 - 若是新版本 Codex,检查
~/.codex/sessions/下是否已有rollout-*.jsonl status是否提示当前 Codex 版本已经高于脚本已验证版本- watcher 是否已经启动
- 运行日志里是否出现
notification sent watcher=codex type=turn_complete - 若
test-notify成功但真实对话没有通知,优先检查运行日志