🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

办公文档套件 hairyf/dsh-office-kit

DeepSeek Harnessv0.4.6
hairyf12 天前有提交已提供中文文档扫描:高危

为 DeepSeek Harness DSH 提供本地 Word、PDF、演示文稿与电子表格能力,支持 / 菜单、引用…

39/100
综合分
5
GitHub 星标
3,681
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-office-kit
npm 源 · dsh-office-kit 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-office-kit @ 0.4.6
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 09:41:53

🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

安装时即执行脚本可执行外部命令读写/删除本地文件
查看扫描证据(共 44 处,展示前 31 条)
  • 读取本地文件
    dist/index.js:65
    return existsSync(unpacked) ? unpacked : path;
  • 读取本地文件
    dist/index.js:79
    if (override != null && existsSync(override)) return override;
  • 读取本地文件
    dist/index.js:84
    if (existsSync(cli)) return outsideAsar(cli);
  • 读取本地文件
    dist/index.js:175
    return statSync(path).isFile();
  • 执行外部命令来自配置/变量
    dist/index.js:182
    execFile(file, args, {
  • 读取本地文件
    dist/index.js:272
    const parsed = JSON.parse(readFileSync(file, "utf8"));
  • 读取本地文件
    dist/index.js:287
    const parsed = JSON.parse(readFileSync(file, "utf8"));
  • 写入本地文件
    dist/index.js:307
    mkdirSync(dirname(configFile), { recursive: true });
  • 写入本地文件
    dist/index.js:308
    writeFileSync(temporary, `${JSON.stringify({
  • 写入本地文件
    dist/index.js:312
    renameSync(temporary, configFile);
  • 执行外部命令来自配置/变量
    dist/index.js:434
    execFile(process.execPath, [POSTINSTALL_SCRIPT], {
  • 执行外部命令来自配置/变量
    postinstall.mjs:66
    const result = spawnSync(command, ['--version'], { stdio: 'ignore', shell: false })
  • 执行外部命令来自配置/变量
    postinstall.mjs:72
    const result = spawnSync(executable, [...prefixArgs, '-c', script], { encoding: 'utf8', timeout: 20000 })
  • 执行外部命令固定命令
    postinstall.mjs:94
    const result = spawnSync('py', ['-0p'], { encoding: 'utf8', timeout: 30000 })
  • 读取本地文件
    postinstall.mjs:133
    if (!candidate.executable || (candidate.args.length === 0 && !existsSync(candidate.executable) && !commandExists(candidate.executable))) {
  • 读取本地文件
    postinstall.mjs:144
    if (existsSync(venvPython)) {
  • 读取本地文件
    postinstall.mjs:157
    if (!existsSync(python)) {
  • 执行外部命令固定命令
    postinstall.mjs:171
    const result = spawnSync('powershell', ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', script], {
  • 读取本地文件
    postinstall.mjs:176
    if (result.status !== 0 || !existsSync(target)) {
  • 执行外部命令固定命令
    postinstall.mjs:188
    const result = spawnSync('powershell', ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', script], {
  • 执行外部命令来自配置/变量
    postinstall.mjs:226
    const result = spawnSync(installer, installerArguments(), { stdio: 'inherit', timeout: 15 * 60 * 1000 })
  • 删除本地文件
    postinstall.mjs:227
    rmSync(installer, { force: true })
  • 读取本地文件
    postinstall.mjs:244
    if (existsSync(target) || !existsSync(interpreter)) {
  • 写入本地文件
    postinstall.mjs:248
    mkdirSync(dirname(target), { recursive: true })
  • 写入本地文件
    postinstall.mjs:249
    renameSync(legacy, target)
  • 读取本地文件
    postinstall.mjs:272
    if (existsSync(VENV_DIR)) {
  • 删除本地文件递归
    postinstall.mjs:274
    rmSync(VENV_DIR, { recursive: true, force: true })
  • 写入本地文件
    postinstall.mjs:276
    mkdirSync(dirname(VENV_DIR), { recursive: true })
  • 写入本地文件
    postinstall.mjs:335
    mkdirSync(dirname(CONFIG_FILE), { recursive: true })
  • 写入本地文件
    postinstall.mjs:336
    writeFileSync(CONFIG_FILE, `${JSON.stringify(config, null, 2)}\n`, 'utf8')
  • 删除本地文件
    postinstall.mjs:354
    rmSync(file, { force: true })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-group@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-agent-loop@deepseek-ai/dsh-agent-preset@deepseek-ai/dsh-agent-preset-registry@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-api-workspace-controller
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

处理 Office 文档、PDF、演示文稿和电子表格,供 DeepSeek Harness 使用

v0.4.62026-10-22
· 🐞 缺陷修复 · 幂等重建内部导航 - @bxwl5 (4816d) · 用 ELECTRON_RUN_AS_NODE 运行记录下来的 kit 节点 - @YunYouJun 和 Claude Opus 5.5 (008df) · 列出 ReportLab 实际能加载的 macOS CJK 字体 - @YunYouJun 和 Claude Opus 5.5 (5e65d) · harness 从 app.asar 运行时记录解包后的 kit 路径 - @YunYouJun 和 Claude Opus 5.5 (a6ad0) · 在 GitHub 上查看变更
v0.4.52026-10-21
· 🐞 缺陷修复 · 绘制中日韩印章和表单,不再报告潜在的模板字体问题 - 由 @hairyf 提交 (9e8ec) · 在 GitHub 上查看变更
v0.4.42026-10-21
· 🐞 缺陷修复 · 修正 SKILL.md 中的描述格式 - @hairyf (4ccb3) · 修复完整性检查中发现的 office 技能缺陷 - @hairyf (474c2) · 在 GitHub 上查看变更
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
DSH Office Kit [![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href] [![bundle][bundle-src]][bundle-href] [![JSDocs][jsdocs-src]][jsdocs-href] [![License][license-src]][license-href] 为 DeepSeek Harness (DSH) 提供本地 Word、PDF、演示文稿与电子表格能力,支持 / 菜单、引用 Chip,以及侧边栏预览中的选区标注与修改请求。 📦 安装 在官方插件中安装 dsh-office-kit 或使用命令行安装 dsh plugin add dsh-office-kit - 在 设置 → 插件 中启用。 - 需要 DSH ≥ 0.2.1-rc.2、Python(无需,没有将自动安装)3.10–3.13。 - Windows 缺少兼容 Python 时自动安装;macOS / Linux 使用现有 Python。 特性 - 📝 Word:/documents 创建、读取和编辑 DOCX,支持表格、图片、公式与页眉页脚。
展开完整文档(README 剩余 1 节)
DSH Office Kit

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![bundle][bundle-src]][bundle-href]
[![JSDocs][jsdocs-src]][jsdocs-href]
[![License][license-src]][license-href]

为 DeepSeek Harness (DSH) 提供本地 Word、PDF、演示文稿与电子表格能力,支持 / 菜单、引用 Chip,以及侧边栏预览中的选区标注与修改请求。

📦 安装

在官方插件中安装 dsh-office-kit

或使用命令行安装

dsh plugin add dsh-office-kit

- 在 设置 → 插件 中启用。
- 需要 DSH ≥ 0.2.1-rc.2、Python(无需,没有将自动安装)3.10–3.13。
- Windows 缺少兼容 Python 时自动安装;macOS / Linux 使用现有 Python。

特性

- 📝 Word:/documents 创建、读取和编辑 DOCX,支持表格、图片、公式与页眉页脚。
- 📄 PDF:/pdf 创建、读取和编辑 PDF,支持合并、旋转、删页与元数据。
- 📽️ 演示文稿:/presentations 创建、读取和编辑 PPTX,支持项目符号、表格、图表与图片。
- 📊 电子表格:/spreadsheets 创建、读取和编辑 XLSX,支持公式、样式、图表、冻结窗格与重算。
- 🖍️ 侧边栏标注:在 PDF、DOC/DOCX、PPTX、XLSX 预览中吸附段落或框选区域,批量提交修改要求。
- 🔗 会话引用:通过 Chip 调用文档技能;注释链接可悬停查看文件名与要求,PDF 标注附选区截图。
- 🖼️ 渲染校验:DOCX/PPTX/XLSX 经 DeepSeek Harness 自带的 LibreOffice Kit(Windows/macOS 原生引擎,Linux 走 WASM)栅格化,PDF 直接用 PyMuPDF;缺失字体会在报告里点名,不再静默产出豆腐块。SVG/PDF 素材可用 ensure_raster_image.py 转成 PNG 后嵌入。
- 🧮 活体表格:excel-live-control 技能通过 COM 驱动已经打开的 Excel / WPS 表格(读区、写值、样式、图表、重算、保存)。

🚀 快速开始

通过菜单处理文档

1. 在输入框键入 /,选择 文档、PDF 文档、演示文稿 或 电子表格。
2. 回车插入 Chip,描述创建、读取或修改任务。
3. 打开生成的文件,在侧边栏预览结果。

在预览中请求修改

1. 打开 PDF 或 DOC/DOCX,点击工具栏的 请求修改。
2. 悬停吸附段落,点击或拖动框选,输入要求并添加注释。
3. 悬停底部 注释数量 查看列表,点击 发送;取消 清空本批。

- Esc:先取消当前选区,再按一次退出标注模式。
- 附件:PDF 附选区截图;DOC/DOCX 仅发送文字与定位信息。
- 草稿:已有输入时先合入草稿,由你确认发送;暂存注释刷新后不保留。

💡 示例文档

- Word
- PDF
- 演示文稿
- 电子表格
- 来源与许可

📚 配置与限制

- Python:DSH_OFFICE_PYTHON 可指定解释器。
- 标注范围:仅 PDF、DOC/DOCX;扫描 PDF 可框选截图,不提供 OCR。
- 本地文件:不支持 Google Docs / Slides / Sheets 或远程编辑。
- 完整清单:能力与未支持项。

🛠️ 开发与贡献

pnpm install
pnpm run lint --fix
pnpm run typecheck
pnpm run test -- --run
pnpm run build

📜️ 许可证

- MIT
- 示例文档保留 Apache Tika 的许可与声明。

[npm-version-src]: https://img.shields.io/npm/v/dsh-office-kit?style=flat&colorA=080f12&colorB=1fa669
[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![bundle][bundle-src]][bundle-href]
[![License][license-src]][license-href]
[![JSDocs][jsdocs-src]][jsdocs-href]

dsh-office-kit

一套 Office 工具,供 dsh 智能体使用。支持读写 Word、Excel、PowerPoint 和 PDF 文件,无需安装 Office。

功能

- Word(.docx):读取文本、表格和样式;生成新文档;替换内容。
- Excel(.xlsx):读取工作表、单元格和公式;写入单元格;导出 CSV。
- PowerPoint(.pptx):读取幻灯片和备注;按模板生成演示文稿。
- PDF:提取文本和元数据;合并、拆分页面。

安装

npm install dsh-office-kit

用法

import { readDocx, writeXlsx, readPdf } from 'dsh-office-kit'

const doc = await readDocx('./report.docx')
console.log(doc.paragraphs)

await writeXlsx('./data.xlsx', [
{ name: 'Alice', score: 92 },
{ name: 'Bob', score: 85 },
])

const pdf = await readPdf('./manual.pdf')
console.log(pdf.text)

API

| 函数 | 说明 |
| readDocx(path) | 读取 .docx 文件,返回段落、表格和样式 |
| writeDocx(path, content) | 生成 .docx 文件 |
| readXlsx(path) | 读取 .xlsx 文件,返回工作表和单元格 |
| writeXlsx(path, rows) | 把数据写入 .xlsx 文件 |
| readPptx(path) | 读取 .pptx 文件,返回幻灯片和备注 |
| readPdf(path) | 提取 PDF 文本和元数据 |
| mergePdf(paths, output) | 合并多个 PDF 文件 |

配置

| 选项 | 类型 | 默认值 | 说明 |
| strict | boolean | false | 遇到不支持的格式时抛出错误 |
| maxFileSize | number | 52428800 | 单个文件大小上限,单位字节 |
| encoding | string | 'utf-8' | 文本编码 |

在 dsh 中使用

把插件注册到智能体,就能让智能体直接操作 Office 文件:

import { definePlugin } from 'dsh'
import officeKit from 'dsh-office-kit'

export default definePlugin({
name: 'office-kit',
setup(ctx) {
ctx.tools.register(officeKit.tools)
},
})

许可证

MIT
预览分享卡片长什么样 ↓hairyf/dsh-office-kit
分享 · DeepSeek Harness Hub
hairyf/dsh-office-kit

为 DeepSeek Harness DSH 提供本地 Word、PDF、演示文稿与电子表格能力,支持 / 菜单、引用…

这是你的仓库?认领条目

回到顶部