feishu-automation
本项目已停止维护
飞书官方现已发布并持续维护 Lark/Feishu CLI,已覆盖飞书文档、Wiki、云盘、附件、用户授权和 Agent Skills 等能力。
本仓库不再更新,也不建议用于新项目,仅保留作为历史参考。新项目请直接使用飞书官方 CLI。
官方 CLI 快速开始:
npx @larksuite/cli@latest install
lark-cli config init --new
lark-cli auth login --recommend
lark-cli auth statusFeishu Automation
让本地 Codex 通过 MCP 操作飞书文档、文件夹和附件,并通过飞书自定义机器人 Webhook 主动推送消息或自动转发每轮最终回复。
仓库同时包含:
可被 Codex 自动加载的 Skill。
本地
feishu_automationMCP Server。飞书企业自建应用配置脚本。
自定义机器人 Webhook 发送器。
Codex 每轮最终回复通知适配器。
“每日 AI 日报”完整示例。
功能
能力 | 说明 |
创建文档 | 创建飞书 DocX,可直接写入 Markdown 内容 |
读取文档 | 读取 Wiki/DocX 的标题、正文、版本及结构化 Block |
编辑文档 | 追加 Markdown、修改指定文本 Block、替换整篇正文 |
文件夹 | 创建由飞书应用管理的云空间文件夹 |
附件 | 列出、上传和下载文档附件 |
Webhook 通知 | 向自定义机器人所在群发送文本、摘要和文档链接 |
Codex 最终回复通知 | 每轮结束后只把最终回复自动转发到飞书,不发送用户问题或中间进度 |
日报发布 | 将 Markdown 发布为 DocX,再把三条摘要和全文链接发到群里 |
工作方式
Codex
-> feishu_automation MCP
-> 飞书企业自建应用 API
-> 创建、读取和编辑 DocX / 附件
日报或任务结果
-> 飞书自定义机器人 Webhook
-> 固定飞书群通知
Codex agent-turn-complete 事件
-> codex_notify_feishu.py 提取最终回复
-> 飞书自定义机器人 Webhook企业应用的 App ID、App Secret 用于文档 API;自定义机器人的 webhook_url 只用于群消息推送,两者互不替代。
让 Codex 引导配置
安装 Skill 后,推荐直接在 Codex 中输入:
使用 $feishu-automation 带我从零配置飞书。请先解释需要创建什么,然后主动打开相应的飞书官方页面,每完成一步再带我做下一步。Codex 应当先解释“企业自建应用”和“自定义机器人 Webhook”的区别,然后主动打开飞书开发者后台,引导你完成以下过程:
点击 创建企业自建应用,创建一个仅供当前企业使用的 API 身份。
在 凭证与基础信息 找到 App ID 和 App Secret。
在 权限管理 开通文档、文件夹、附件和分享相关权限。
在 版本管理与发布 创建并发布新版本,使权限生效。
在目标群的 设置 > 群机器人 > 添加机器人 > 自定义机器人 创建 Webhook。
提供任意一条本组织的飞书文档链接,由 Codex 自动识别组织域名。
由 Codex 自己运行配置脚本、保存私密配置并注册 MCP,无需用户操作终端。
用户提供 App Secret 和完整 Webhook URL 后,Codex 不应在回复中复述,也不能把它们写入命令行参数、日志或 Git。配置脚本通过交互输入接收这些值,并保存到本机私密配置文件。
如果 Codex 无法控制浏览器,可从仓库根目录运行:
python scripts/open_setup.py developer-consoleWindows PowerShell 可运行:
& .\.venv\Scripts\python.exe .\scripts\open_setup.py developer-console完整逐步说明见 references/setup.md。
前置条件
Windows 10/11、macOS 或 Linux。
Python 3.11 及以上版本。
Codex Desktop 或 Codex CLI;配置时应确保
codex --version可以在终端运行。Windows 原生安装需要 PowerShell 5.1 或 PowerShell 7。
能够登录飞书开放平台并创建企业自建应用;首次使用时可由 Skill 逐步引导。
能够在目标群添加自定义机器人;首次使用时可由 Skill 逐步引导。
飞书应用按需开通以下权限,并在修改权限后发布新的应用版本:
docx:documentdocx:document.block:convertspace:folder:create上传和下载云文档图片、附件的权限
修改云文档权限设置的权限
需要访问 Wiki 时,开通知识空间节点读取权限
权限名称和配置细节见 references/setup.md。已有文档或文件夹还必须位于应用可访问的数据范围内。
需要通过 MCP 修改已有文档时,还必须把飞书企业应用添加为该文档的协作者,并授予 可编辑 权限,不能只给 可阅读。开放平台中的 API Scope 和具体文档的协作者权限是两层独立授权;前者开通后,应用不会自动获得所有文档的编辑权。
安装(macOS/Linux)
git clone https://github.com/ZLZLGe/feishu-automation.git
cd feishu-automation
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt将仓库注册为本地 Codex Skill:
mkdir -p ~/.codex/skills
ln -s "$PWD" ~/.codex/skills/feishu-automation如果该路径已经存在,不要覆盖;确认它是否已经指向当前仓库:
readlink ~/.codex/skills/feishu-automation安装(Windows PowerShell)
git clone https://github.com/ZLZLGe/feishu-automation.git
Set-Location feishu-automation
py -3.11 -m venv .venv
& .\.venv\Scripts\python.exe -m pip install -r requirements.txt将仓库注册为本地 Codex Skill。目录联接不要求开启 Windows 开发者模式:
$SkillRoot = Join-Path $HOME ".codex\skills"
$SkillPath = Join-Path $SkillRoot "feishu-automation"
New-Item -ItemType Directory -Force -Path $SkillRoot | Out-Null
New-Item -ItemType Junction -Path $SkillPath -Target (Get-Location).Path如果 $SkillPath 已经存在,不要覆盖。用下面的命令检查其目标:
(Get-Item $SkillPath).Target配置实现参考
通常由 Skill 指挥 Codex 自动执行,不需要用户手动运行。macOS/Linux 使用:
.venv/bin/python scripts/configure.pyWindows PowerShell 使用:
& .\.venv\Scripts\python.exe .\scripts\configure.py依次输入:
飞书应用
App ID。飞书应用
App Secret。自定义机器人完整 Webhook URL。
任意一条本组织的飞书文档链接,例如
https://example.feishu.cn/wiki/...。
脚本会从文档链接自动提取 https://example.feishu.cn,不要求用户理解或单独填写“租户地址”。
配置脚本会:
将凭据保存到
~/.config/codex/feishu-automation/config.json。macOS/Linux 将配置文件权限设置为
600;Windows 将 ACL 限制为当前用户。创建默认下载目录
~/Documents/Feishu。将 MCP Server 注册为
feishu_automation。
完成后重启 Codex,并检查 MCP:
codex mcp get feishu_automation在 Codex 中使用
可以直接描述任务,例如:
修改已有文档前,Codex 应先提醒你确认企业应用在该文档上拥有 可编辑 权限;如果只有 可阅读 权限,MCP 只能读取,不能追加或修改内容。
使用 $feishu-automation 创建一篇名为“项目周报”的飞书文档,并写入这个 Markdown 文件。读取这篇飞书文档,修改“实验结论”这一段,其他内容不要动:https://example.feishu.cn/docx/...列出这篇文档的附件,把 result.csv 下载到默认目录。通过飞书 Webhook 发一条任务完成通知,并附上这篇文档的链接。MCP 工具
工具 | 用途 |
| 创建飞书云空间文件夹 |
| 创建 DocX 并可选写入 Markdown |
| 读取文档纯文本和元数据 |
| 读取结构化 DocX Block |
| 在文档末尾追加 Markdown |
| 校验原文本后修改单个文本 Block |
| 校验文档 ID 和版本后替换正文 |
| 列出文档附件 |
| 上传不超过 20 MB 的附件 |
| 下载附件到本地 |
| 通过自定义机器人发送消息或文档链接 |
详细行为见 references/tools.md。
每日 AI 日报
日报 Markdown 中加入以下结构,脚本会提取前三条作为群通知摘要:
## 今日速览
- 第一条重点。
- 第二条重点。
- 第三条重点。发布日报。macOS/Linux:
.venv/bin/python scripts/publish_daily_report.py \
--title "AI 前沿热点日报 2026-08-12" \
--file examples/daily-ai-report/report-template.mdWindows PowerShell:
& .\.venv\Scripts\python.exe .\scripts\publish_daily_report.py `
--title "AI 前沿热点日报 2026-08-12" `
--file .\examples\daily-ai-report\report-template.md执行顺序是:创建 DocX、写入完整 Markdown、设置组织内链接可读、提取三条摘要、通过 Webhook 推送摘要和全文链接。该命令会产生真实的飞书写入和群消息。
更多说明见 references/daily-ai-report.md。
单独发送 Webhook
先检查消息结构,不实际发送。macOS/Linux:
.venv/bin/python scripts/send_webhook.py \
--message "任务已完成" \
--dry-runWindows PowerShell:
& .\.venv\Scripts\python.exe .\scripts\send_webhook.py `
--message "任务已完成" `
--dry-run实际发送文本和链接:
.venv/bin/python scripts/send_webhook.py \
--title "任务完成" \
--message "结果文档已经生成。" \
--link-url "https://example.feishu.cn/docx/..." \
--link-text "查看结果"Windows PowerShell:
& .\.venv\Scripts\python.exe .\scripts\send_webhook.py `
--title "任务完成" `
--message "结果文档已经生成。" `
--link-url "https://example.feishu.cn/docx/..." `
--link-text "查看结果"当前发送器支持 URL 型自定义机器人 Webhook,不支持时间戳/签名校验模式。如果机器人启用了关键词校验,消息中必须包含配置的关键词。
每轮最终回复自动通知
该功能通过 Codex 用户级 notify 配置调用 scripts/codex_notify_feishu.py。它只处理 agent-turn-complete 事件,只转发每轮结束后的最终回复 last-assistant-message;不会转发用户问题、工具调用或中间进度,也不需要常驻进程和轮询。
让 Codex 自动配置时,可以直接输入:
使用 $feishu-automation 配置每轮最终回复的飞书通知。保留我现有的 notify,不发送真实测试消息,先做 dry run。没有旧通知器时,用户级 ~/.codex/config.toml 的结构如下。实际配置时应使用当前仓库和 Python 的绝对路径:
notify = [
"/absolute/path/to/python",
"/absolute/path/to/feishu-automation/scripts/codex_notify_feishu.py",
]Codex 会在每轮结束时把事件 JSON 追加为最后一个参数。Webhook 仍从私密配置 ~/.config/codex/feishu-automation/config.json 读取,不写入 config.toml;适配器不会创建本地通知日志。若已有通知器,Skill 会先备份配置,再通过 --previous-notifier-json 保留原通知链路。
离线检查消息格式,不连接飞书:
.venv/bin/python scripts/codex_notify_feishu.py --dry-run \
'{"type":"agent-turn-complete","cwd":"/work/example","last-assistant-message":"示例最终回复"}'完整配置流程和 Windows 示例见 references/codex-final-reply-notify.md。发送真实测试通知前,Codex 必须先征得用户同意。
本地数据与密钥
路径 | 内容 |
| App ID、App Secret、Webhook 和默认目录配置;Windows 中 |
| 默认附件下载目录 |
| 指向本仓库的 Skill 软链接或 Windows 目录联接 |
| Codex MCP 注册信息,不保存飞书密钥 |
不要将真实配置文件、访问令牌或完整 Webhook URL提交到 Git。仓库中的 assets/config.example.json 只有占位值。
验证
运行离线测试。macOS/Linux:
.venv/bin/python -m unittest discover -s tests -vWindows PowerShell:
& .\.venv\Scripts\python.exe -m unittest discover -s tests -v验证 Skill 结构。macOS/Linux:
python3 ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py .Windows PowerShell:
$Validator = Join-Path $HOME ".codex\skills\.system\skill-creator\scripts\quick_validate.py"
& .\.venv\Scripts\python.exe $Validator .当前测试覆盖配置文件权限、DocX 创建、文件夹、附件流程、文档权限、Webhook 载荷、Codex 最终回复通知、日报组合流程和 MCP 工具清单。
GitHub Actions 会在 Windows、macOS 和 Linux 上运行同一套测试。Windows Runner 还会真实验证配置文件的当前用户专用 ACL。
遇到权限、Wiki 解析、文档链接或 MCP 加载问题时,查看 references/troubleshooting.md。
目录
feishu-automation/
├── LICENSE
├── README.md
├── SKILL.md
├── agents/openai.yaml
├── assets/config.example.json
├── examples/daily-ai-report/
├── references/
│ ├── codex-final-reply-notify.md
│ └── ...
├── scripts/
│ ├── codex_notify_feishu.py
│ ├── configure.py
│ ├── feishu_mcp_server.py
│ ├── open_setup.py
│ ├── platform_support.py
│ ├── publish_daily_report.py
│ └── send_webhook.py
└── tests/test_feishu_automation.pyLicense
本项目采用 MIT License 开源。你可以使用、复制、修改、合并、发布和分发本项目,但需保留原始版权声明和许可证文本。