Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/chuancyzhang/deepseek-coworknpx agentmods add skills/chuancyzhang/deepseek-cowork/feishu-docx-downloadWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/chuancyzhang/deepseek-cowork/feishu-docx-download)<a href="https://agentmods.dev/skills/chuancyzhang/deepseek-cowork/feishu-docx-download"><img src="https://agentmods.dev/badge/skills/chuancyzhang/deepseek-cowork/feishu-docx-download/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/chuancyzhang/deepseek-cowork/feishu-docx-download"><img src="https://agentmods.dev/badge/skills/chuancyzhang/deepseek-cowork/feishu-docx-download.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00106 | $0.01808 |
| Opus 5.5 | $0.00042 | $0.00723 |
| Sonnet 5.5 | $0.00021 | $0.00362 |
| Haiku 4.5 | $0.00011 | $0.00181 |
Grade A, and why
feishu-docx-download scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 132 lines — stays where its author put it; the contents beside it link to each section on GitHub.
feishu-docx-download
模块兼容:所有脚本均提供
.js和.mjs两个版本。优先使用.js,若报require is not defined错误则改用同名.mjs文件。
⚠️ 读完本文件后,不要检查文件是否存在、不要检查环境、不要列目录。脚本文件已就绪,直接用 exec 工具执行下方命令。
判断是否使用本技能
| URL 特征 | 文档形式 | 处理方式 |
|---|---|---|
含 /docx/ 或 /docs/ |
在线云文档 | 用 feishu-fetch-doc |
含 /wiki/,obj_type 为 doc/docx |
Wiki 云文档 | 用 feishu-fetch-doc |
含 /wiki/,obj_type 为 file |
Wiki 附件 | 使用本技能 ✓ |
含 /file/ |
云盘文件 | 使用本技能 ✓ |
上下游工作流
上游:用户没给 URL 或 file_token 时(不要直接询问用户)
如果用户只描述「云盘里的 Word 文件」「我那个 PDF」等模糊请求,必须先调用 feishu-drive 查找,从结果中拿到 file_token:
# 列出云盘根目录或指定文件夹
node ../feishu-drive/drive.js --open-id "SENDER_OPEN_ID" --action list
# 或按名称搜索
node ../feishu-search-doc/search-doc.js --open-id "SENDER_OPEN_ID" --query "文件名关键词"
从结果中筛选出附件类型的文件(type 为 file、扩展名为 .docx/.pdf/.xlsx 等),取 token 字段传给本技能。
下游:提取文本后写入新文档
提取出的纯文本通常是为了写入新文档。正确做法:分两步执行,先把 extract.js 的输出读进来,再作为 feishu-create-doc 的 --markdown 参数传入:
- 第一步:执行
node ./extract.js "<filepath>",把 stdout 完整捕获为文本变量 - 第二步:执行
node ../feishu-create-doc/create-doc.js --open-id "..." --title "..." --markdown "<上一步的文本>",传参时对内容做必要的 shell 转义
⚠️ 不要用
$(...)shell 命令替换:提取的文本常含双引号、$、反引号、换行等字符,会破坏 shell 解析;大文档还可能超过 argv 长度上限;Windows shell 也不支持该语法。务必先把内容捕获到变量再传参。
执行前确认
以下参数缺失或含糊时,必须先向用户询问,不得猜测或使用默认值:
| 参数 | 何时需要询问 |
|---|---|
--url / --file-token |
用户未提供飞书链接或 file token,且通过 feishu-drive / feishu-search-doc 也无法定位时 |
步骤 1 — 下载文件
node ./download-doc.js --open-id "SENDER_OPEN_ID" --url "FEISHU_URL"
支持的 URL 格式:
- Wiki 附件:
https://xxx.feishu.cn/wiki/TOKEN - 云盘文件:
https://xxx.feishu.cn/file/TOKEN
也可直接传 file_token:
node ./download-doc.js --open-id "SENDER_OPEN_ID" --file-token "FILE_TOKEN" --type "docx"
可选参数:--output-dir <目录>、--output 自定义文件名.docx
文件默认下载到当前用户的工作空间目录。脚本输出 JSON,其中 file_path 为本地路径,file_type 为扩展名。
授权
若返回 {"error":"auth_required"} 或 {"error":"permission_required"},不要询问用户是否授权,直接立即执行以下命令发送授权链接:
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 132 lines · 106 tokens per session scan A 89876d9f1ccb
feishu-docx-download is a skill published in the GitHub repository chuancyzhang/deepseek-cowork (18 stars, last pushed today), licensed Apache-2.0. It adds 106 tokens to every session and 1,808 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
orbit-notion
Open Orbit briefing skill — selected by the Orbit pipeline when Notion is the user's only connected connector, or when the user explicitly scopes their daily digest to Notion. Pulls the past 24 hours of document edits, comments, mentions, and database row changes from the user's authenticated Notion connection and…
instrument-data-to-allotrope
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV. Use this skill when scientists need to standardize instrument data for LIMS systems, data lakes, or downstream analysis. Supports auto-detection of instrument types. Outputs include full…
apify-youtube-transcript-scraper
Get YouTube captions, timestamped quotations, SRT/VTT and translated transcripts for videos, channels and playlists through the harshmaur/youtube-transcript-scraper Apify Actor.
legal-hold
Issue, refresh, release, or report on legal holds — drafts the hold notice as .docx, updates legalhold fields in log.yaml, and calendars the next refresh. Use when the user says "issue a hold", "refresh hold", "release hold", or asks for a portfolio-wide hold status report.
baoyu-youtube-transcript
A tool for downloading the written captions, subtitles, chapter information, speaker labels, and cover image from a YouTube video using its URL or ID.
feishu
Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI/MCP setup without hardcoding credentials.