用途:feishu-cli event 用于订阅飞书开放平台应用事件,基于 WebSocket 长连接接收事件并以 NDJSON(每行一条 JSON)写到 stdout,适用于 AI Agent 实时响应 bot 消息、群消息监听、表情回复、审批回调等场景。它只负责接收事件,不负责发消息(发消息用 feishu-cli-msg)。
主要能力:event list 列出支持的 EventKey(按 im/contact/calendar/drive/approval/vc 等 domain 分组,22+ 个);event schema <event_key> 查看 EventType、scope、payload schema;event consume <event_key> 启动阻塞式订阅,一个进程对应一个 EventKey;event status 查看本机活跃 consumer;event stop 按 PID、EventKey 或 --all 停止。consume 支持 --max-events N、--timeout 60s、--output-dir ./events、--quiet、--jq .event.xxx(仅点路径)等参数。状态文件位于 ~/.feishu-cli/events/<app_id>/bus.json,用 flock 做跨进程互斥与原子写。
使用方式:先运行 feishu-cli event consume im.message.receive_v1 订阅,或加 --max-events 5 --timeout 60s 调试;配合外部 jq 过滤,如 feishu-cli event consume im.message.receive_v1 | jq 'select(...)'。Agent 后台运行时建议 run_in_background,先等 stderr 出现 [event] ready event_key=<key>,再额外等 1-3 秒完成 WS 握手;退出可用 event stop 或关闭子进程 stdin(reason=signal)。需要先配置 App Token(config.yaml 或 FEISHU_APP_ID/FEISHU_APP_SECRET),并在飞书开放平台开启“长连接接收事件”、勾选目标 EventType、发布版本,再按 schema 开通对应 scope。
限制:consume 会持续阻塞,不自动退出,需显式 stop 或设置超时/事件数;--jq 仅支持 .a.b.c 点路径,不支持 select/数组下标/管道;--output-dir 只接受安全相对路径(不支持 ~、绝对路径、..);断线自动重连为无限重试,长时间断线建议用 --timeout 由外层守护拉起;--output-dir 高频事件会产生大量小文件。Webhook URL 模式与批量拉取历史消息不在本技能范围。payload schema 为手工整理,实际以飞书开放平台文档为准;其余如安装方式等细节暂未提供。