前言¶
DeepSeek Harness(DSH)默认面向本机或能直接访问本地文件系统的环境:会话里常见的「显示文件位置」「在应用中打开」等操作,依赖桌面路径和本机应用。把 Harness 放进 Docker 容器、NAS 或远程服务器时,进程与用户电脑之间往往只有 Web UI 这一条链路,容器内也读不到你电脑上的文件,上述按钮会失效。
下面介绍社区插件 @louisremi/dsh-always-on(维护者 louisremi,分类为客户端)。它在不依赖本地文件系统的前提下,用浏览器侧能力替换失效入口:下载文件、打开侧栏文件列表、在侧栏里编辑文本并写回 Harness 主机。
这是什么¶
@louisremi/dsh-always-on 是面向「容器化、无本地盘访问」场景的 DSH 插件。官方描述概括为:在容器里运行 Harness 时,通过 Web UI 浏览目录、下载文件并编辑。
插件以 npm 包 @louisremi/dsh-always-on 发布(当前资料中 package.json 版本为 0.3.1),许可证 MIT。社区目录页:https://www.skillhub.cn/plugins/louisremi/dsh-always-on;源码与说明:https://github.com/louisremi/dsh-always-on。
核心功能¶
下载(Download)¶
在原先「文件夹」类按钮所在位置出现 Download,将单个文件保存到你的电脑。出现位置包括:智能体回复下的文件卡片(present)、变更文件审查页、侧栏预览中打开的文件工具栏,以及预览无法渲染时的空状态。
限制:仅支持单文件,不支持打包下载整个文件夹。
显示文件(Show files)¶
会话标题栏中的工作区文件夹按钮变为 Show files,点击后打开或聚焦侧栏的 Files 标签。已在 Files 标签内时该按钮会隐藏,避免重复操作。
编辑(Edit)¶
在侧栏预览中打开文本文件后,点击 Edit(铅笔图标,与 Download 相邻)。文件在独立编辑器标签中打开,编辑器基于 Monaco(VS Code 同款编辑器组件);Monaco 未打入插件包,首次编辑时从 jsDelivr 加载固定版本 monaco-editor@0.52.2。
编辑行为要点:
Ctrl/Cmd+S或 Save 写回文件;标签与文件名上的圆点表示未保存更改。- 打开后若磁盘上的文件已被修改,保存会被拒绝,需在 Reload from disk、Overwrite、Keep editing 中选择,不会静默覆盖。
- 关闭标签或离开页面时若有未保存内容,会确认。
- 保留行尾(LF/CRLF)与 UTF-8 BOM;仅处理不超过 1 MiB 的文本文件,二进制或无效 UTF-8 会拒绝编辑。
- 保存遵循会话沙箱:只读模式下失败;
workspace-write模式下超出工作区同样失败,与智能体自带文件工具一致。
若浏览器无法访问 cdn.jsdelivr.net,编辑器会降级为普通 <textarea>,保存、冲突与脏状态逻辑不变,并提示原因。加载 Monaco 时 jsDelivr 会看到你的 IP 与 User-Agent;Harness 主机本身不需要访问该 CDN。
安装与启用¶
安装命令(将 web 换成你实际使用的 profile 名称):
dsh plugin --profile web add @louisremi/dsh-always-on
插件支持热加载;仅当命令提示需要重启时才重启 Harness。从 git URL 安装时会执行 prepare(npm run build);若 profile 由 pnpm 管理,可能需批准构建脚本(allowBuilds),否则可能缺少 dist/。
无需额外配置项。
卸载:
dsh plugin --profile web remove @louisremi/dsh-always-on
典型用法¶
- 在容器或远程主机上按常规方式启动 DSH Web profile,并安装本插件。
- 在会话中查看智能体产出的文件卡片或变更列表,用 Download 将文件保存到本机。
- 点击会话头的 Show files 在侧栏浏览工作区文件树。
- 在侧栏预览文本文件后点 Edit,修改后 Save;若与磁盘版本冲突,按界面选择重载或覆盖。
实现要点与依赖¶
插件向 Harness 注册两个需认证的路由:GET /api/download.file、POST /api/save.file;UI 按钮占用与内置 open-in-app、sidebar-right 相同的插槽并覆盖原按钮,禁用插件后内置按钮恢复。
README 注明在 DSH 0.2.0-rc.2 上测试,并依赖上述内置插件的插槽名与公开 API。运行时要求 Node ≥ 20。
适用场景与注意¶
适合: 在 NAS、服务器或任意 Docker 环境中长期运行 Harness,操作者只通过浏览器连接,仍需要下载交付物、浏览工作区并在侧栏改配置文件或脚本。
注意:
- 插件以当前 DSH 进程权限访问文件;安装前请自行查看源码与 MIT 许可证,确认符合你的安全策略。
- 编辑无多用户文件锁,仅依赖磁盘版本校验;大文件夹需逐个文件下载。
- SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文不构成官方背书。
结尾¶
容器化 DSH 失去本机文件系统桥接后,浏览器需要承担下载、目录浏览与文本编辑。@louisremi/dsh-always-on 用三个入口和两条 API 路由补齐这一环,并与会话沙箱策略对齐。
- 社区目录:https://www.skillhub.cn/plugins/louisremi/dsh-always-on
- GitHub:https://github.com/louisremi/dsh-always-on