← ClaudeAtlas

feishu-session-notifylisted

把 Claude Code、Codex 等 Agent 的每轮交付推送成飞书 1v1 卡片通知,支持结束后发送、结构化摘要、App 配色、真实 Session 标题与内部任务过滤。用户要求“完成后发飞书通知”、安装或迁移通知能力、调整卡片内容与样式,或排查漏发、早发、重复发送、标题/轮次/耗时不正确时使用。
AMortalsOdyssey/feishu-session-notify · ★ 0 · AI & Automation · score 72
Install: claude install-skill AMortalsOdyssey/feishu-session-notify
# 飞书交付通知 让用户离开电脑后仍能知道 Agent 何时完成、交付了什么、是否需要回来验收。每个正式用户轮次都要通知;内部任务和 subagent 不要通知。 ## 交付本轮 在最终回答前暂存摘要: ```bash python3 /path/to/feishu-session-notify/notify.py \ --cli-session <session-or-thread-id> \ --summary "第一项交付 第二项交付 关键限制或待验收项" ``` - 只暂存,不发送网络请求;让结束回调在输出完整结束后发送。 - 不要在正常交付中使用 `--now`。 - 使用纯文本白话,最多 3 行,一行一件事;不要手写列表符号。 - 给出明确的 `--cli-session`,避免多会话环境猜错。 - Claude Code 使用 session id;Codex 使用 thread id。 ## 保持卡片规则 - 每个新轮次发送一张新卡片;保留旧卡,不归档、不撤回。 - 同一轮重复交付时 PATCH 最新卡片,不制造第二条通知。 - 标题格式使用 `Session 标题 · 第 N 轮`。 - 副标题只放项目名。 - 正文依次展示用户问题、最多 3 条摘要和耗时。 - Claude 使用橙色,Codex 使用蓝色,Cursor 使用灰色。 - 通知栏使用 `App · Session 标题|本轮摘要`。 - 不添加虚假的消息级跳转链接��当前 Agent 客户端没有稳定的消息锚点。 ## 获取会话数据 - Claude:从桌面版 session 元数据和 transcript 配对当前用户轮次。 - Codex:优先从 `session_index.jsonl` 获取侧边栏显示标题,从线程数据库获取 cwd、来源和 rollout,再从 rollout 获取真实用户轮次与耗时。 - Codex 只通知正式线程库中的根用户任务或自动化任务。 - 遇到无正式 thread、无 rollout、无用户轮次、turn id 不匹配或 `thread_source=subagent` 时直接跳过。 - 取问题时从本轮助手输出向前匹配用户消息,不要简单取 transcript 的最后一条用户消息。 ## 首次安装 1. 确认 `opencli lark-cli --profile <profile> whoami` 返回 bot 身份。 2. 复制 `config.example.json` 到 `~/.claude/feishu-notify.json`,填写 `receiver_open_id` 和 `lark_profile`。 3. 安装对应回调: ```bash # Claude Code python3 /path/to/feishu-session-notify/notify.py --install-hook # Codex python3 /path/to/feishu-session-notify/notify.py --install-codex-hook ``` 安装器必须保持幂等、先备份原配置;Codex 必须串联已有 `notify` 命令。 ## 验证 ```bash python3 -m unittest -v test_notify.py python3 /path/to/skill-creator/scripts/quick_validate.py /path/to/fe