在网页输入框插入文件夹路径引用
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/sixzjd/dsh-folder-attach.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 23 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/1(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 插入文件夹路径引用
- 宿主文件夹对话框
- 拖入粘贴解析为提及
给 DeepSeek Harness 网页输入框加上文件夹引用:宿主文件夹对话框、/folder 命令,拖入或粘贴文件夹都会解析成 @路径 提及。
README
由 DeepSeek 最新模型翻译生成dsh-folder-attach
在 DeepSeek Harness 的 Web 浏览器界面里,给对话输入框加上文件夹引用。
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 不是。
展开完整文档(README 剩余 1 节)
dsh-folder-attach
在 DeepSeek Harness 的 Web 浏览器界面里,给对话输入框加上文件夹引用。
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,与桌面端拖文件夹产生的等价:工作区内用相对形式,工作区外保留绝对形式,含空格自动加引号。
安装
从 GitHub 安装(当前可用)
dsh plugin --profile web add github:sixzjd/dsh-folder-attach
从 npm 安装(发布后)
dsh plugin --profile web add 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 需要真实路径。功能等价,外观不同。
- 索引查询有返回上限,极端情况下同名文件夹可能不在候选里,此时按未解析处理。
- 若配置档把目录选择解析成 browse 后端(远程 / SSH 访问),系统对话框不可用,pick 会拒绝并提示;此时仍可用拖拽解析。
- 混合拖拽(文件夹 + 图片)时,插件会复刻 composer 的图片数量/体积预检,但只统计本次拖入的图片:已挂载的附件没有任何公开接口可读。宿主侧 validateImageBatch 仍按整条消息强制校验,所以这不是漏洞,只是提示可能来得更早、口径更宽。
- 插件页显示名依赖 locale/en.json 存在。
为什么它能活过 dsh 升级
兼容性闸门只校验 peerDependencies 里 @deepseek-ai/dsh* 前缀的版本,本插件不声明它,因此升级不会让 bundle 被跳过。真正的风险是上面那些接缝改名——那时表现是静默不显示,不会拖垮 DSH。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
sixzjd/dsh-folder-attach
在网页输入框插入文件夹路径引用
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,482已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,848已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,246已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 4,717已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,711已汉化DSH
71.1