前言¶
在 DeepSeek Harness(DSH)里做智能体开发,会话、插件配置、工程与交付默认大多落在本机 profile 和磁盘路径上。换电脑、重装系统或只在 U 盘里带一份「可继续的对话与代码」,往往需要手工拷贝目录、重配环境,还容易和本机实例混在一起。
dsh-portable-workspace(移动工作区插件)针对的是:在移动硬盘或 U 盘上建立自包含的工作区,由本机已安装的 DSH 拉起独立便携 Web 实例,数据尽量落在盘上;拔盘显示脱机,换一台同样装了本插件的电脑插上即可继续。下面按定位、能力、安装与日常流程说明用法与注意点。
这是什么¶
- 名称:
dsh-portable-workspace(包名与 bundle 名一致) - 维护者:GitHub 用户 Alec6636(
package.json中 author 为 AlecWong) - 版本(资料中明确):
0.1.5;许可证 MIT - 兼容:DeepSeek Harness
>=0.2.1-rc.5(README 写明无上限,覆盖其后正式版与预发布版) - 一句话:插件装在本机 profile;移动盘上存放
Portable-DSH根目录与各工作区数据;打开工作区时用本机 DSH CLI 启动带--patch的便携实例,使DSH_HOME、会话、存储、工程目录指向盘上路径。
插件本体按电脑安装;盘上不必预装插件。社区目录页:skillhub 插件页;源码与说明:GitHub 仓库。
核心功能¶
以下均来自 README / package.json 描述,不写未核实能力。
- 盘上自包含:会话(
.jsonl.zstd)、storages、工程与交付(Projects/<ws-id>)、便携 profile 与凭据副本(support/home)等按约定目录存放;便携实例以 CLI Web host 方式运行(ELECTRON_RUN_AS_NODE=1),避免 Electron 桌面userData落本地。 - 多工作区、多实例:每块盘可建多个工作区;每个工作区对应独立 patch 与随机端口 + token 的 Web 窗口,与本机桌面版互不污染。
- 盘符无关与脱机:根标记
.dsh-portable.json+ 本机索引~/.dsh/portable-workspace/roots.json(仅记路径);拔盘后卷进入「脱机」状态。 - 安全与找回:工作区可选 scrypt 密码;一次性恢复密钥与密码提示(0.1.4+);有密码时迁移、删除、改密、恢复、添加插件、改名、会话迁移、备份等需验密或先验密再看列表。
- 插件清单:打开前可按
workspace.json检查缺失插件,支持一键安装、短名解析(如dsh-web-all→@linxin666/dsh-web-all)、engines.dsh兼容预检(冲突提示但不阻断,由 Loader 裁决);插件装进盘上便携 profile,非从本机复制。 - 迁移与备份:工作区可跨盘/迁到本机路径;会话可在移动盘工作区与本机普通 DSH 会话间双向迁移;备份为
Portable-Backups下 zip(0.1.4+)并保留旧版散目录兼容;支持工作区改名。 - 账号同步(可选、单向):「同步本机登录」将本机
.credentials.yaml、.anonymous-user-id复制到盘上便携 home,不从盘回写本机。 - 依赖:插件自称零 DSH 包依赖,用本机 DSH 自带的 CLI、node、pnpm;仅安装 npm 插件时需能访问 npm 官方源。
盘上目录约定¶
主目录名 Portable-DSH(0.1.1 起);更早盘可为 Protable-DSH,插件两种拼写均识别。
<盘>:\Portable-DSH\
├─ .dsh-portable.json
├─ Portable-Workspaces\<ws-id>\
│ ├─ workspace.json
│ ├─ sessions\
│ ├─ storages\
│ ├─ logs\
│ └─ launch\
├─ Projects\<ws-id>\
└─ support\home\
面板中「初始化这块盘」创建根与子目录;「新建移动工作区」创建工作区,密码可留空。
安装与启用¶
在每台需要识别、打开移动工作区的电脑上,将插件目录安装进当前 DSH profile(使用仓库目录的绝对路径,且安装后不要移动或删除该目录,否则需重新安装;profile 中以 link: 记录路径)。
plugin_manager install_bundle <本目录绝对路径>
安装后侧栏「全局面板」出现「移动工作区」入口。若改了插件 JS,需通过 set_bundle false → true 重载或重启 DSH。
卸载在本机进行,不删盘上数据。README 建议顺序:先「关闭全部便携实例」,再:
plugin_manager set_bundle dsh-portable-workspace enabled=false
plugin_manager remove_bundle dsh-portable-workspace
可选删除 ~/.dsh/portable-workspace/roots.json 以清除本机记住的卷路径。
工作原理(打开一次工作区时)¶
插件生成工作区下的 launch/cordis.patch.yml,并启动独立便携实例,示意命令如下:
DeepSeek Harness.exe --expose-internals <cli.js> portable \
--patch <工作区>/launch/cordis.patch.yml --port 0 --no-open
patch 将 DSH_HOME 指到 <root>/support/home,并重写会话/存储根、默认工作目录与文档目录到盘上;默认模型 patch 为 deepseek-account / deepseek-flash,可配合「同步本机登录」使用盘上 grant 副本。解锁态仅在 Host 进程内存,登出、重启、拔盘、改盘符后需重新验密。
典型用法¶
按 README 使用流程归纳可复现步骤:
- 初始化 / 扫描:插盘 →「移动工作区」→「重新扫描」;识别后列出工作区,拔盘则进入脱机区。
- 打开:输入密码(若已设)→ 处理「缺少插件」对话框(可一键装、含可选、或跳过)→ 浏览器打开便携实例。
- 跨电脑:新电脑安装 DSH 与本插件 → 插盘 → 扫描 → 验密 → 打开;缺插件安装到盘上 profile。
- 迁移工作区:行内「迁移」→ 选目标盘或本机路径;有密码须填对;插件清单写入新
workspace.json,目标盘support/home不随单工作区搬迁(体积变小属设计行为)。 - 会话迁移:选来源(当前工作区或本机会话)与目标,可勾选删除源;路径与 jsonl header 中的
cwd会自动改写。 - 备份 / 恢复:设置保留份数与可选「打开时自动备份」;恢复须输入固定确认文案及目标工作区密码(若有);恢复前会自动留覆盖前快照。
- 忘记密码:凭创建/改密时一次性展示的恢复密钥重设;重设后旧密钥作废并再发新密钥。
更细的图文步骤见仓库内 docs/移动工作区-图文教程.html(单文件 HTML,双击本地打开)。
DSH 升级时的注意¶
README 说明:插件本体在本机目录,随 profile 保留,不会随 DSH 升级自动更新插件代码;便携实例每次启动使用本机当前 DSH 的 CLI 与 app.asar 内基础 bundles。升级前建议点「关闭全部便携实例」(会清 roots.json,升级后重新扫描即可);工作区与盘上插件数据不受 DSH 升级删除。
适用场景与注意¶
适合:需要在 U 盘/移动硬盘上携带完整 DSH 工作区;多机交替使用同一盘;希望与本机桌面 DSH 会话隔离又多开便携 Web 实例的开发者。
务必注意:
- 插件在本机 DSH 进程权限下运行,安装前应阅读源码与 MIT 许可证,自行评估信任边界。
- 安装命令是
plugin_manager install_bundle <路径>,不是凭仓库名拼接的其他 market 命令;若通过市场 Discover / 按包名安装,卸载流程仍以set_bundle/remove_bundle为准。 - 本机仅残留
roots.json等索引,工作区数据在盘上;销毁工作区须用面板「删除」(固定文案 + 密码)或手动删盘上目录,卸载插件不会删盘。 - 社区目录(如 skillhub)为独立生态站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-portable-workspace 把「会话 + 插件环境 + 工程交付」收拢到移动盘上的 Portable-DSH 结构,由本机 DSH 按需拉起便携实例,并补齐密码、迁移、备份与插件清单等运维向能力。若要查看分类信息与条目索引,可打开 SkillHub 目录页;开发与 issue 以 GitHub 仓库 为准。