目录插件:让 DeepSeek Harness 桌面端「新建工作区」的文件夹选择框从你设定的默认目录开始(Windows)|让 DSH 新建工作区的文件夹选择框从你指定的目录开始。
30.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add milu7/dsh-directory-plugin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令发起外部网络请求
查看扫描证据(共 3 处,展示前 3 条)
- 发起网络请求client/client.js:159
const response = await fetch(BASE + path, { - 执行外部命令来自配置/变量lib/core.js:670
const repair = spawn(process.execPath, [workerPath], { - 执行外部命令来自配置/变量lib/core.js:728
worker = spawn(process.execPath, [workerPath], {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成目录插件 · dsh-directory-plugin
让 DeepSeek Harness 桌面端「新建工作区」永远从你自己的目录开始。
DSH 桌面端新建工作区时会直接弹出系统文件夹选择框,起点永远是系统默认位置(通常是下载文件夹),而且这个对话框不接受任何调用参数。本插件把它换成「默认打开在你设定的目录」的原生选择框:你只需要在设置里指定一次,之后每次新建工作区都从那里开始,具体子目录仍然由你自己挑。
中文名「目录插件」,仓库/包名即英文 id:dsh-directory-plugin。
只支持 Windows:起始目录依赖 Win32 COM 的 IFileDialog::SetFolder。
预览
同一操作,不同起点:默认从系统下载目录出发,插件从你设定的目录出发(示意图)
功能
- 接管目录选择流程:替换「新建工作区」弹出的文件夹对话框,从一个可配置的目录开始。
- 设置页:DSH 设置里新增「新建工作区目录」,可输入路径、点「浏览…」选择、保存或一键恢复系统默认。
- 安全回退:插件不可用、目录被删除或对话框出错时,自动退回 DSH 内置行为,不会报错、不会挡住新建工作区。
- 诊断日志:每次弹框都会记录起始目录是否生效,方便排查。
安装
前置条件:Windows 10/11 + DeepSeek Harness 桌面端。
展开完整文档(README 剩余 1 节)
目录插件 · dsh-directory-plugin
让 DeepSeek Harness 桌面端「新建工作区」永远从你自己的目录开始。
DSH 桌面端新建工作区时会直接弹出系统文件夹选择框,起点永远是系统默认位置(通常是下载文件夹),而且这个对话框不接受任何调用参数。本插件把它换成「默认打开在你设定的目录」的原生选择框:你只需要在设置里指定一次,之后每次新建工作区都从那里开始,具体子目录仍然由你自己挑。
中文名「目录插件」,仓库/包名即英文 id:dsh-directory-plugin。
只支持 Windows:起始目录依赖 Win32 COM 的 IFileDialog::SetFolder。
预览
同一操作,不同起点:默认从系统下载目录出发,插件从你设定的目录出发(示意图)
功能
- 接管目录选择流程:替换「新建工作区」弹出的文件夹对话框,从一个可配置的目录开始。
- 设置页:DSH 设置里新增「新建工作区目录」,可输入路径、点「浏览…」选择、保存或一键恢复系统默认。
- 安全回退:插件不可用、目录被删除或对话框出错时,自动退回 DSH 内置行为,不会报错、不会挡住新建工作区。
- 诊断日志:每次弹框都会记录起始目录是否生效,方便排查。
安装
前置条件:Windows 10/11 + DeepSeek Harness 桌面端。
1. 把仓库克隆或下载到本地,例如 D:\Plugins\dsh-directory-plugin;
2. 用 DSH 自带的插件命令行把它登记进 desktop 配置档(link: 表示直接引用本地目录,不复制文件):
按实际情况修改这两个变量 $DSH_EXE = 'C:\Program Files\DSH\DSH NEXT.exe' # 你的 DSH 桌面端安装位置 $PLUGIN = 'D:\Plugins\dsh-directory-plugin' # 本仓库所在的本地目录
$CLI = Join-Path (Split-Path $DSH_EXE) 'resources\app.asar\lib\plugin-cli.js'
$env:ELECTRON_RUN_AS_NODE = '1'
$env:DSH_HOME = "$env:USERPROFILE\.dsh"
& $DSH_EXE --expose-internals $CLI desktop add "link:$PLUGIN"
3. 重启 DSH 桌面端(插件组合在启动时读取)。
4. 打开 设置 →「新建工作区目录」,选一个目录并保存,然后试一次「新建工作区」。
使用
1. 设置 →「新建工作区目录」;
2. 点「浏览…」选目录,或手动输入路径,点「保存」。「浏览…」从输入框里当前的路径打开(还没保存也可以),选完要点「保存」才生效;
3. 之后每次「新建工作区」,选择框都会从该目录开始;
4. 「恢复系统默认」清空配置,回到 DSH 原来的行为。
选择框是 DSH 窗口的模态对话框:它居中显示在 DSH 上面,开着的时候 DSH 窗口点不动。点了之后马上切到别的程序的话,选择框不会抢前台,任务栏按钮会闪烁提示。
同一时刻只会有一个选择框:设置页的「浏览…」开着时再点「新建工作区」(或者反过来),后来的那个会提示「已经有一个文件夹选择框开着」,不会再弹出第二个框。
设置页:
设置 →「新建工作区目录」:输入框、浏览…、保存、恢复系统默认(示意图)
配置示例(%USERPROFILE%\.dsh\workspace-directory.json):
{ "directory": "D:\\Projects" }
旧版本(workspace-anchor.json / default-workspace-directory.json)的配置会在首次读取时自动迁移,无需手动处理;迁移完成后旧文件改名为 .migrated 保留。
手动编辑时注意 JSON 里的反斜杠要写成 \\。文件写坏时插件按「未设置」处理并在日志里记一条 config-corrupt,不会覆盖你的文件;改好或在设置页重新保存即可。
工作原理
插件同时挂在两个平面上:
| 平面 | 文件 | 作用 |
| 宿主(host) | lib/index.js | 注册两个同源 HTTP 路由:/dsh-directory-plugin/config、/dsh-directory-plugin/pick |
| 浏览器(client) | client/client.js | 接管 conversation.hero.workspace.directoryFlow / sidebar.workspaces.directoryFlow 槽位,并注册设置页 |
| 核心 | lib/core.js | 配置读写、目录校验、拉起对话框子进程 |
| Worker | lib/dialog-worker.cjs | 一次性 Node 子进程,用 koffi 直接调 Win32 COM |
弹框链路:客户端槽位 open → POST /pick → core.pickDirectory() 拉起 worker →
CoCreateInstance(FileOpenDialog) → SHCreateItemFromParsingName 造 IShellItem →
IFileDialog::SetFolder(vtable 第 12 槽)→ Show()。失败时客户端回退到桌面端内置的
__DSH_DIRECTORY_PICKER__。
两个路由只服务 DSH 自己的页面:浏览器标为跨站的请求返回 403,POST 必须是 application/json(否则 415),/pick 只接受 POST——避免任意网页跨站调用它们。
出错时路由返回非 2xx 和 { code, error, detail }:设置页按错误码显示当前界面语言的文案, error 是给日志看的英文说明,堆栈只写进日志。对话框标题也由客户端按界面语言传过来。
从点击「新建工作区」到原生选择框打开(示意图)
koffi 3.1.1 已随仓库放在 vendor/,安装时不需要联网。worker 只接受 koffi 3.x:随包的那份加载不了时(比如 ARM64 机器),会依次尝试 DSH 安装目录里自带的 koffi,主版本不是 3 的一律跳过;都不行就报错,界面回退到 DSH 自带的选择框。
排错
诊断日志:%USERPROFILE%\.dsh\workspace-directory.log(一个事件一行;超过 1MB 时旧日志改名为 workspace-directory.log.1,只保留这一份)
| 日志 | 含义 |
| host-routes-registered /dsh-directory-plugin routes=2 | 宿主侧已加载、HTTP 路由就绪;routes=0 表示两条路由都被别的副本占了(见下面的 duplicate-mount) |
| duplicate-mount <路径> <说明> | 同一个进程里挂了两份:profile 装了一份,市场又热挂了一份。宿主只注册一份路由、功能不受影响,但浏览器侧会因为「同一个包解析到两个 Loader 源」而加载失败。删掉其中一份即可(市场里关掉插件,或删掉 %USERPROFILE%\.dsh\profiles\desktop\.dsh-market\hot-1.yml) |
| pick D:\Projects\demo purpose=workspace owner=… koffi=… initial={"applied":true,...} | 选择框确实以配置目录为起点(purpose=settings 是设置页的「浏览…」);owner 是 DSH 窗口句柄,none 表示当时前台不是 DSH、选择框没有父窗口;koffi 是 worker 实际加载的 koffi(vendor 里那份,或者回退到的 DSH 自带那份);行尾的 timing= 是各段耗时:wait= 请求从浏览器发出到宿主开始处理(宿主事件循环被别的东西占住时这段会变大),show= 拉起 worker 到框出现,total= 到用户关掉框 |
| owner-reenable <句柄> | 选择框进程在对话框开着时意外退出,已经把被它禁用的 DSH 窗口恢复 |
| pick (cancelled) ... | 用户取消了 |
| pick-failed <错误码> <说明> ... | 对话框进程出错(worker 的堆栈也在这一行),界面会回退到系统默认行为 |
| pick-delayed wait=<毫秒> purpose=… | 请求在宿主里排了超过 500ms 才被处理,单独记一条,便于定位宿主卡顿 |
| route-failed <路径> <说明> | 路由处理器里出了没料到的异常,已回 500;请附上这一行提 issue |
| config-corrupt <文件> <原因> | 配置文件不是合法 JSON(多半是反斜杠没写成 \\),已按未设置处理,文件原样保留 |
| config-write-failed ... | 保存配置失败(多为文件被其他程序占用),设置页会显示错误,稍后重试即可 |
判断是否生效:
1. 重启后日志出现 host-routes-registered → 宿主侧已起来;
2. 新建工作区时日志新增 pick ... initial={"applied":true} → 走的是本插件的对话框;
3. 若日志没有新增 pick 行、弹出的还是旧对话框,说明浏览器侧接管没生效:功能退化为 DSH 原生行为,不会报错。请附上日志和现象提 issue。
兼容性
- Windows 10 / 11,x64(vendor 内置的是 win32-x64 的 koffi 二进制)。ARM64 上会改用 DSH 安装目录里自带的 koffi,这条路径没有在 ARM64 机器上实测过。
- 其他系统上插件能装上但不生效:设置页只显示一行说明,「新建工作区」继续用 DSH 自带的选择框,也不会去起注定失败的对话框进程。
- 依赖 DSH 桌面端(Next 内核)的槽位与客户端插件加载机制;如果未来版本移除或重命名这些槽位,插件会静默回退,不影响 DSH 本身。
- 插件不会改动 DSH 安装目录里的任何文件。
卸载
$env:ELECTRON_RUN_AS_NODE = '1'
$env:DSH_HOME = "$env:USERPROFILE\.dsh"
& $DSH_EXE --expose-internals $CLI desktop remove dsh-directory-plugin
然后重启 DSH。配置文件与日志会留在 %USERPROFILE%\.dsh 下,可手动删除。
目录结构
package.json 插件清单(宿主入口 + 浏览器入口 + cordis 层) cordis.patch.yml 往组合里插入本插件的那一行 lib/index.js 宿主插件:HTTP 路由 lib/core.js 配置读写 + 拉起对话框子进程 lib/dialog-worker.cjs Win32 文件夹对话框 worker(支持起始目录) client/client.js 浏览器 bundle:接管目录流程 + 设置页 test/ node:test 用例(npm test,需要 Node 22+;不会弹出真实对话框) vendor/ 随包携带的 koffi 3.1.1(只留运行时会加载的 8 个文件,约 1MB) docs/images/ README 示意图(overview / settings / how-it-works) LICENSE MIT
Directory Plugin(dsh-directory-plugin)是 Windows 上 DeepSeek Harness 桌面应用的插件。它替换 New Workspace* 使用的文件夹选择器,换成原生对话框,打开时定位到你配置的目录(DSH 内置选择器总是从系统默认位置开始)。它新增一个设置页,出任何问题时静默回退到内置选择器,并随包携带 koffi,无需联网安装。
License
MIT © 2026 milu7预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
milu7/dsh-directory-plugin
目录插件:让 DeepSeek Harness 桌面端「新建工作区」的文件夹选择框从你设定的默认目录开始(Windows)|让 DSH 新建工作区的文件夹选择框从你指定的目录开始。
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,111已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,341已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,449已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,532已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2