前言¶
在 DeepSeek Harness(DSH)桌面版里,默认情况下所有对话共用同一个工作目录(default-workspace)。你在 A 对话里生成的文件、脚本输出和下载附件,换到 B 对话仍然可见、可改;对话一多,目录里的东西也容易互相干扰。如果你希望「一次对话一份文件空间」,又不想每次手动建文件夹、改路径,可以装社区插件 dsh-session-workspace:新建对话时由 DSH 自动分配独立文件夹和沙箱根,跨对话互不可见,并在输入框旁提供运行时开关。
下面介绍这个插件的定位、能力、安装步骤和日常使用方式。事实以维护者 stevenwang15 在 GitHub 仓库公开的 README 与 package.json 为准;当前版本 0.2.0,许可证 MIT,依赖 Node 22+(engines 写明 >=22.19.0)。插件在 SkillHub 目录中归类为 admin-security。
这是什么¶
dsh-session-workspace 是 DSH 的本地插件包,一句话:One conversation, one workspace——每个新对话自动创建并进入独立工作区(独立目录 + 独立沙箱根),实现跨对话文件隔离;输入框工具栏最左侧还提供「独立工作区 / 共用工作区」胶囊开关。
维护者:stevenwang15。源码与说明:https://github.com/stevenwang15/dsh-session-workspace;社区目录页:https://www.skillhub.cn/plugins/stevenwang15/dsh-session-workspace(与 DeepSeek / 幻方无官方从属关系,属社区插件生态)。
它解决什么问题¶
| 装插件前 | 装插件后 | |
|---|---|---|
| 新对话文件放哪 | 全部挤在同一个文件夹 | 每个对话一个独立文件夹 |
| A 对话的文件,B 对话能否看到 | 能 | 不能 |
| 是否需要你手动操作 | —— | 否,照常点「新建对话」 |
装好之后,点侧边栏 新建对话(New Session) 时,侧边栏会多出一行以创建时间命名的工作区(例如 2026-11-06 20:15);该对话读写的文件落在类似 文稿/deepseek-harness/session-workspaces/20261106-201533-a1b2/ 的路径下(macOS 上可在访达中打开父目录查看所有对话文件夹):
open ~/Documents/deepseek-harness/session-workspaces
再点一次新建对话,又会得到全新的工作区和文件夹;全程不用手动建目录、不用选路径、不用改设置。
核心功能¶
自动隔离的工作区与沙箱¶
DSH 里「工作区」对应一个目录:会话创建时记录的 cwd 同时是沙箱根(只能写该目录)和侧边栏分组依据。插件在 Host 侧包装 ctx.sessionController.create:新对话来临时先独占创建目录、注册成 Workspace,再带着该 Workspace 创建会话。显式指定 cwd、复用空白会话(sessionId)、或在手动添加的项目工作区里新建时,仍保持原生行为;创建失败会回退到原生行为,不阻塞新建对话。
输入框旁的运行时开关¶
打开任意对话后,输入框工具栏最左边有一个小胶囊:
- 亮起 独立工作区:之后新建的对话会自动建独立文件夹(默认);
- 点一下变为灰色 共用工作区:下一次新建对话暂不隔离,仍使用当前所选文件夹;
- 再点一下恢复。重启 DSH 后开关会回到默认,不会持久改掉你的习惯设置。
注意:某个对话的文件夹在创建那一刻就固定了,开关只影响之后新建的对话,不会把当前对话「搬家」。
可选高级配置¶
在 ~/.dsh/profiles/desktop/cordis.patch.yml 末尾可追加(普通用户可跳过):
- id: session-workspace
config:
enabled: true # false = 完全停用插件
mode: managed # managed = 手动加的项目不隔离;all = 所有新对话都隔离
baseDir: /Users/你/Documents/deepseek-harness/session-workspaces
| 设置 | 默认 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
mode |
managed |
managed 只隔离默认工作区与插件自建工作区;all 则新建对话一律隔离 |
baseDir |
默认工作区旁的 session-workspaces |
各对话子目录的父路径 |
安装与启用¶
插件以当前 DSH 进程权限运行,安装前建议浏览仓库源码与 LICENSE(MIT),确认符合你的安全策略。
第 1 步:在终端安装插件¶
dsh plugin --profile desktop add github:stevenwang15/dsh-session-workspace
需要 Node 22+。若上述命令报错,可从 Release 下载 dsh-session-workspace-0.2.0.tgz,再执行:
dsh plugin --profile desktop add file:下载文件的绝对路径
第 2 步:写入 desktop profile 的 bundles¶
打开 ~/.dsh/profiles/desktop/package.json,在 dsh → profile → bundles 数组中加入 "dsh-session-workspace",例如:
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-session-workspace"
]
(保留数组里原本就有的其它条目。)
第 3 步:彻底重启 DSH¶
菜单栏 DeepSeek Harness → 退出(或窗口激活时 Cmd+Q),确认活动监视器里没有 DeepSeek Harness 进程后,再重新打开。仅关窗口再从 Dock 打开不算重启,插件可能不会生效。
怎么确认装好了¶
- 打开任意对话,输入框工具栏左侧应能看到 独立工作区 胶囊;
- 点「新建对话」,侧边栏应多出一个新工作区;
- 查看
~/Documents/deepseek-harness/session-workspaces/,应出现带时间戳的新文件夹。
若看不到胶囊:先确认彻底退出再打开;再 Cmd+R / F5 刷新页面;并核对 bundles 是否包含 "dsh-session-workspace"。
若点了新建对话却没有新文件夹,可能是复用了空白对话、开关切到了 共用工作区,或你在手动添加的项目工作区里新建(默认尊重你的选择、不强制隔离)。
升级、卸载与磁盘¶
升级时,重复安装同一路径不会覆盖旧版本。维护者建议先删再装并彻底重启:
dsh plugin --profile desktop remove dsh-session-workspace
dsh plugin --profile desktop add github:stevenwang15/dsh-session-workspace
卸载示例:
./scripts/uninstall-local.sh desktop
也可从 bundles 移除条目后再 remove。已创建的工作区文件夹会保留;删除侧边栏工作区行不会删除磁盘上的文件夹与聊天记录。插件不会自动清理旧文件夹,不用的目录可自行删除。
兼容性与适用场景¶
README 写明在 DSH 0.2.2-rc.1(当前桌面版)上完整测试通过。隔离依赖 DSH 公开服务;若未来版本移除输入框插槽,胶囊可能不显示,但隔离逻辑仍可按 Host 侧行为工作。
适合:在同一台机器上开很多对话、希望文件与沙箱按会话分开的 DSH 桌面用户。不适合指望「装完就自动清磁盘」的场景——目录增长与普通文件夹一样,需自行管理。
结尾¶
dsh-session-workspace 把 DSH 默认的「共用一张桌子」改成「每个新对话一张自己的桌子」,安装后照常点新建对话即可,必要时用输入框旁开关临时回到共用工作区。目录与源码: