Skip to main content
Glama
ZLZLGe

feishu-automation

by ZLZLGe
WARNING

本项目已停止维护

飞书官方现已发布并持续维护 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 status

Feishu Automation

让本地 Codex 通过 MCP 操作飞书文档、文件夹和附件,并通过飞书自定义机器人 Webhook 主动推送消息或自动转发每轮最终回复。

仓库同时包含:

  • 可被 Codex 自动加载的 Skill。

  • 本地 feishu_automation MCP 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 IDApp Secret 用于文档 API;自定义机器人的 webhook_url 只用于群消息推送,两者互不替代。

让 Codex 引导配置

安装 Skill 后,推荐直接在 Codex 中输入:

使用 $feishu-automation 带我从零配置飞书。请先解释需要创建什么,然后主动打开相应的飞书官方页面,每完成一步再带我做下一步。

Codex 应当先解释“企业自建应用”和“自定义机器人 Webhook”的区别,然后主动打开飞书开发者后台,引导你完成以下过程:

  1. 点击 创建企业自建应用,创建一个仅供当前企业使用的 API 身份。

  2. 凭证与基础信息 找到 App ID 和 App Secret。

  3. 权限管理 开通文档、文件夹、附件和分享相关权限。

  4. 版本管理与发布 创建并发布新版本,使权限生效。

  5. 在目标群的 设置 > 群机器人 > 添加机器人 > 自定义机器人 创建 Webhook。

  6. 提供任意一条本组织的飞书文档链接,由 Codex 自动识别组织域名。

  7. 由 Codex 自己运行配置脚本、保存私密配置并注册 MCP,无需用户操作终端。

用户提供 App Secret 和完整 Webhook URL 后,Codex 不应在回复中复述,也不能把它们写入命令行参数、日志或 Git。配置脚本通过交互输入接收这些值,并保存到本机私密配置文件。

如果 Codex 无法控制浏览器,可从仓库根目录运行:

python scripts/open_setup.py developer-console

Windows 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:document

  • docx:document.block:convert

  • space: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.py

Windows PowerShell 使用:

& .\.venv\Scripts\python.exe .\scripts\configure.py

依次输入:

  1. 飞书应用 App ID

  2. 飞书应用 App Secret

  3. 自定义机器人完整 Webhook URL。

  4. 任意一条本组织的飞书文档链接,例如 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 工具

工具

用途

create_feishu_folder

创建飞书云空间文件夹

create_feishu_document

创建 DocX 并可选写入 Markdown

read_feishu_document

读取文档纯文本和元数据

read_feishu_blocks

读取结构化 DocX Block

append_feishu_markdown

在文档末尾追加 Markdown

update_feishu_text_block

校验原文本后修改单个文本 Block

replace_feishu_document

校验文档 ID 和版本后替换正文

list_feishu_attachments

列出文档附件

upload_feishu_attachment

上传不超过 20 MB 的附件

download_feishu_attachment

下载附件到本地

send_feishu_webhook

通过自定义机器人发送消息或文档链接

详细行为见 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.md

Windows 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-run

Windows 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 必须先征得用户同意。

本地数据与密钥

路径

内容

~/.config/codex/feishu-automation/config.json

App ID、App Secret、Webhook 和默认目录配置;Windows 中 ~%USERPROFILE%

~/Documents/Feishu

默认附件下载目录

~/.codex/skills/feishu-automation

指向本仓库的 Skill 软链接或 Windows 目录联接

~/.codex/config.toml

Codex MCP 注册信息,不保存飞书密钥

不要将真实配置文件、访问令牌或完整 Webhook URL提交到 Git。仓库中的 assets/config.example.json 只有占位值。

验证

运行离线测试。macOS/Linux:

.venv/bin/python -m unittest discover -s tests -v

Windows 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.py

License

本项目采用 MIT License 开源。你可以使用、复制、修改、合并、发布和分发本项目,但需保留原始版权声明和许可证文本。