feishu-docs

Installation
SKILL.md

Feishu Docs Skill

你正在管理飞书文档操作技能。 用户数据存储在 ~/.feishu-docs/

首先,通过查找这个 SKILL.md 文件来定位技能目录:

  • 使用 Glob 模式 **/skills/**/feishu-docs/SKILL.md 找到其路径,然后从中推导技能根目录。
  • 将该路径在脑中记为 SKILL_DIR,用于后续所有文件引用。

命令解析

$ARGUMENTS 中解析用户意图,映射到以下子命令之一:

用户说(示例) 子命令
setup, configure, 配置 setup
create <title>, 创建文档 <title> create
list, 列出文档 list
read <docToken>, 读取文档 <docToken> read
update <docToken> <content>, 更新文档 <docToken> update
delete <docToken>, 删除文档 <docToken> delete

提取可选参数。

运行时检测

在执行任何子命令之前,检测你运行在哪个环境中:

  1. 交互式技能宿主AskUserQuestion 工具可用。使用它进行交互式设置向导。
  2. 非交互式宿主AskUserQuestion 不可用。回退到非交互式指导:解释步骤,展示 SKILL_DIR/config.env.example,并要求用户手动创建 ~/.feishu-docs/config.env

你可以通过检查 AskUserQuestion 是否在可用工具列表中来测试这一点。

配置检查(适用于 createlistreadupdatedelete

在运行除 setup 之外的任何子命令之前,检查 ~/.feishu-docs/config.env 是否存在:

  • 如果不存在:
    • 在交互式宿主中:告诉用户 "未找到配置" 并自动使用 AskUserQuestion 启动 setup 向导。
    • 在非交互式宿主中:告诉用户 "未找到配置。请根据示例创建 ~/.feishu-docs/config.env:" 然后展示 SKILL_DIR/config.env.example 的内容并停止。不要尝试执行文档操作。
  • 如果存在: 继续执行请求的子命令。

子命令

setup

运行交互式设置向导。此子命令需要 AskUserQuestion。如果不可用,则展示 SKILL_DIR/config.env.example 的内容并附带逐字段说明,指导用户手动创建配置文件。

当 AskUserQuestion 可用时,逐个字段收集输入。每次回答后,向用户确认该值(密钥只显示最后 4 个字符),然后再进入下一个问题。

步骤 1 — 配置

收集以下信息:

  1. App ID - 从飞书开放平台获取
  2. App Secret - 从飞书开放平台获取
  3. Domain(可选)- 默认 https://open.feishu.cn,国际版用 https://open.larksuite.com
  4. 默认文件夹 Token(可选)- 文档创建的默认位置

在询问凭证之前,先阅读 SKILL_DIR/references/setup-guide.md 并向用户展示相关平台指南。

步骤 2 — 写入配置并验证

  1. 展示最终摘要表,所有设置清晰展示(密钥只显示最后 4 个字符)
  2. 在写入前询问用户确认
  3. 使用 Bash 创建目录结构:mkdir -p ~/.feishu-docs/{data,logs}
  4. 使用 Write 创建 ~/.feishu-docs/config.env,所有设置采用 KEY=VALUE 格式
  5. 使用 Bash 设置权限:chmod 600 ~/.feishu-docs/config.env
  6. 验证凭证:
    • 使用 Write 创建仅当前验证使用的临时 JSON 文件,例如 ~/.feishu-docs/data/auth-check.json
    • 文件内容包含 app_idapp_secret
    • 使用 Bash 调用:curl -s -X POST "${DOMAIN}/open-apis/auth/v3/tenant_access_token/internal" -H "Content-Type: application/json" --data-binary "@$HOME/.feishu-docs/data/auth-check.json"
    • 验证后立即删除临时文件
    • 只向用户报告 code / msg / 成功与否,绝不回显请求体、App ID 或 App Secret
  7. 报告结果并附带摘要表。如果任何验证失败,解释可能出错的地方以及如何修复。
  8. 成功时,告诉用户:"设置完成!现在可以使用飞书文档命令了。"

create <title> [content]

创建新的飞书文档。

  1. 从参数中提取标题和可选内容
  2. 如果未提供内容,提示用户输入或从剪贴板/当前文件读取
  3. 使用 Write 创建临时参数文件(JSON),例如 ~/.feishu-docs/data/create-args.json
  4. 写入 { "command": "create", "title": "...", "content": "..." }
  5. 调用 node SKILL_DIR/scripts/feishu-docs.js --args-file "$HOME/.feishu-docs/data/create-args.json"
  6. 运行后删除临时参数文件
  7. 向用户展示结果,包括文档链接

list

列出最近的飞书文档。

运行:node SKILL_DIR/scripts/feishu-docs.js list

展示文档列表,包括标题、最后修改时间和文档链接。

read <docToken>

读取飞书文档内容。

  1. 使用 Write 创建临时参数文件(JSON),例如 ~/.feishu-docs/data/read-args.json
  2. 写入 { "command": "read", "docToken": "..." }
  3. 运行:node SKILL_DIR/scripts/feishu-docs.js --args-file "$HOME/.feishu-docs/data/read-args.json"
  4. 运行后删除临时参数文件

展示文档内容。如果内容较长,可以分段展示。

update <docToken> <content>

更新飞书文档内容。

  1. 使用 Write 创建临时参数文件(JSON),例如 ~/.feishu-docs/data/update-args.json
  2. 写入 { "command": "update", "docToken": "...", "content": "..." }
  3. 运行:node SKILL_DIR/scripts/feishu-docs.js --args-file "$HOME/.feishu-docs/data/update-args.json"
  4. 运行后删除临时参数文件

delete <docToken>

删除飞书文档。

  1. 在删除前先确认
  2. 使用 Write 创建临时参数文件(JSON),例如 ~/.feishu-docs/data/delete-args.json
  3. 写入 { "command": "delete", "docToken": "..." }
  4. 运行:node SKILL_DIR/scripts/feishu-docs.js --args-file "$HOME/.feishu-docs/data/delete-args.json"
  5. 运行后删除临时参数文件
  6. 向用户明确说明该操作会将文档移入回收站

注意事项

  • 始终在输出中掩码密钥(只显示最后 4 个字符)
  • 配置文件权限应为 600
  • 文档操作需要相应的飞书 API 权限
  • 不要把密钥、Token、用户内容直接内联到 shell 命令里;优先使用临时文件传参
  • 错误输出只报告必要的状态信息,不回显原始请求体或完整异常对象
Related skills

More from d-wwei/feishu-docs-skill

Installs
1
GitHub Stars
3
First Seen
Mar 24, 2026