让 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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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 主题。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Jesse-njx/dsh-cowork
让 Agent 直接读写表格、幻灯片与笔记本
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
智能体运行框架路由HarnessRouter/harnessrouter
智能体 harness 的统一接口。
★ 3,984已汉化DSH
71.3
这是你的仓库?认领条目