feishu-cli-wiki

📁 riba2534/feishu-cli 📅 5 days ago
10
总安装量
4
周安装量
#29457
全站排名
安装命令
npx skills add https://github.com/riba2534/feishu-cli --skill feishu-cli-wiki

Agent 安装分布

openclaw 4
replit 1
amp 1
opencode 1
codex 1

Skill 文档

飞书知识库操作技能

操作飞书知识库(Wiki),包括获取节点信息、导出文档、列出空间和节点。

核心概念

Markdown 作为中间态:知识库文档与本地文件之间通过 Markdown 格式进行转换,中间文件存储在 /tmp 目录中。

使用方法

/feishu-wiki get <node_token|url>        # 获取节点信息
/feishu-wiki export <node_token|url>     # 导出为 Markdown
/feishu-wiki spaces                       # 列出知识空间
/feishu-wiki nodes <space_id>            # 列出空间下的节点

CLI 命令详解

1. 获取知识库节点信息

# 通过 Token 获取
feishu-cli wiki get <node_token>

# 通过 URL 获取(自动解析)
feishu-cli wiki get https://xxx.feishu.cn/wiki/<node_token>
feishu-cli wiki get https://xxx.larkoffice.com/wiki/<node_token>

输出示例:

知识库节点信息:
  空间 ID:     <space_id>
  节点 Token:  <node_token>
  文档 Token:  <document_token>
  文档类型:    docx
  标题:        示例文档标题
  创建者:      ou_xxx
  所有者:      ou_xxx

2. 导出知识库文档为 Markdown

# 基本导出(输出到 stdout)
feishu-cli wiki export <node_token>

# 导出到文件
feishu-cli wiki export <node_token> --output /tmp/wiki_doc.md

# 通过 URL 导出
feishu-cli wiki export https://xxx.larkoffice.com/wiki/<token> -o doc.md

# 下载图片到本地
feishu-cli wiki export <node_token> -o doc.md --download-images --assets-dir ./images

参数说明:

参数 说明 默认值
--output, -o 输出文件路径 stdout
--download-images 下载图片到本地 false
--assets-dir 图片保存目录 ./assets

3. 列出知识空间

feishu-cli wiki spaces

输出示例:

知识空间列表:
  1. 空间ID: <space_id>
     名称: 技术文档
     类型: team

  2. 空间ID: 7123456789012345678
     名称: 个人笔记
     类型: personal

4. 列出空间下的节点

feishu-cli wiki nodes <space_id>

输出示例:

节点列表(空间: <space_id>):
  1. <node_token_1>
     标题: 示例文档 1
     类型: docx

  2. <node_token_2>
     标题: API Reference
     类型: docx

URL 格式支持

URL 格式 说明
https://xxx.feishu.cn/wiki/<token> 飞书国内版
https://xxx.larkoffice.com/wiki/<token> 飞书国际版/内部版
https://xxx.larksuite.com/wiki/<token> Lark 国际版

典型工作流

导出知识库文档进行分析

# 1. 获取节点信息
feishu-cli wiki get https://xxx.feishu.cn/wiki/<node_token>

# 2. 导出为 Markdown
feishu-cli wiki export <node_token> -o /tmp/wiki_doc.md

# 3. 分析文档内容
cat /tmp/wiki_doc.md

批量导出空间文档

# 1. 列出空间
feishu-cli wiki spaces

# 2. 列出节点
feishu-cli wiki nodes <space_id>

# 3. 逐个导出
feishu-cli wiki export <token1> -o /tmp/doc1.md
feishu-cli wiki export <token2> -o /tmp/doc2.md

识别目录节点

知识库文档可能是目录节点(包含子节点),通过以下方式识别:

1. 使用 wiki get 查看节点信息

feishu-cli wiki get <node_token>

输出中的 has_child 字段表示是否有子节点:

知识库节点信息:
  空间 ID:     xxx
  节点 Token:  xxx
  文档 Token:  xxx
  文档类型:    docx
  节点类型:    origin
  标题:        目录节点示例
  有子节点:    true    <-- 表示这是目录节点

2. 导出时识别目录节点

当导出目录节点时,如果文档内容显示为:

<!-- Unknown block type: 42 -->

说明这是一个Wiki 目录块(block_type=42),表示该节点是知识库目录,子文档列表存储在知识库元数据中,而非文档内容中。

3. 获取子节点列表

对于目录节点,使用以下命令获取子节点:

# 1. 先获取节点信息,记录 space_id
feishu-cli wiki get <node_token>

# 2. 列出该节点下的子节点
feishu-cli wiki nodes <space_id> --parent <node_token>

示例工作流:

# 获取知识库节点
feishu-cli wiki get WvHQwCaDKiJZAjkm354cvZNjnxd
# 输出:有子节点: true, 空间 ID: 7540365701802885139

# 获取子节点列表
feishu-cli wiki nodes 7540365701802885139 --parent WvHQwCaDKiJZAjkm354cvZNjnxd
# 输出:列出所有子节点及其文档类型

注意事项

  1. 知识库 vs 普通文档:知识库使用 node_token,普通文档使用 document_id
  2. 权限要求:需要应用具有 wiki:wiki:readonly 权限
  3. 中间文件:导出的 Markdown 默认存放在 /tmp 目录
  4. 目录节点:目录节点的内容可能为空或只包含 WikiCatalog 块(type=42),实际内容在子节点中

图片处理(重要)

导出文档时务必下载图片,以便理解文档中的图片内容:

# 导出并下载图片
feishu-cli wiki export <node_token> \
  --output /tmp/wiki_doc.md \
  --download-images \
  --assets-dir /tmp/wiki_assets

# 查看下载的图片
ls /tmp/wiki_assets/

# 使用 Read 工具读取图片(Claude 支持多模态)
# Read /tmp/wiki_assets/image_1.png

流程:

  1. 导出时使用 --download-images --assets-dir <dir> 下载图片
  2. 使用 ls 查看下载的图片文件
  3. 使用 Read 工具逐个读取图片,理解图片内容
  4. 将图片内容整合到文档分析中