← 返回
未分类

Feishu Sheet Links

Extract all hyperlinks from a public Feishu spreadsheet across all sheet tabs, and optionally batch-download the linked articles as Markdown files. Use when...
wangyan9110
未分类 clawhub v1.0.0 100000 Key: 无需
★ 0
Stars
📥 279
下载
💾 0
安装

概述

feishu-sheet-links

Extracts all hyperlinks from every sheet tab of a public Feishu spreadsheet, then optionally batch-downloads the linked articles as Markdown files.

Workflow

When invoked, follow these steps:

Step 1 — Get the URL

If the user has already provided a Feishu URL, use it. Otherwise ask:

> "请提供飞书多维表格的链接(公开可访问的)"

Confirm the URL looks like https://.feishu.cn/wiki/... or https://.feishu.cn/sheets/....

Step 2 — Extract links

Resolve the skill directory:

SKILL_DIR="$(find ~/.claude/skills /workspace/.claude/skills -maxdepth 1 -name feishu-sheet-links -type d 2>/dev/null | head -1)"

Run the extraction script:

npx -y bun "${SKILL_DIR}/scripts/main.ts" "<spreadsheet-url>" -o feishu-links.json

Each sheet tab takes 8–15 seconds to load — let the user know it may take a moment.

Step 3 — Show a summary

After extraction, show the user a summary:

  • How many sheets were found
  • How many links per sheet (with sheet names)
  • Total link count

Example:

Found 4 sheets, 127 links total:
- 1月: 32 links
- 2月: 28 links
- 3月: 35 links
- 4月: 32 links

Saved to: feishu-links.json

Step 4 — Offer to download articles

Ask the user if they want to download the linked articles as Markdown:

> "是否需要批量下载这些文章为 Markdown 文件?"

If yes, ask for an output directory (default: ./feishu-articles), then run:

npx -y bun "${SKILL_DIR}/scripts/download.ts" feishu-links.json \
  -o <output-dir> \
  -c 5 \
  --max-wait 20000

Download supports resume — if interrupted, re-running skips already-downloaded files.

Error Handling

SituationAction
-------------------
Document is private / requires loginTell the user — this tool only works with public Feishu docs
Chrome not foundAsk user to install Chrome, or set FEISHU_CHROME_PATH
A sheet times outWarn and continue — other sheets will still be extracted
Zero links foundConfirm the URL is correct and the doc is publicly accessible

How It Works

  1. Reuses an existing Chrome instance if available (ports 64023, 9222, 9229), otherwise launches its own isolated instance
  2. Opens the spreadsheet to discover all sheet IDs from spreadApp.collaborativeSpread._spread.sheetIdToIndexMap
  3. For each sheet, opens a dedicated tab at ?sheet=, calls setActiveSheetIndex() to trigger lazy loading, and waits for sheet._dataModel.contentModel to populate
  4. Extracts links from two Feishu storage formats:
    • url-typecontentModel.link.idToRef._map (whole-cell hyperlinks)
    • mention-typecontentModel.segmentModel.table (inline rich-text links)

Environment Variables

VariableDescription
-----------------------
FEISHU_CHROME_PATHCustom Chrome executable path
FEISHU_CHROME_PROFILECustom Chrome profile directory

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-08 03:52 安全 安全

安全检测

暂无安全检测报告