用途
configure-slack 是 oh-my-codex(OMX)中的一项交互式配置技能,用于设置 Slack 通知,让 OMX 在会话结束、需要用户输入或完成后台任务时通过 Slack 提醒用户。该技能以自然语言对话方式引导用户完成整个配置流程。
主要能力
- 检测 ~/.codex/.omx-config.json 中是否已存在 Slack 配置,并展示当前配置项(webhookUrl、channel、username、mention)。
- 收集并校验 Slack Incoming Webhook URL,要求以 https://hooks.slack.com/services/ 或 https://hooks.slack.com/workflows/ 开头。
- 可选配置接收通知的 Slack 频道(留空则使用 webhook 默认频道)。
- 可选配置 @提及:提及指定用户(格式 <@UXXXXXXXX>)、提及频道(<!channel> 或 <!here>),或不提及。
- 可选配置机器人显示名称(默认 OMX,可选 Codex CLI 或自定义)。
- 配置触发通知的事件:会话结束(推荐)、需要输入、会话开始、会话持续。默认选中 session-end 与 ask-user-question。
- 将配置合并写入 ~/.codex/.omx-config.json,未选中的事件会被显式禁用。
- 可选发送测试通知,通过 curl 请求 webhook 并检查 HTTP 状态码(200 表示成功)。
使用方式
该技能通过 AskUserQuestion 逐步提问完成配置,共九个步骤:检测已有配置、收集 Webhook URL、配置频道、配置提及、配置显示名称、配置事件、写入配置、测试配置、确认并展示最终配置摘要。
配置写入使用 jq 合并到 ~/.codex/.omx-config.json 的 notifications.slack 字段,并设置 notifications.enabled 为 true。
用户也可以跳过向导,直接在 shell 配置文件中设置环境变量:
export OMX_SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..." export OMX_SLACK_MENTION="<!channel>" # 可选
环境变量会被通知系统自动检测,无需 .omx-config.json。
重新配置可运行 /configure-slack;配置 Discord 使用 /configure-discord;配置 Telegram 使用 /configure-telegram。
适用场景
适用于希望在使用 Codex 时通过 Slack 接收会话状态提醒的用户,尤其是长时间运行的任务需要输入提醒,或希望在会话结束时收到通知的场景。
限制
- 覆盖频道需要 webhook 对该频道拥有权限。
- 测试通知可能返回错误:400 Bad Request(JSON 格式错误或频道覆盖无效)、403 Forbidden(webhook 不允许频道覆盖)、404 Not Found(webhook URL 无效或已撤销,需在 Slack 重新生成)。
- 提及用户需要提供 Slack member ID(点击用户资料 > More > Copy member ID)。
- 关于收费、价格、平台支持范围等更多信息,资料中暂未提供。