新建分区免选目录,自动命名并创建文件夹
35.9/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add SakuraCircuit/dsh-auto-workspace该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
静态安装检查有提示项,装前建议看一眼 README
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-auto-workspace(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 19:27:19
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 19 处,展示前 17 条)
- 执行外部命令固定命令lib/index.mjs:133
child = spawn('powershell.exe', [ - 读取本地文件lib/index.mjs:215
await access(candidate) - 写入本地文件lib/index.mjs:260
await mkdir(container, { recursive: true }) - 写入本地文件lib/index.mjs:262
await mkdir(directory, { recursive: true }) - 读取本地文件lib/index.mjs:263
return await realpath(directory) - 读取本地文件lib/index.mjs:281
const base = await realpath(container).catch(() => resolve(container)) - 读取本地文件lib/index.mjs:282
const dir = await realpath(directory).catch(() => null) - 删除本地文件递归lib/index.mjs:319
await rm(directory, { recursive: true, force: true }) - 读取本地文件lib/index.mjs:653
const targetCanonical = await realpath(target.path).catch((error) => { - 读取本地文件lib/index.mjs:671
bytes = await readFile(sourcePath) - 写入本地文件lib/index.mjs:712
await mkdir(targetProjectDir, { recursive: true }) - 写入本地文件lib/index.mjs:713
await writeFile(tmpPath, output) - 写入本地文件lib/index.mjs:714
await mkdir(targetDir, { recursive: true }) - 写入本地文件lib/index.mjs:715
await rename(tmpPath, finalPath) - 删除本地文件lib/index.mjs:717
await unlink(tmpPath).catch(() => {}) - 删除本地文件递归lib/index.mjs:725
await rm(oldDir, { recursive: true, force: true }) - 删除本地文件lib/index.mjs:727
if (entries.length === 0) await rmdir(oldProjectDir).catch(() => {})
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-session-format@deepseek-ai/dsh-typert-protocol@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 插件:新建分区时跳过目录选择,自动创建新分区;分区名,分区默认目录均可在插件后台自定义,分区内对话可自由切换其他分区内。
README
由 DeepSeek 最新模型翻译生成dsh-auto-workspace
DSH(DeepSeek Harness)插件:新建工作区时跳过文件夹选择对话框,自动分配并创建新分区。
点「新建分区」(或 Ctrl+O / Cmd+O)后不再弹出任何选择器,直接在「文档」下依次创建:
<文档>\deepseek-harness\default-workspace <文档>\deepseek-harness\default-workspace-2 <文档>\deepseek-harness\default-workspace-3 …
每次点击都会产生一个真正的新分区(命名探测到第一个不存在的编号即创建)。
官方「添加工作区」的固有流程会在创建分区后自动在其中新建一个会话,所以你会看到「新分区 + 其中一个新的对话」同时出现——这是官方行为,不是 bug。
分区名可自定义(插件后台)
打开 DSH 插件管理页(插件 → dsh-auto-workspace → 配置),在卡片里修改「目录名前缀」并点保存:
- 默认 default-workspace:第一个分区 default-workspace,其后 -2、-3…
- 改成 my-proj:第一个分区 my-proj,其后 my-proj-2、my-proj-3…
展开完整文档(README 剩余 1 节)
dsh-auto-workspace
DSH(DeepSeek Harness)插件:新建工作区时跳过文件夹选择对话框,自动分配并创建新分区。
点「新建分区」(或 Ctrl+O / Cmd+O)后不再弹出任何选择器,直接在「文档」下依次创建:
<文档>\deepseek-harness\default-workspace <文档>\deepseek-harness\default-workspace-2 <文档>\deepseek-harness\default-workspace-3 …
每次点击都会产生一个真正的新分区(命名探测到第一个不存在的编号即创建)。
官方「添加工作区」的固有流程会在创建分区后自动在其中新建一个会话,所以你会看到「新分区 + 其中一个新的对话」同时出现——这是官方行为,不是 bug。
分区名可自定义(插件后台)
打开 DSH 插件管理页(插件 → dsh-auto-workspace → 配置),在卡片里修改「目录名前缀」并点保存:
- 默认 default-workspace:第一个分区 default-workspace,其后 -2、-3…
- 改成 my-proj:第一个分区 my-proj,其后 my-proj-2、my-proj-3…
- 保存后立即生效(下一次新建分区用新名字),并持久化到 profile 的 cordis.patch.yml(entry id auto-workspace 的 workspaceName 键)。
- 改名只影响之后新建的分区;已有分区不受影响。删除「旧名字」分区时目录清理仍正常工作(同一进程内的历史名字都被记录);跨重启后残留的旧名字目录不会被自动清理(等价于官方行为,需要时可手动删除)。
- 与 dsh-unrestricted 的设置面板同一套官方机制(settings 命名空间 + loader/volatile-update 热更新),无需重启 Harness。
分区存放位置可自定义(插件后台)
同一张配置卡片里的「分区存放位置(容器目录)」输入框控制自动分配到哪里:
- 留空:默认在「文档」目录下的 deepseek-harness (C:\Users\<你>\Documents\deepseek-harness),与旧行为一致。
- 填绝对路径(如 D:\DSH-Workspaces):之后新建的分区都分配在这个文件夹之下(D:\DSH-Workspaces\default-workspace、-2…)。
- 保存后立即生效(下一次新建分区就用新位置),持久化到 cordis.patch.yml 的 workspaceDir 键;无需重启 Harness。
- 只影响之后新建的分区:已有的分区留在原处不受影响。删除分区时「连文件夹一起删」的安全网会跟随当前容器目录,旧位置的分区不会被误删。
- 优先级:面板配置 > 环境变量 DSH_AUTO_WORKSPACE_DIR > 文档目录默认值。
- 非绝对路径会被忽略(host 端日志会提示并回退默认链)。
删除分区 = 连磁盘文件夹一起删
官方「删除分区」只移除注册、保留磁盘文件夹和会话日志。本插件改变了这一点:
- 删除分区时,其磁盘文件夹(及里面全部文件、会话日志)会被一并永久删除。
- 删除确认弹窗已被替换为醒目警告文案(明确写明文件夹会被永久删除、无法恢复)。
- 安全网:只有容器目录(面板配置的位置、<文档>\deepseek-harness,或 DSH_AUTO_WORKSPACE_DIR)之下的 default-workspace / default-workspace-N 会被删除;你手动注册的其他任意目录(例如桌面上的项目文件夹)删除分区时 永远不会被触碰。
- 编号回收因此变得更直接:删除分区后目录也消失,下次新建必然拿回最小空闲编号。
移动旧会话到新分区
侧边栏里每个会话的「…」菜单多了一项 「移动到另一分区…」(排在「复制会话 ID」之后):
- 点击后弹出目标分区列表(自动排除会话当前所在的分区),选中目标点「移动」即可。
- 移动会:①重写该会话日志的 header cwd 指向目标分区;②把日志文件搬运到目标分区对应的存储目录;③同步更新分区记账(旧分区 detach、目标分区置顶)。
- 移动后该对话在侧边栏立即归属目标分区(分区列表实时刷新,无需重启)。
- 只能移动「冷」会话:当前打开、或还有运行中任务(turn / 子代理 / 后台任务 / 计划)的会话会被拒绝(弹窗提示错误码与原因)。
- 仅支持当前代 zstd 日志(session.v4.jsonl.zstd);旧格式会话不移动、原文件不动。移动成功后旧会话目录整体移除(若其中还有旧代文件会一并删除)。目标分区若已存在同名会话目录,移动会被拒绝。
- 只移动日志本身:分区目录里的工作文件(你放进去的项目内容)留在原处,不会被搬走或删除。
安装
一键安装
Windows(PowerShell / CMD):
irm https://raw.githubusercontent.com/Feiyuwan09/dsh-auto-workspace/main/install.ps1 | iex
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/Feiyuwan09/dsh-auto-workspace/main/install.sh | bash
或克隆仓库后本地运行:
.\install.ps1 # Windows(install.bat 是它的薄包装,双击即可)
./install.sh # macOS / Linux
脚本会完成全部步骤:定位 profile → 备份 package.json → 拷贝插件到 ~/.dsh/plugins/dsh-auto-workspace → 注册 dependencies 与 bundles → 运行包管理器链接依赖。只重启 Harness 即可使用。 修改前会生成 package.json.bak-auto-workspace-<时间戳> 备份,重复运行安全(覆盖更新、跳过重复注册)。
- 多个 profile 时显式指定:.\install.ps1 desktop / .\install.ps1 C:\path\to\profile
- 依赖需要 pnpm / corepack / npm 其中之一(按此顺序探测);macOS / Linux 修改 package.json 还依赖 jq。
手动安装
1. 把本目录放到你的插件目录(通常 ~/.dsh/plugins/dsh-auto-workspace)
2. 在 profile 的 package.json 的 dependencies 里加入: "dsh-auto-workspace": "file:../../plugins/dsh-auto-workspace"
3. 在 profile 的 dsh.profile.bundles 里加入 "dsh-auto-workspace"
4. 安装依赖(让 profile 的 node_modules 出现该包;DSH 启动时从那里解析插件)
5. 重启 Harness
插件同时带有 dsh.bundle.patch(cordis.patch.yml):它会禁用第一方的 directory-picker 行并插入本插件。如果 profile 的 package.json 未把本插件加入 bundles 列表,该 patch 不会生效。
工作原理
- Host 半边(lib/index.mjs):提供替代的 ctx.directoryPicker 服务,
capability() 返回 { kind: "native", pick };pick() 不弹任何系统对话框,
在容器目录下分配一个尚不存在的 <workspaceName>[-N] 目录名,创建后返回其规范化路径。分配过程串行化,并发点击也不会拿到同名目录。
同时包装 workspaceRegistry.delete:注册删除成功后,把该分区自己的容器目录物理删除(清理任务与分配链串行,避免竞态)。
分区名前缀来自 settings 命名空间 auto-workspace 的 workspaceName (Config schema + loader/volatile-update 热更新)。
另外注册 autoWorkspaceSessionMove Remote 服务(wire namespace autoWorkspace,方法 move / listWorkspaces):手写 typert Remote 方法描述符(与 @Remote 标记同构),用官方同款 zstd 帧扫描器解析 session.v4.jsonl.zstd、只重写 header 帧的 cwd 并把事件帧逐字节搬走,原子落盘后再同步分区记账(detach 旧分区 / attach 目标分区)。
- Client 半边(lib/client.js):向两个 directory-flow 槽位(conversation.hero.workspace.directoryFlow、sidebar.workspaces.directoryFlow)注册渲染为空的占位者;open 上升沿触发一次 pick() → onPicked(path),由第一方 WorkspacePicker 走 workspaces.create({path}) 完成注册,随后官方流程会在新分区里开一个新会话。另外直接改写官方 workspace 字典的 delete.* 词条,把删除确认弹窗换成「文件夹将被永久删除」的醒目警告。
还通过 plugins.bundle.config 槽位注册插件管理页的「分区名前缀」配置卡片(configForms 写入 settings,与 dsh-unrestricted 同款模式)。
会话「…」菜单里的「移动到另一分区…」(order 460)与 shell.overlay 目标选择对话框也由这半边提供,经 connection.rpc.call("/api", "autoWorkspace/move", …) 直连 host 服务。
第一方链路保持不变:uiWorkspace.pickDirectory() → Typert Remote
directoryPicker/pick → DirectoryPickerController → 本插件的 directoryPicker。
配置
| 配置项 | 说明 |
| 插件管理页 → 配置卡片 | 修改分区目录名前缀(workspaceName)与分区存放位置(workspaceDir),保存即热更新并持久化 |
| DSH_AUTO_WORKSPACE_DIR | 环境变量:指定分区容器目录(绝对路径);面板配置优先于它,两者都不设置时用「文档」目录下的 deepseek-harness |
| DSH_AUTO_WORKSPACE_DISABLED | 环境变量:设为 1 时禁用本插件(host 半边不注册替代服务) |
卸载
1. 从 profile package.json 的 dependencies 和 dsh.profile.bundles 中移除本包
2. 重新安装依赖
3. 删除插件目录
4. 重启 Harness(第一方 directory-picker 恢复弹窗行为)
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
SakuraCircuit/dsh-auto-workspace
新建分区免选目录,自动命名并创建文件夹
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目