DeepSeek Harnessdsh的第三方附件插件:把任何文件带进会话,零类型拒绝。
38.8/100
综合分
12
GitHub 星标
57
npm 周下载
—/5
用户评分
数据截至 2026/8/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-attachmentsnpm 源 · dsh-attachments 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(runtime_boot_failed · 2026/10/31) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-attachments @ 0.1.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 03:45:04
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 11 处,展示前 11 条)
- 读取本地文件lib/index.js:42
const parsed = JSON.parse(readFileSync(indexPath(), "utf8")); - 写入本地文件lib/index.js:54
writeFileSync(indexPath(), `${JSON.stringify(trimmed, null, 2)}\n`, "utf8"); - 读取本地文件lib/index.js:79
stats = statSync(cwd); - 写入本地文件lib/index.js:241
mkdirSync(dir, { recursive: true }); - 写入本地文件lib/index.js:249
writeFileSync(target, bytes); - 删除本地文件lib/index.js:277
unlinkSync(target); - 写入本地文件lib/index.js:293
mkdirSync(join(resolvedCwd, UPLOADS_DIR), { recursive: true }); - 写入本地文件lib/index.js:294
copyFileSync(source, target); - 删除本地文件lib/index.js:328
unlinkSync(target); - 读取本地文件lib/index.js:345
dataBase64: readFileSync(target).toString("base64"), - 读取本地文件lib/index.js:357
const stats = statSync(target);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
⚠ 该插件运行需访问外部网络 / 远程 API,部署在国内无外网环境时可能无法正常使用。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-typert-protocol@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 携带任意文件进会话
- 零类型拒绝
README
由 DeepSeek 最新模型翻译生成dsh-attachments
npm 包名:dsh-attachments · GitHub 仓库:
CocoSgt/dsh-attachments
DeepSeek Harness(dsh)的第三方附件插件:把任何文件带进会话,零类型拒绝。
- 所有文件(含图片)统一走暂存管线:文件落盘到会话工作区 <cwd>/.dsh/uploads/ 并按会话暂存,composer 上方出现卡片(图标块 + 文件名 + 大小 + ✕)。不再使用宿主原生图片草稿管线 (createDraftImages/addImages 均未使用);模型需要看图时,用 harness 原生的 read_image 工具按路径读取——非视觉模型也不会被「模型不支持图片」堵住发送。
- 草稿完全干净,输入框里绝不出现引用文本。用户下一条消息进入模型请求时,宿主在 agent/pre-step 波形里把附件清单折进批次,作为
source: { kind: 'user' } 的消息(插在你的消息之前,与官方
dsh-agent-instructions 的注入模式同构)——模型可见即落日志,回放安全。
注入(消费)后卡片自动消失。
- 认不认、怎么处理,是模型和它的工具/技能的事。
展开完整文档(README 剩余 1 节)
dsh-attachments
npm 包名:dsh-attachments · GitHub 仓库:
CocoSgt/dsh-attachments
DeepSeek Harness(dsh)的第三方附件插件:把任何文件带进会话,零类型拒绝。
- 所有文件(含图片)统一走暂存管线:文件落盘到会话工作区 <cwd>/.dsh/uploads/ 并按会话暂存,composer 上方出现卡片(图标块 + 文件名 + 大小 + ✕)。不再使用宿主原生图片草稿管线 (createDraftImages/addImages 均未使用);模型需要看图时,用 harness 原生的 read_image 工具按路径读取——非视觉模型也不会被「模型不支持图片」堵住发送。
- 草稿完全干净,输入框里绝不出现引用文本。用户下一条消息进入模型请求时,宿主在 agent/pre-step 波形里把附件清单折进批次,作为
source: { kind: 'user' } 的消息(插在你的消息之前,与官方
dsh-agent-instructions 的注入模式同构)——模型可见即落日志,回放安全。
注入(消费)后卡片自动消失。
- 认不认、怎么处理,是模型和它的工具/技能的事。插件不做类型预判,也就没有「不支持的格式」这种拒绝;唯一的硬限制是单文件 32MB 的 RPC 传输
上限(更大的文件直接放进项目目录再在消息里写路径)。
入口
1. 回形针按钮(输入框工具栏左端):文件选择器,多选,无 accept 过滤;
2. 全窗拖拽:拖文件进窗口出现遮罩提示,松手即带入;
3. 粘贴:文件粘贴直达同一分诊;粘贴含附件引用行(📎 … → .dsh/uploads/…, 如从历史消息复制)的文本时自动再物化成卡片。
附件卡片
落盘的附件在 composer 上方(conversation.input.dock)逐个成卡:扩展名图标块 + 文件名 + 大小 + ✕。✕ 同时移出暂存并删除落盘文件;图片卡带本地缩略图。卡片以宿主 pending 为真相源(listStash),经 2 秒轮询刷新——发送消费后卡片自动消失。点卡片打开预览弹层:图片直接渲染,文本/代码按纯文本渲染,其余类型提供「用系统应用打开」;弹层头部的「复制引用」复制的是附件的文本协议形态,粘贴回输入框即等同重新携带。
架构
- 宿主端(lib/index.js):AttachmentsGateway 继承 TypertRemoteService,以 fileStash 命名空间提供六个 RPC: stashFile/removeStash/restageFile/clearStash/readStash/ listStash。路径安全:只写 <cwd>/.dsh/uploads/,文件名白名单化 + 时间戳前缀,撤回/预览路径 resolve 后做前缀校验。第三方双副本场景下 SRC 发现失明,同时注册弱(src-json)清单进宿主 typert registry。
- 浏览器端(lib/client.js):$mount 手写 strict zod 描述符,暴露 ctx.remote.fileStash;按钮注册 conversation.input.left,卡片栏注册 conversation.input.dock;全窗拖拽/粘贴经 store 捕捉的「当前 composer」上下文路由到目标会话。宿主在 agent/pre-step 把暂存附件折进决策。
- 国际化:zh/en 双语词典经宿主 locale 服务注册(命名空间 dsh-attachments)。槽组件拿到标准响应式 t 席位;窗口级模块(拖拽遮罩、预览、历史卡、分诊 toast)经命名空间绑定的 t 在调用时取词。宿主 RPC 失败携带稳定 dot-code 与 {name} 模板参数(如 stash.err.tooLarge + {max}),同时保留中文兜底文案——客户端词典命中 code 即本地化渲染,未命中回退兜底。注入模型历史的 📎 … → 路径 引用行是文本协议,绝不本地化。
安装
从 npm 安装:
dsh plugin --profile web add dsh-attachments
三个 dsh 插件可以一条命令一起安装:
dsh plugin --profile web add dsh-skills dsh-attachments dsh-inspector
GitHub 回退方式:
dsh plugin --profile web add github:CocoSgt/dsh-attachments
注意:自建 profile 的 ~/.dsh/profiles/<name>/package.json 里 dsh.profile.bundles 必须包含 @deepseek-ai/dsh-base 与 @deepseek-ai/dsh-web-app,否则启动会静默挂起。
安装后重启 dsh web。卸载:dsh plugin --profile web remove dsh-attachments。
同系列插件
- dsh-skills
(npm)——技能中枢:把散落在 Claude Code 目录、项目目录与 .skill 包里的技能汇成全局库,「/」菜单即取即用。
- dsh-inspector
(npm)——约束文件面板:按 harness 真实载入顺序查看/就地编辑当前会话的 AGENTS.md/CLAUDE.md 指引链, 附四个技能根状态。
已知限制
- 落盘需要会话有工作区目录(cwd)。无工作区的会话,一切文件类型都会失败——附件无处安放。
- 单文件 32MB 传输上限(JSON wire 的现实约束),超限明确报错不静默。
- 附件暂存是宿主内存态:dsh 重启后未发送的卡片消失(文件仍在 uploads 目录,可重新拖入);同一会话多端打开时卡片如实跟随宿主状态:页面
打开/刷新绝不清空暂存(加载只读),任一端发送即在所有端消费掉待发
条目(卡片经轮询消失;落盘文件保留,已发送消息还引用着它),只有
卡片 ✕ 会删除文件。
- .dsh/uploads/ 不自动清理;卡片 ✕ 会删除对应文件,已发送消息引用过的
文件建议保留(会话历史里的路径还指着它)。
开发
pnpm install
pnpm run check # tsc --noEmit
pnpm run build # tsdown(宿主 + 浏览器 bundle)
注意:宿主方法参数名就是 RPC wire 字段名(Gateway SRC 模式),构建不得压缩改写参数名。
标签
本包与仓库带有 dsh-plugin、dsh、deepseek-harness 等关键词/topics。
DeepSeek Harness 官方没有插件市场,也没有官方发现标签——第三方插件一旦发布,没有任何东西把它关联回生态,用户无从找起。这套社区标签是唯一现实
的发现渠道(npm 搜 keywords:dsh-plugin;GitHub 搜 topic:dsh-plugin)。
虽非官方,但非常重要,所以给它上了。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
CocoSgt/dsh-attachments
DeepSeek Harnessdsh的第三方附件插件:把任何文件带进会话,零类型拒绝。
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1