deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:LiuJunheng/DeepSeekHarnessGreen
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
把 DeepSeek Harness(dsh)封装成双击即用的本地启动器:不用敲命令、不用开浏览器、连 Python/Node 都不用装,整包拷走就能用。一份开箱即得、拎包即走(三国文案:告别繁琐的"排兵布阵",一纸调令即可出征)。
下载:GitHub Release v1.0.10 / Gitee 镜像(国内更快)https://gitee.com/liujunheng/DeepSeekHarnessGreen/releases → 仓库 GitHub / Gitee
其他语言:English — README_EN.md(随版本发布翻译一次;以本文为准)
DSH_Launcher.exe 或 start.bat,连 Python / Node 都不用单独装(内置便携版),首次点一下「安装环境」即可。runtime/,不写用户主目录、不装系统、不写注册表;内置便携 Node/Python,下载国内镜像优先、连不上自动回退官方。整目录拷到任意新电脑即用,无需重装。DeepSeekHarnessLauncher/
├── start.bat # ★ 双击这个开始(纯 ASCII + CRLF)
├── stop.bat # 双击这个停止服务
├── launcher.py # 核心:tkinter 图形界面 + 自动环境准备
├── DSH_Launcher.exe # ★ 双击这个开始(exe 版,无需装 Python)
├── update_agent.py # 独立更新程序源码(打包为 DSH_Update.exe)
├── DSH_Update.exe # ★ 独立更新程序:本体退出后由它完成覆盖安装并重启
├── DSH_Launcher.ico # 启动器图标(窗口 / 系统托盘 / exe 使用)
├── build_exe.bat # 将 launcher.py / update_agent.py 打包为 exe 的工具
├── config.json # 配置(镜像源 / 端口 / Node / Python 版本)
├── runtime/ # ★ 首次运行自动生成,全部本地数据都在这(绿色整合)
│ ├── node/ # 便携版 Node.js(自动下载)
│ ├── dsh/ # 本地安装的 @deepseek-ai/dsh 包
│ ├── dsh-home/ # dsh 数据(会话/配置/存储)
│ ├── python/ # 内置便携 Python 3.10(含 tkinter,自动下载)
│ ├── npm-cache/ # npm 下载缓存(不会写到 ~/.npm)
│ ├── npm-userconfig # 本地 npm 配置(阻断读取用户主目录 ~/.npmrc)
│ ├── pnpm-home/ # pnpm 全局目录(dsh 插件管理用)
│ ├── pnpm-store/ # pnpm 内容寻址存储
│ ├── pyinstaller/ # 本地 PyInstaller(打包 exe 用,自动安装)
│ ├── tmp/ # 临时文件
│ ├── server.pid # 服务进程号
│ └── server.log # 服务运行日志
├── plugins/ # 内置插件源码(6 款,见「内置插件一览」)
├── skills/ # 本项目的 DSH 经验 Skill(已安装到 TRAE 全局 skills)
└── README.md / README_EN.md # 中文说明(维护主体)/ 英文说明(随版本更新翻译一次)
本启动器提供两种启动形态,选其一即可:
- exe 版(推荐):直接双击
DSH_Launcher.exe,完全无需安装 Python- 脚本版:双击
start.bat,会自动优先使用内置便携 Python(runtime/python),内置缺失时才回退到系统 Python
runtime/python,之后不再需要系统 Python;只有内置 Python 下载失败时,才需要手动安装 Python 3(勾选 "Add Python to PATH")作为兜底DSH_Launcher.exe)runtime/node(国内镜像优先,失败自动回退官方)@deepseek-ai/dsh 到 runtime/dshruntime/pythonhttp://127.0.0.1:3080| 按钮 | 作用 | 何时可用 |
|---|---|---|
| 安装环境 | 下载便携 Node + 安装 dsh + 补齐内置 Python | 环境未安装 / 未运行服务时 |
| 启动服务 | 拉起 dsh web 服务并自动开浏览器(界面已在浏览器中打开则不重复开新页) | 环境已就绪且服务未运行 |
| 停止服务 | 停止 dsh 服务 | 服务运行中 |
| 打开界面 | 手动在浏览器打开 dsh 界面(必定打开新页面,不受单页面去重限制) | 服务运行中 |
| 检查更新 | 查询 npm 上 dsh 最新版本,有新版则弹窗让您选择是否更新;更新前自动备份旧版本到 runtime/backup/dsh-<版本>,不覆盖、可在「数据维护」一键清理 |
环境已安装且服务未运行 |
| 检查绿色版更新 | 查询本项目 GitHub 最新 Release(本绿色版外围:启动器/插件/文档等);发现新版 → 下载到 runtime/update/ 暂存 → 退出启动器 → 由独立更新程序 DSH_Update.exe 完成覆盖安装并重启(它会等本体退出、备份旧文件、覆盖新版、再启动);若更新失败会弹窗提示手动下载地址(GitHub 发布页 + 更新包直链)。不替换 config.json(你的设置)与 runtime/(你的数据),旧文件自动备份到 runtime/update/backup/,详见第六章 |
服务未运行 |
| 插件管理 | 弹出插件管理窗口:查看已安装插件、搜索插件(npm 注册表 + GitHub 官方 dsh-plugin 话题页)、安装 / 移除插件(详见第五章) |
环境已就绪 |
| 数据维护区 | 主窗口「数据维护」区(需先停止服务):会话管理按钮 → 弹出会话列表,勾选(可全选/单选)后可恢复(取消归档)或永久删除选中的会话,详见第五章「数据维护」 | 服务停止后 |
| 刷新状态 | 手动重新检测环境与服务状态 | 任何时候 |
| 关于(右上角) | 弹出「关于」弹窗:作者、版本号、版本日期、本仓库与官方 dsh 仓库链接(可点击打开),并附绿色整合·本地化特点说明(所有文件与依赖全部本地化) | 任何时候 |
| 最小化按钮 | 最小化到任务栏(任务栏图标保留),托盘图标从启动起常驻,点任务栏或托盘图标都能恢复窗口 | 任何时候 |
| 右上角 X 关闭 | 先弹二次确认(避免误关),确认后自动停止 dsh 服务并退出 | 任何时候 |
| 防重复启动 | 若启动器已在运行(含最小化到任务栏 / 托盘后台运行),再次打开时不会重复启动服务,而是直接把已运行的窗口调到前台 | 任何时候 |
WebUI 单页面去重:启动器会向 WebUI 页面注入心跳脚本,页面打开后每 15 秒向本地 127.0.0.1:3081 上报一次;自动打开(启动服务后自动开页)时若检测到界面已在浏览器 中打开(180 秒内有心跳),就不再打开新页面,避免多次重启累积一堆相同标签页。 手动点「打开界面」不受此限制,必定打开新页面。 可在「设置」里取消勾选 启动服务后自动打开浏览器(对应
config.json的auto_open_browser,端口可用ui_beacon_port调整)。
python launcher.py --start :: 启动(守护模式:保持本窗口运行,关窗口或 stop.bat 停止)
python launcher.py --stop :: 停止
python launcher.py --purge-archived :: 永久删除全部已归档会话(需先停止服务)
python launcher.py --purge-session <ID> :: 永久删除指定会话(需先停止服务)
python launcher.py --restore-session <ID> :: 复原(取消归档)指定会话(需先停止服务)
python launcher.py --install-plugin <本地插件目录或npm包名> :: 安装插件(本地目录直接给路径即可)
| 字段 | 说明 | 默认值 |
|---|---|---|
mirror |
镜像源:auto 自动(国内优先回退官方)/ cn 国内 / official 官方 |
auto |
node_version |
便携 Node 版本号 | 22.20.0 |
python_version |
内置便携 Python 版本号 | 3.10.20 |
python_release |
python-build-standalone 发布标签(日期) | 20260807 |
dsh_port |
服务端口 | 3080 |
dsh_package |
dsh 包名 | @deepseek-ai/dsh |
tmp_dir |
临时目录(空 = 默认 runtime/tmp,绿色整合;可自定义为任意绝对路径) |
空 |
default_workspace |
默认工作区(空 = 自动解析:不冲突时用程序根目录,冲突时自动用程序目录内 workspace 子目录;可自定义绝对路径,与临时目录冲突会自动回退并警告) |
空 |
dsh_host |
dsh web 服务绑定地址:127.0.0.1=仅本机访问 / 0.0.0.0=局域网内其它电脑可远程打开 WebUI |
127.0.0.1 |
trusted_hosts |
受信任主机列表(数组,元素为 host 或 host:port)。不填(默认)= 绑定局域网时自动信任全部局域网 IP;填了任意一个 = 只信任填写的地址,不再自动全局域网放行 | [] |
也可在启动器界面【设置】里改镜像和端口(网络相关的【网络设置】见下节),点【保存设置】。
想让其它电脑的浏览器远程打开本机部署的 dsh WebUI(例如服务端一台电脑、客户端多台电脑),按下面配置。
局域网访问地址: http://<本机IP>:3080;局域网内其它电脑用浏览器打开该地址即可使用 WebUI(聊天、工具调用正常)。my-server.local 或 192.168.1.10:3080 访问),多个用英文逗号分隔。127.0.0.1)则与以往完全一致,仅本机可访问。config.json 的 dsh_host(127.0.0.1 / 0.0.0.0)与 trusted_hosts(数组)。runtime/ 下,不写用户主目录(~/.npm、~/.pnpm-store 等都不会产生)workspace 子目录并预置进工作区列表;不冲突时直接用程序根目录。无需手动配置(详见 config.json 的 default_workspace)stop.bat(或启动器里【停止服务】),避免有进程占用文件导致复制不全DeepSeekHarnessLauncher 文件夹(约 528MB)到新电脑,放任意位置均可(程序按自身位置自动定位,不写死路径)runtime/server.pid、runtime/server.log(旧状态残留)runtime/tmp(临时文件)runtime/npm-cache(纯下载缓存,删除不影响使用,仅日后重装 dsh 会重新下载)DSH_Launcher.exe,或 start.bat(内置便携 Python 在 runtime 里);只有内置 Python 下载失败时才需装系统 Python。不需要装 Node(便携版在 runtime 里)DSH_Launcher.exe(或 start.bat)→ 【启动服务】。API Key、设置、插件、会话记录全部已带过来runtime/dsh-home/storages/workspace.json)。若新电脑的工作区路径与旧机不一致,需在网页里重新选择/添加工作区(旧会话数据仍在,不会被删除);路径一致则完全无感相较"整目录迁移",此 zip 不含
runtime/(不带已下载的环境与会话),新机联网后由启动器自动下载 Node / Python / dsh,体积小、适合放到 GitHub Release 分发。打包内容与 GitHub 仓库(main 分支)保持一致:
launcher.py、update_agent.py、start.bat、stop.bat、build_exe.bat、DSH_Launcher.exe、DSH_Update.exe、DSH_Launcher.ico、config.json、README.md、README_EN.md、LICENSE、plugins/、skills/dsh-deploy-maintain/(DSH_Launcher.exe/DSH_Update.exe也上传 GitHub 仓库,与 Release 同源;DEV_NOTES.md与.gitignore是开发侧文件,不进 release)。
v1.0.10):https://github.com/LiuJunheng/DeepSeekHarnessGreen/releases/latest新机使用三步:
E:\DeepSeekHarnessLauncher),双击 start.bat(或 DSH_Launcher.exe);workspace,避开 ACL 临时目录冲突)即可。该 zip 由作者打包维护并随 Release 分发,使用者仅需下载后解压即可,无需关心其中的结构。
本章覆盖本绿色版的插件体系与会话数据维护两部分:
- 内置插件:6 款自带插件(源码在
plugins/随包分发),分别聊天增强、会话管理、用量统计等功能;- 数据维护:启动器内置的「恢复 / 永久删除归档会话」功能(dsh 官方没有,绿色版自建)。
使用入口:主窗口点 【插件管理】 弹出插件管理窗口;数据维护在「数据维护」区(需先停止服务)。
环境就绪(已安装 Node + dsh)后,在主窗口点 【插件管理】 即可在弹出的窗口里查看、搜索、安装、移除、启停插件。下面按"管理动作"讲清怎么操(有关每个内置插件的功能,见下方「内置插件一览 / 详解」)。
web)已安装的插件(列:插件名 / 版本 / 状态——启用 / 停用 / —),可单选/多选后【移除选中插件】、【启用选中】或【停用选中】(启停、移除后需重启服务生效)、【刷新】;条目上右键可打开 npm 页面 / GitHub 搜索 / 复制包名。@dsh-external/dsh-vision-toolkit、dsh-remote、dsh-lark-bot),无需联网也能看到可安装项;dsh-plugin 话题页的热门仓库(按星标约 20 个);dsh-remote)或 github:用户/仓库#提交号 安装指定版本;也点 「选择本地插件文件夹安装…」 选任意含 package.json 的目录一键安装(默认打开本仓库 plugins/,方便直接装内置插件)。命令行等价:python launcher.py --install-plugin <本地目录或包名>。runtime/dsh-home/profiles/web/(profile 的 node_modules + package.json),走 dsh plugin(内部转发 pnpm)——pnpm 及其存储都在 runtime/ 下,不写用户主目录;首次使用自动用便携 Node 把 pnpm 装到 runtime/pnpm-home。dsh.bundle.patch 的依赖写进 profile 的 dsh.profile.bundles(即使 pnpm 因构建脚本警告 ERR_PNPM_IGNORED_BUILDS 以退出码 1 结束也兜底同步,无需手动编辑 package.json);启停状态记在 dsh.profile.disabled。重启服务后插件即加载。安装方式:任一内置插件均可通过「插件管理 → 选择本地插件文件夹安装…」选择对应目录(命令行等价物:python launcher.py --install-plugin plugins\<插件名>),装完重启服务生效。官方核心或绿色版自更新后,已装入的旧副本需重新安装本地方可生效。各插件详细用法见其 README。
| 插件 | 一句话功能 | 详细文档 |
|---|---|---|
dsh-file-browser |
WebUI 内文件浏览 / 预览 / 右键把路径或内容塞进对话 | README |
dsh-archive-purge |
WebUI「清理归档」页只读查看已归档会话 | README |
dsh-session-rewind |
会话被工具崩溃"毒化"时报错时,一键回退到某可行回合派生干净续聊 | README |
dsh-session-import |
把导出的会话 ZIP / JSONL 导回本机(官方导出互逆) | README |
dsh-usage-stats |
用量统计 + 每条消息的「本次 token / 预估费用」 | README |
dsh-sidebar-lite |
WebUI 右侧边栏(文件管理 / 预览 / 浏览器 / 终端 / 任务) | README |
所有内置插件均为纯插件(不修改任何官方文件),与绿色版一起以 Apache License 2.0 开源(见第十一章)。
下面按用途分组介绍各插件。实际安装均通过「插件管理 → 选择本地插件文件夹安装…」选择对应
plugins\<插件名>目录即可(命令行等价物python launcher.py --install-plugin plugins\<插件名>),装完重启服务生效;更完整用法见各章节末尾的 README。
dsh-file-browser(文件浏览 / 预览 / 右键添加到对话):安装并重启服务后,WebUI 输入框工具行左侧出现「📁 文件」按钮,点击打开右侧浮层文件浏览器——目录列表(目录在前)、文本/代码与图片预览、路径输入跳转、返回上级/刷新;右键文件或目录弹出菜单,可把路径或内容(≤3000 字符,超出截断并注明)追加到输入框草稿(可编辑后再发送),或复制路径。详见 plugins/dsh-file-browser/README.md。常见问题:安装后输入框看不到「文件」按钮 → 多为没重启服务 / 插件
exports少了"./package.json"/ 改源码后没重新安装,详见插件 README 的「排查」一节。
dsh-sidebar-lite(WebUI 右侧边栏):在 WebUI 右侧常驻一个工作面板,提供文件管理 / 预览 / 浏览器 / 终端 / 任务入口,方便在对话旁直接操作文件与工具。详见 plugins/dsh-sidebar-lite/README.md。dsh-archive-purge(清理归档查看):安装并重启服务后,可在 WebUI「设置 → 清理归档」里查看已归档会话列表(可勾选/全选交互保留)。由于实际启动服务时所有会话都处于"运行中",WebUI 侧无法直接删除,该页面为只读展示——真正的删除/恢复请在下方「数据维护」完成。详见 plugins/dsh-archive-purge/README.md。常见问题:安装后 WebUI 设置里看不到「清理归档」→ 多为插件
package.json的exports少了"./package.json"(或改源码后没重新安装),详见插件 README 的「排查」一节。
dsh-session-rewind(会话回退):解决 dsh 会话被工具运行时失效(Cannot read properties of undefined (reading 'prepare'))永久毒化的问题——崩溃回合会在日志里留下孤儿 tool_calls,之后每一轮都被 API 400 拒绝。安装并重启服务后,WebUI「设置 → 会话回退」可:列出全部会话 →「分析」任意会话(逐回合信息:用户问题 / 步骤数 / 工具调用数 / 错误码统计 / 是否完成)→ 在任意一个已完成回合上点「回退到此」,调用官方 session.fork 从该回合之后派生一个干净的续接会话并自动打开(原会话保留,可再交「数据维护」清理)。界面为卡片式布局(会话标题、用户问题描述均独占整行完整可读,下方显示工作区/创建时间/步骤/工具调用等具体信息,与用量统计同风格)。详见 plugins/dsh-session-rewind/README.md。dsh-session-import(会话导入):把「Session log」按钮导出的会话 ZIP(dsh-session-<id>.zip,来自官方 GET /api/session.export)或单个 .jsonl 日志导入回本机,与官方导出互逆。安装并重启服务后,WebUI「设置 → 会话导入」选择文件即可:自动识别 ZIP(PK 魔数)或明文 JSONL,校验会话 header(版本 / 字段)后按日志头部的 cwd 写回 runtime/dsh-home/sessions/<项目>/<会话ID>/(zstd 帧与官方持久化后端逐字节一致),media/ 附件按内容寻址写回附件库,并把会话挂到对应工作区(cwd 目录本机不存在时留在「未分组」,仍会出现在会话列表);重复导入同一会话自动跳过、不覆盖。详见 plugins/dsh-session-import/README.md。说明:导入是「恢复/查看」语义——会话出现在列表可查看历史,但官方没有「从该会话继续聊」的通用入口;标题等投影元数据由 DSH 后续补齐,刚导入时可能显示「(无标题)」。
dsh-usage-stats(用量统计 + 消息行「本次token」)(v0.2.0,一个插件两个功能面,统一安装/卸载):
本次token:输入(未命中) 3.3k · 输入(命中缓存) 832.3k · 输出 4.6k · 思考 3.7k · 费用约 ¥0.13(k/M 缩写,按官方计费口径分类,思考已计入输出不重复计费,费用按价格表估算;数据取该回合所有 assistant/message 事件的 usage 求和,与面板同源;官方悬停的用时/首token/速率不受影响)。数据直接从会话日志解码(session.jsonl.zstd zstd 多帧,与 dsh-session-rewind 同机制),费用为估算(日志不含费用,按价格表估算,仅供成本参考)。详见 plugins/dsh-usage-stats/README.md。
说明:消息行「本次token」原为独立插件
dsh-turn-tokens(v0.1.0),自 v0.2.0 起合并进本插件;若历史版本装过它,先移除再安装本插件,避免重复显示。
dsh 官方没有"永久删除会话"和"取消归档"功能:网页里的"归档"只是把会话隐藏(日志文件与注册表条目全部保留)。本启动器在服务停止后直接操作本地数据文件,做到:
- 恢复(取消归档):把会话 id 从
workspace.json的global.archivedSessionIds中移除,会话重新出现在 WebUI 会话列表,日志与内容不受影响(等价于"把放逐的武将召回麾下,既往不咎")。- 永久删除:彻底删除日志目录 + 注册表条目,不可恢复(等价于"削籍夺职,永不叙用")。
WebUI 侧仅能通过
dsh-archive-purge插件只读查看已归档会话;真正的删除/恢复在这里完成:先点「停止服务」→ 主窗口「数据维护」→「会话管理」→ 勾选会话后点「恢复选中」或「删除选中」。
| 操作 | 位置 | 说明 |
|---|---|---|
| 会话管理 | 主窗口「数据维护」区 | 点击后弹出会话列表(标题 / 工作区 / 状态 / 有无日志),可勾选(全选/全不选/单选)后选择恢复选中(仅对"已归档"会话生效)或永久删除选中 |
| 命令行 | --restore-session <ID> |
复原(取消归档)指定会话 |
| 命令行 | --purge-archived / --purge-session <ID> |
永久删除:前者清全部归档,后者删指定会话 |
storages/workspace.json 的 archivedSessionIds(原子写回:临时文件 + os.replace),不动日志与工作区归属;重复恢复未归档会话、恢复不存在的会话都会安全返回"无需操作"。runtime/dsh-home/sessions/<工作区编码>/<会话ID>/storages/workspace.json 中的 sessionIds / archivedSessionIds 条目storages/session_projcache.json 中该会话的标题 / 统计缓存行注意事项:
本绿色版支持两条完全独立、互不干扰的更新通道:
| 通道 | 更新对象 | 入口 | 更新源 |
|---|---|---|---|
| 官方核心 | dsh 本体(runtime/dsh/ 的 npm 包) |
「检查更新」 | 官方 npm / GitHub |
| 绿色版外围 | 启动器 launcher.py / DSH_Launcher.exe / plugins/ / 文档等 |
「检查绿色版更新」 | 本项目 GitHub Release(连不通时自动转 Gitee 镜像) |
两条通道各自判断版本、各自下载、各自备份,绝不互相触碰:核心更新只动 runtime/dsh/,外围更新只动程序根目录(并跳过 config.json 与 runtime/),互不干扰、互不依赖。
DEV_NOTES.md/.gitignore 等开发侧文件,保证与 GitHub 更新结果一致)。runtime/update/extracted/:runtime/update/update_job.json,内含新版路径与手动下载地址)。DSH_Update.exe 完成后续全部动作:
等本体退出并释放文件锁 → 备份旧文件到 runtime/update/backup/ → 覆盖程序根目录(跳过 config.json / runtime/ / .git,连 DSH_Update.exe 自身也会先复制到 runtime/tmp 再从副本运行,保证自己能替换成新版)→ 自动重启新版启动器。config.json(你自定义的端口/镜像设置)与 runtime/(你的会话数据 / 已装环境)。runtime/update/backup/,新版有问题可手动复制回根目录回退。DSH_Launcher_GreenPortable_Online_<日期>_v<版本>.zip,Release tag 为 v<版本>(当前 v1.0.10)。runtime/dsh-home/profiles/web 的插件副本是 pnpm 拷贝,需到「插件管理」重新安装本地插件才生效。config.json 与 runtime/ 文件夹)→ 重新双击启动。runtime/python 下自带的 Python 3.10(完整版,含 tkinter),由 start.bat 优先调用。首次启动若缺失会自动从镜像下载(国内 mirror.nju.edu.cn 优先、失败回退 GitHub),不装进系统、不污染环境,随目录一起迁移。DSH_Launcher.exe,解释器和标准库都内嵌进 exe,运行时完全不需要 Python,双击即用,体验最接近"绿色免安装软件"。| 形态 | 入口 | 需要 Python 吗 | 体积/说明 |
|---|---|---|---|
| exe 版 | 双击 DSH_Launcher.exe |
不需要 | exe 单文件(约 8MB)内嵌解释器;程序根目录必须与 runtime/ 同级 |
| 脚本版 | 双击 start.bat |
不需要(用内置) | 依赖 runtime/python(约 200MB);内置缺失才回退系统 Python |
注:exe 与 start.bat 共用同一套
runtime/,二选一使用即可,数据完全互通。
改过 launcher.py / update_agent.py 后想更新 exe,双击 build_exe.bat 即可:
runtime/pyinstaller(清华镜像,不动系统环境、不用 C 盘)dist\DSH_Launcher.exe 并复制到项目根目录dist\DSH_Update.exe 并复制到项目根目录vcruntime140.dll / vcruntime140_1.dll / vcruntime140_threads.dll)一并打进两个 exe,目标机器无需另装 VC++ 运行库(详见下方"常见问题"末行)若不想等自动下载,可手动把 python-build-standalone 的
cpython-3.10.20+20260807-x86_64-pc-windows-msvc-install_only.tar.gz 解压进 runtime/python,
目录布局放 runtime/python/python.exe 或 runtime/python/任意子目录/python.exe 均可被识别。
127.0.0.1(本机回环),不会暴露到公网把本项目沉淀的部署 / 维护 / 插件开发经验整理成了 TRAE Skill:dsh-deploy-maintain。
skills/dsh-deploy-maintain/(主文档 SKILL.md + checklists/ 检查清单 + references/ 插件骨架与数据目录详解)。~/.trae-cn/skills/dsh-deploy-maintain/),新会话可直接用。ctx.effect 路由注册 / exports 坑)、51 条避坑浓缩为排查速查表。| 问题 | 处理 |
|---|---|
| 提示找不到 Python | 说明内置便携 Python 缺失且下载失败(多为网络问题),按 start.bat 里的提示手动安装 Python 3,勾选 Add to PATH 即可兜底 |
| 下载 Node 慢 / 失败 | 在界面设置里把镜像源切到"国内"或"官方"再试 |
| 安装 dsh 慢 / 长时间卡住 | 官方 npm registry 在国内访问慢,在界面设置或 config.json 把镜像源切到"国内 (npmmirror)",保存后重试(本次绿色版已默认 mirror=cn) |
| 端口被占用 | 设置里改端口(如 3090)后保存,重新启动 |
| 想彻底卸载 | 直接删掉整个文件夹即可(不写注册表、不留系统残留) |
shell 工具报 Windows ACL temp root must be outside the workspace |
该会话的工作区包含了 runtime/tmp(典型:工作区选了程序根目录)。绿色整合把临时目录放在程序目录内,dsh 的 ACL 沙箱要求临时目录必须在工作区外部。解决:开新会话时在工作区选择器里选 workspace(…\workspace,启动器会自动解析并预置)或任何不含 runtime/tmp 的目录;旧会话无法改工作区,只能归档/删除或开新会话 |
| dsh 网页打不开 | 看 runtime/server.log;确认防火墙没拦 127.0.0.1 |
设置 API Key 时报 EPERM: rename denied |
偶发,属安全软件(如火绒)实时扫描与写文件并发冲突。重试一次即可保存成功;若频繁出现,把 DeepSeekHarnessLauncher 目录加入安全软件白名单 |
| 绿色版更新失败 / 更新后没生效 | 独立更新程序会弹窗说明失败原因,并给出手动下载地址(GitHub 发布页 + 更新包直链)。备选:打开 GitHub 发布页下载最新 zip → 解压 → 把解压得到的文件覆盖到程序根目录(不要覆盖 config.json 与 runtime/ 文件夹)→ 重新双击启动 |
本绿色版整体(启动器 launcher.py、绿色版外壳、内置的 6 款插件,见 内置插件一览)统一采用 Apache License 2.0 开源协议:Copyright (c) 2026 LiuJunheng。协议副本见仓库根目录 LICENSE,绿色版 zip 已随包附带。
@deepseek-ai/dsh、Node.js、便携 Python 等)为各第三方项目自己的许可证,绿色版仅在其本地运行时目录内安装使用,不随源码分发。Apache License 2.0 要求:再分发(含绿色版 zip / exe)必须保留本 LICENSE 副本与版权声明;修改文件须标注变更;不授予商标许可;按 "AS IS" 提供、无任何担保。
对绿色版打包的合规提醒:打包命令里必须包含
LICENSE(见上文"轻量分发 zip"),否则分发的 zip 不含协议副本、违反 Apache 2.0 §4 的再分发条款;同样,各插件随绿色版再分发时也需保留根 LICENSE 副本,已随打包目录一并带上。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: dsh-skill。