DeepSeek Harness 插件:远程/NAS 主机上把「显示文件位置」换成「下载文件」
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add louisremi/dsh-always-on该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 支持远程主机
- 支持NAS主机
README
由 DeepSeek 最新模型翻译生成@louisremi/dsh-always-on
一个 DeepSeek Harness 插件,让 Harness 跑在容器里,无法访问你本机的文件系统。
把 Harness 跑在 Docker 容器里——NAS 上、服务器上,哪儿都行——它就活在一台独立的机器上:自带的「显示文件位置」和「在应用中打开」按钮得连上一台根本不存在的桌面,容器里也读不到、写不了你电脑上的文件。你和文件之间唯一的通道就是浏览器。这个插件让这条通道够用:把失效的按钮换成能通过浏览器干活的按钮:
- Download file 按钮,把文件保存到你电脑上。
- Show files,打开侧边栏文件浏览器。
- Edit,在侧边栏代码编辑器里打开文本文件(Monaco,VS Code 背后的编辑器),保存回 Harness 主机。
安装
dsh plugin --profile web add @louisremi/dsh-always-on
换成你的 Harness 实际使用的配置档名称。插件会热加载;只有命令提示需要重启时,才重启 Harness。
从 git URL 安装会在安装时构建插件(prepare 会跑 npm run build)。如果你的配置档由 pnpm 管理,它可能拦下构建脚本,直到你批准(allowBuilds);构建被跳过,插件就没有 dist/。
用法
无需配置。
展开完整文档(README 剩余 1 节)
@louisremi/dsh-always-on
一个 DeepSeek Harness 插件,让 Harness 跑在容器里,无法访问你本机的文件系统。
把 Harness 跑在 Docker 容器里——NAS 上、服务器上,哪儿都行——它就活在一台独立的机器上:自带的「显示文件位置」和「在应用中打开」按钮得连上一台根本不存在的桌面,容器里也读不到、写不了你电脑上的文件。你和文件之间唯一的通道就是浏览器。这个插件让这条通道够用:把失效的按钮换成能通过浏览器干活的按钮:
- Download file 按钮,把文件保存到你电脑上。
- Show files,打开侧边栏文件浏览器。
- Edit,在侧边栏代码编辑器里打开文本文件(Monaco,VS Code 背后的编辑器),保存回 Harness 主机。
安装
dsh plugin --profile web add @louisremi/dsh-always-on
换成你的 Harness 实际使用的配置档名称。插件会热加载;只有命令提示需要重启时,才重启 Harness。
从 git URL 安装会在安装时构建插件(prepare 会跑 npm run build)。如果你的配置档由 pnpm 管理,它可能拦下构建脚本,直到你批准(allowBuilds);构建被跳过,插件就没有 dist/。
用法
无需配置。
Download。 下载按钮出现在原来文件夹按钮的位置:智能体回复下方的文件卡片(present)、变更文件审查标签页、侧边栏预览中打开文件的工具栏,以及预览渲染不了的文件空状态。
Show files。 会话头部的 workspace 文件夹按钮变成一个 Show files 按钮。它打开(或聚焦)侧边栏的 Files 标签页。在这个标签页内部,按钮会隐藏,因为点了也没用。
Edit。 在侧边栏预览里打开文本文件,按 Edit(铅笔图标,在 Download 旁边)。文件在独立的编辑器标签页中打开:
- Ctrl/Cmd+S 或 Save 按钮写入文件;标签页和文件名上的圆点标记未保存的改动。
- 如果打开之后文件在磁盘上变了,保存会被拒绝,你可以选 Reload from disk、Overwrite 或 Keep editing。不会有任何静默覆盖。
- 关闭有未保存改动的标签页(或浏览器页面)会弹出确认。
- 保留换行符(LF/CRLF)和开头的 UTF-8 字节顺序标记。
- 文本文件最大 1 MiB。二进制文件和非法 UTF-8 会被拒绝,而不是损坏。
- 保存遵循会话的沙箱模式:只读模式下失败,workspace-write 模式下在工作区外失败,和智能体自己的文件工具完全一致。
工作原理
插件给 Harness 加了两条需要认证的路由,GET /api/download.file 和 POST /api/save.file,并把按钮注册到与内置按钮相同的 UI 槽位里,把它们遮住(禁用插件,内置按钮就会回来)。「Show files」调用侧边栏的公开方法 openTab('files');编辑器是一种侧边栏标签页类型,通过公开的侧边栏 API 注册。下载直接流式写入磁盘,所以大文件也没问题。保存走 Harness 自己的文件系统层,带会话的沙箱策略和版本检查。
编辑器和 CDN
为了让包体积小(约 69 kB),Monaco 没有打包进去。第一次点 Edit 时,才从 jsDelivr 加载,版本固定为 monaco-editor@0.52.2。
- 它跑在沙箱 iframe 里(sandbox="allow-scripts",没有 allow-same-origin),Content-Security-Policy 只允许 CDN。所以 CDN 的代码读不到 Harness 页面、你的会话 cookie、local storage,也调不了 Harness API;它只能和编辑器外壳互发消息。
- 加载器脚本用 Subresource Integrity(SRI)校验。加载器随后拉取的文件没有逐个按哈希固定,所以上面这层隔离才重要。
- 你的浏览器需要能访问 cdn.jsdelivr.net(Harness 主机不需要)。如果访问不了或被拦截,编辑器会退回普通 ,保存、冲突和脏状态行为完全一样,并会说明这一点。
- Monaco 加载时,jsDelivr 能看到你的 IP 地址和 user agent。
限制
- 下载:只支持单个文件;文件夹不能下载。
- 编辑:文本文件最大 1 MiB;除了磁盘上的版本检查,没有多用户锁定。
- 在 DSH 0.2.0-rc.2 上测试过。它依赖内置 open-in-app 和 sidebar-right 插件的槽位名和公开 API。
开发
源码是 TypeScript;npm run build 把它编译到 dist/(安装和打包时也会通过 prepare 自动运行)。测试直接用 Node 的原生类型剥离跑 .ts 文件,所以开发需要 Node ≥ 22.18(或 ≥ 23.6)——插件本身运行时仍然只要求 Node ≥ 20。
npm ci
npm run check # TypeScript typecheck of src, tests and e2e
npm run build # compile src/ to dist/
npm test # host route unit tests (no browser needed)
npm run test:e2e # opt-in: real headless Chromium + real Monaco from the CDN (builds first)
test:e2e 需要 Chromium、playwright-core 和 React 18 UMD 构建;见 e2e/browser.e2e.mts 的文件头。
卸载
dsh plugin --profile web remove @louisremi/dsh-always-on
发布
改动以 pull request 的形式落到 main,这样每个 GitHub Release 都能自我描述:创建一个描述为空的 release,Release notes 工作流会用上一个 release 以来合并的所有内容把它填满(.github/release.yml 控制分类)。
1. 在 package.json 里升 version 并推送(通过 PR)。
2. 发布一个 GitHub Release,标签与版本号一致:gh release create vX.Y.Z。
3. 随后 Publish to npm 工作流会在 release 发布时运行:它会拿标签和 package.json 比对,跑 lint、类型检查、测试,再通过可信发布带 provenance 发布到 npm —— 仓库里不存任何 token。如果版本已经在 registry 里(包的首次发布必须手动完成,因为可信发布是在包页面上配置的),工作流会跳过发布。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
louisremi/dsh-always-on
DeepSeek Harness 插件:远程/NAS 主机上把「显示文件位置」换成「下载文件」
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,362已汉化DSH
71.4
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,076已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,814已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。