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

办公文档读写 Jesse-njx/dsh-cowork

DeepSeek Harnessv0.0.1
Jesse-njx82 天前有提交已提供中文文档扫描:含敏感能力

让 Agent 直接读写表格、幻灯片与笔记本

29.4/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分

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

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Jesse-njx/dsh-cowork
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · tool
装得上吗
npm 包存在但缺 main/exports/bin 入口声明,源码安装也可能起不来
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 82 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✓npm 包dsh-cowork @ 0.0.1
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 17:51:48

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 10 处,展示前 10 条)
  • 写入本地文件
    packages/dsh/src/binary.ts:25
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    packages/dsh/src/binary.ts:34
    renameSync(tmp, targetPath)
  • 删除本地文件
    packages/dsh/src/binary.ts:44
    unlinkSync(tmp)
  • 读取本地文件
    packages/mcp/src/index.ts:63
    data = new Uint8Array(readFileSync(args.file_path))
  • 读取本地文件
    packages/mcp/src/index.ts:120
    original = new Uint8Array(readFileSync(target))
  • 读取本地文件
    packages/mcp/src/index.ts:143
    if (!args.force && existsSync(target)) {
  • 读取本地文件
    packages/mcp/src/index.ts:159
    return { content: [{ type: 'text', text: `doc_write: ${existsSync(target) ? 'updated' : 'created'} ${target} (${bytes.byteLength} bytes, sha256 ${sha2
  • 写入本地文件
    packages/mcp/src/io.ts:17
    writeFileSync(tmp, data, { flag: 'wx', mode: 0o644 })
  • 写入本地文件
    packages/mcp/src/io.ts:18
    renameSync(tmp, target)
  • 删除本地文件
    packages/mcp/src/io.ts:21
    unlinkSync(tmp)
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 读写表格幻灯片笔记本
  • 支持多种文档格式
  • 提供命令行与服务器

在 DeepSeek Harness 里读写办公文档和 notebook——doc_read/doc_write 工具(xlsx、pdf、docx、pptx、ipynb),外加 MCP 服务器和命令行

README

由 DeepSeek 最新模型翻译生成
DSH Cowork 在 DeepSeek Harness 中读写 Office 文档与 Jupyter Notebook——以及其他任何你的 Agent 运行的地方。 DSH Cowork 为编码 Agent 提供了一流的文档处理能力: | 格式 | 读取(Read) | 写入(Write, v1) | | xlsx 电子表格 | ✅ 有界、按单元格寻址的窗口 | ✅ 按单元格引用新建 / 编辑 | | ipynb 笔记本 | ✅ 单元格 + 内联输出 | ✅ 按单元格下标新建 / 编辑 | | pdf | ✅ 文本窗口(pages) | —(v2:表单填写) | | docx | ✅ 段落 + 字数统计 | —(v2:生成) | | pptx | ✅ 幻灯片 + 形状 id | —(v2:生成) | English version: README.md. 为什么做这个 DeepSeek Harness 内置的 read 只支持 UTF-8 文本——它打不开电子表格、PDF、幻灯片或笔记本。Claude Code 原生支持 PDF 和笔记本;Codex 则什么都没有。 DSH Cowork 以仓库外插件的方式补齐了这个缺口(无需 fork、无需 PR——这正是 CONTRIBUTING.md 推荐的生态路径)。
展开完整文档(README 剩余 1 节)
DSH Cowork

在 DeepSeek Harness 中读写 Office 文档与 Jupyter Notebook——以及其他任何你的 Agent 运行的地方。

DSH Cowork 为编码 Agent 提供了一流的文档处理能力:

| 格式 | 读取(Read) | 写入(Write, v1) |
| xlsx 电子表格 | ✅ 有界、按单元格寻址的窗口 | ✅ 按单元格引用新建 / 编辑 |
| ipynb 笔记本 | ✅ 单元格 + 内联输出 | ✅ 按单元格下标新建 / 编辑 |
| pdf | ✅ 文本窗口(pages) | —(v2:表单填写) |
| docx | ✅ 段落 + 字数统计 | —(v2:生成) |
| pptx | ✅ 幻灯片 + 形状 id | —(v2:生成) |

English version: README.md.

为什么做这个

DeepSeek Harness 内置的 read 只支持 UTF-8 文本——它打不开电子表格、PDF、幻灯片或笔记本。Claude Code 原生支持 PDF 和笔记本;Codex 则什么都没有。
DSH Cowork 以仓库外插件的方式补齐了这个缺口(无需 fork、无需 PR——这正是 CONTRIBUTING.md 推荐的生态路径)。

"Cowork = READ + WRITE" 之所以是一个整体而非两个孤立工具,靠两个设计:

1. 稳定地址(stable addresses)。 doc_read 返回 xlsx 的单元格引用(A1、C12)和 pptx 的形状 id,doc_write 直接消费这些地址。
行号无法寻址二进制格式,地址可以。
2. 有界窗口 + 显式截断。 每次读取都有上限(页 / 行 / 幻灯片 / 单元格 / 字节)。静默截断是最大的罪过:窗口被截断时一定会出现 > Truncated: 提示。

包结构

| 包 | 作用 |
| packages/core | 纯 TS、零 DSH 依赖:嗅探 → 抽取 → 构建、窗口化、安全上限 |
| packages/dsh | DSH 插件包:doc_read / doc_write 工具(dsh plugin add 安装) |
| packages/mcp | MCP 服务器(stdio)——供 Codex、Claude Code 及任意 MCP 客户端使用 |
| packages/cli | doc-read / doc-write 命令行 + SKILL.md(pi harness 适配) |

安装到 DeepSeek Harness

从仓库克隆后安装(当前分发方式:GitHub,不发布到 npm)
git clone https://github.com/Jesse-njx/dsh-cowork.git
cd dsh-cowork
pnpm install # installs deps and builds all packages (prepare)
dsh plugin --profile add ./packages/dsh

之后模型即可使用 doc_read / doc_write(可用一个真实会话验证:让模型 doc_read 一个 .xlsx 文件)。

可选配置(均有合理默认值):

在 profile 的 cordis.patch.yml 中覆盖 cowork-docs 行
- id: cowork-docs
name: '@dsh-cowork/plugin'
config:
maxInputBytes: 67108864
maxOutputBytes: 262144
maxDecompressedBytes: 536870912 # zip 炸弹防护 maxZipEntries: 4096 maxPages: 20 maxSheetRows: 200 maxSheets: 1 maxSlides: 20 maxCells: 200

供任意 Agent 使用(MCP / CLI)

Codex / Claude Code 的 MCP 配置示例 { "mcpServers": { "cowork": { "command": "node", "args": ["/packages/mcp/lib/index.js"], "cwd": "" } } }

doc-read report.xlsx --sheets Data --rows 50
doc-write edit report.xlsx --spec edit-spec.json

安全模型

- Zip 炸弹:所有 OOXML 归档在解压前先检查条目数与解压后大小上限。
- 宏文件:.xlsm / .docm / .pptm(含 vbaProject.bin 者)一律拒绝——Cowork 从不读写宏格式。
- 只读模式:沙箱处于 read-only 时,doc_write 被硬性禁止, doc_read 照常可用。
- 编辑防护:doc_write 编辑前必须已在本会话读取过该文件(expected_version),并可选用内容哈希校验(expected_sha256)——每次编辑都是一次哈希检查。
- 禁止静默覆盖:覆盖已存在文件需要先读取过(DSH)或显式 force (CLI / MCP)。
- 原子写入:临时文件 + 重命名,绝不留下半成品目标文件。
- 过期公式:被编辑的 xlsx 工作表会清除缓存的公式结果,让 Excel / LibreOffice 打开时重新计算(exceljs 本身不重算)。
- 不可信输入:公式、隐藏工作表、演讲者备注一律视为数据,随抽取结果呈现,绝不执行。

架构

┌──────────────────────────────────────────────┐
│ @dsh-cowork/core │
│ sniff → readDocument / writeDocument → caps │
└───────┬──────────────┬──────────────┬────────┘
│ │ │
┌──────────▼───┐ ┌───────▼──────┐ ┌────▼───────┐
│ packages/dsh│ │ packages/mcp │ │ packages/cli│
│ DSH 插件包 │ │ MCP stdio │ │ + SKILL.md │ └──────────────┘ └──────────────┘ └────────────┘

DSH 插件包的读取走 ctx.fs(有界 readBytes、沙箱感知的路径解析、 fs/observed 事件);由于 fs 服务只支持文本写入,字节写入由插件自行完成(临时文件 + 原子重命名),并在写入后重新观察真实版本号,使内置策略机制保持一致。

开发

pnpm install
pnpm -r build
pnpm -r test # core 35 + plugin 15 + cli 6 + mcp 7

- 测试夹具:node packages/core/scripts/make-fixtures.mjs(PDF 需要 macOS cupsfilter,否则跳过)。
- Node 20+;测试使用 Node 原生 TS type-stripping。

路线图

- v1(本仓库):读取全部五种格式;写入 xlsx + ipynb。
- v2:ipynb 写入打磨、docx/pptx 生成、PDF 表单填写(pdf-lib)、面向视觉模型的 PDF 页面渲染为图片、docx 原生 OOXML 编辑。
- 发布:dsh-plugin GitHub 主题、awesome-list 条目、Discussions 帖子。

贡献

本项目使用 dsh-plugin 主题。欢迎提交 Issue、PR 与 Discussion——同时,按照 deepseek-harness CONTRIBUTING.md,你自己的插件也请打上 dsh-plugin 主题。
预览分享卡片长什么样 ↓Jesse-njx/dsh-cowork
分享 · DeepSeek Harness Hub
Jesse-njx/dsh-cowork

让 Agent 直接读写表格、幻灯片与笔记本

这是你的仓库?认领条目

回到顶部