飞书个人版 · 一步落盘
用 --as user 把 markdown 直接创建到你的个人云空间根目录。OAuth 一次,之后所有 agent 复用。飞书个人版用户从这里起步。
RoboZephyr/open source/04 · lark-skills
把多步 lark-cli 调用打包成 Claude Code 和 Codex 可以直接 /run 的 Skill。一次 git clone,四个 slash command,任何项目目录都能用。
┌─────────────────┐ ┌──────────────────┐ │ 飞书 / Lark │ │ SKILL.md │ │ open API │ │ + config.yaml │ └────────┬────────┘ └────────┬─────────┘ │ │ ▼ ▼ ┌─────────────────────────────────────┐ │ lark-cli │ ← oauth, http, │ (npm i -g @larksuite/cli) │ retries └───────────────────┬─────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ /lark-doc-personal │ │ /lark-doc-deliver │ ← your agent │ /doc-summary │ just runs │ /weekly-report │ these └─────────────────────────────────────┘ Claude Code · Codex
the four skills
用 --as user 把 markdown 直接创建到你的个人云空间根目录。OAuth 一次,之后所有 agent 复用。飞书个人版用户从这里起步。
Bot 创建 docx → transfer_owner 给指定员工 → 发消息到群聊。所有协作步骤一次跑完,不会丢在 bot 的私人云空间。
按场景配置搜飞书文档(关键词 + 团队成员可见范围),筛选后生成结构化汇总,调用 lark-doc-deliver 创建文档并发群。技术设计文档扫描只是预设场景之一。
从 GitHub(可选 GitLab)拉 commit 数据,subagent 并行生成每人摘要,主 agent 合并为周报,自动创建飞书文档并发群通知 —— 避免长上下文溢出。
anatomy of a skill
skills/ └── weekly-report/ ├── SKILL.md ← Agent 读这个,知道何时触发、调谁 ├── config.yaml ← 你填的真实值(open_id / chat_id / repos) ├── config.example.yaml └── helpers/ ├── pull-commits.py ← shell-callable,subagent 并行调 └── summarize.py
每个 Skill = 一份 SKILL.md + 一份 config.yaml。前者是给 Agent 看的执行说明(什么时候触发、按什么顺序调 lark-cli、出什么);后者放你自己的飞书 open_id、群 chat_id、关键词清单。
Agent 拿到任务 → 读 SKILL.md → 按步骤调 lark-cli → 把 config.yaml 的值塞进去 → 出文档。没有 SaaS,没有要传到第三方服务器的密钥,没有 wrapper 层。
./install.sh 把每个 Skill 的入口写到 ~/.claude/commands/ 或 ~/.codex/instructions/,之后 /weekly-report 在任何项目目录都能跑 —— 因为它本来就不依赖项目,它依赖你的飞书账号。
why
lark-cli 容易在第三步走偏。飞书 API 不是单次调用 —— 是一组工作流:auth status → 准备 markdown → 创建 docx → transfer_owner → 发群聊。每步都有它自己的 token / 错误码 / 边界(个人版没有"员工"概念、bot 创建的文档默认落在 app 云空间用户看不见、跨空间 move API 会报 1061002)。
这就是 Skill 的形态:一份 Agent-readable 的步骤 + 一份你的真实配置。装好之后,/weekly-report 在你机器上任何项目目录都能直接跑。