DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Folder Attach — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-folder-attach

Folder Attach

将文件夹拖入 DeepSeek Harness 网页编辑器,无需再看到“仅桌面应用支持文件夹”的提示。添加主机文件夹对话框、/folder,以及拖放/粘贴到 @path 提及中的功能。纯浏览器运行,无需桌面应用。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-folder-attach@0.1.4
README兼容性版本

兼容性与来源证明

Folder Attach 以 dsh-folder-attach 发布,当前版本为 0.1.4。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/12

版本

0.1.4stable
2026/10/12
0.1.3stable
2026/10/11
0.1.2stable
2026/10/10
查看其余 2 个版本收起版本
0.1.1stable
2026/10/9
0.1.0stable
2026/10/9

相关插件

正在加载相关插件…

最新版
0.1.4
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
41 kB
文件数
10
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
0
最近提交
2026/10/12
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---Deepseek Ipptdeepseek-ipptiPolloWork PPT Studio 及其精选幻灯片模板,作为原生 DeepSeek Harness 对话视图。

README

dsh-folder-attach

DSH 网页版拖入文件夹会被拒绝:「只有桌面端支持添加文件夹,浏览器里请添加单个文件」。 这个插件让它在纯浏览器里可用 —— 拖文件夹、/folder、主机文件夹选择框,都插入标准 @路径 引用。

English · 需要 dsh >= 0.2.0-rc.2

背景

DSH 的输入框对"拖入/粘贴文件夹"有一条硬性限制:

const bridge = globalThis.__DSH_HOST_PATHS__;
if (bridge === void 0 && directory) return t("attachment.directoryDesktopOnly");
// → "只有桌面端支持添加文件夹,浏览器里请添加单个文件"

浏览器出于安全不会给出拖入文件夹的绝对路径,只有桌面端(Electron shell 注入 __DSH_HOST_PATHS__)能把 File 映射回真实路径。而 @deepseek-ai/dsh 目前没有发布桌面端:dsh web 只有 --host/--port/--no-open/--trusted-host,全量搜索也没有任何包写入该全局。

本插件不去绕过这个限制,而是换一个问题来源:不问浏览器要路径,问宿主机要。

原理

Web 界面分两半:浏览器里的 client,和你机器上的 Node host。浏览器是沙箱化的,host 不是。

DSH 已经自带一个宿主目录选择能力(dsh-host-directory-picker-auto)。在 macOS + 回环绑定时它解析成 native 后端,在宿主机上执行:

osascript -e 'choose folder' -e 'POSIX path of selectedFolder'

返回一个真实的绝对路径。插件把它接到输入框上——桌面端那条判定根本不会被触发。

拖入的文件夹则用 fileReferences/list(@ 补全菜单背后的同一个索引)按名称解析:一次调用,宿主自己的模糊索引,已排除 node_modules 等。

功能

入口行为
输入框左侧「添加文件夹」在宿主机弹出系统文件夹对话框,选中后插入 @目录/
/folder 命令同上
拖入 / 粘贴文件夹按名称在工作区内解析,插入 @目录/;同批普通文件走原有上传通道

插入的是标准 @路径 mention,与桌面端拖文件夹产生的等价:工作区内用相对形式,工作区外保留绝对形式,含空格自动加引号。

安装

dsh plugin --profile web add dsh-folder-attach

也可以从 GitHub 装(同一份源码,可钉到某个 tag):

dsh plugin --profile web add github:sixzjd/dsh-folder-attach

也可以在侧边栏 插件 → 添加插件 里填上面的地址。装完刷新浏览器页面。

从源码安装
git clone https://github.com/sixzjd/dsh-folder-attach.git
cd ~/.dsh/profiles/web        # 或你的 profile 目录
dsh plugin --profile web add ./dsh-folder-attach

卸载

dsh plugin --profile web remove dsh-folder-attach

或在插件页关闭开关。插件只在浏览器内注册一个 composer 槽位、一个斜杠命令和两个事件监听器,不写任何全局对象,卸载即无痕。

开发

npm test          # 两个回归测试
npm run check     # 语法检查 + 测试

无需构建:dsh-client-modules 把 lib/client.js 逐字节原样作为浏览器 bundle 服务,所以它按 window.__ModuleLoader__.load 格式手写。

文件作用
lib/index.js空的宿主侧 apply,让包成为 Loader 条目、从而被扫描到
lib/client.js全部行为
cordis.patch.yml该 bundle 启用时贡献的组合层
locale/{en,zh}.json插件页显示名(en.json 必须存在,否则 zh.json 不会被读取)

依赖的公开接缝

只用官方声明过的扩展点,不改写官方代码、不打 monkeypatch:

  • ctx.slots.inject("conversation.input.left", …) — 官方文档点名的 composer 扩展位
  • 该座位的标准 props:sessionId、inputActions、t
  • ctx.commandUi.register({ name: "folder", ui: { kind: "action" } })
  • ctx.remote.directoryPicker.pick() — 宿主系统对话框,返回绝对路径
  • ctx.remote.fileReferences.list(sessionId, query) — @ 菜单背后的索引查询

已知限制

  • 拖入/粘贴的文件夹只能按名称在工作区内解析。浏览器不给路径,这无法回避;解析不到时明确报错并提示改用对话框,不会猜一个路径。
  • 拖入产生的是 @目录/ 纯文本 mention,不是桌面端那种带图标的文件夹 chip——chip 需要真实路径。功能等价,外观不同。
  • 索引查询有返回上限,极端情况下同名文件夹可能不在候选里,此时按未解析处理。
  • 若 profile 把目录选择解析成 browse 后端(远程 / SSH 访问),系统对话框不可用,pick 会拒绝并提示;此时仍可用拖拽解析。
  • 混合拖拽(文件夹 + 图片)时,插件会复刻 composer 的图片数量/体积预检,但只统计本次拖入的图片:已挂载的附件没有任何公开接口可读。宿主侧 validateImageBatch 仍按整条消息强制校验,所以这不是漏洞,只是提示可能来得更早、口径更宽。
  • 插件页显示名依赖 locale/en.json 存在。

为什么它能活过 dsh 升级

兼容性闸门只校验 peerDependencies 里 @deepseek-ai/dsh* 前缀的版本,本插件不声明它,因此升级不会让 bundle 被跳过。真正的风险是上面那些接缝改名——那时表现是静默不显示,不会拖垮 DSH。

许可

MIT