🦎 dsh-chameleon 自修改桌面工作台 —— DeepSeek Harness (DSH) 的独立桌面客户端:完整 dsh web 功能 + 编辑模式(agent 边对话边改工作台,免重启热更新)。 > ⚠️ 编辑模式为半成品(实验性):当前可改补丁层/插件并热更新,但 HMR 链路、工具集覆盖面与组合层变更仍有已知缺口(详见 docs/DEVELOPMENT.md),请勿在生产会话中依赖。 ## 功能介绍 | 类别 | 说明 | |---|---| | 🖥️ 独立客户端 | 双击即启动(3998 端口);独立 DSH_HOME~/.dsh-chameleon),与 web 完全隔离、可同时运行 | | 🚀 长上下文流畅 | 消息列表渐进渲染 + 后台不节流 + zstd 本地回放,40 万 token 会话流畅滚动 | | 🎨 UI 微调 | 无边框窗口 + 原生控件;智能拖拽区(样式表规则,重渲染不丢);会话日志按钮自动避让 | | ✏️ 编辑模式 | selfedit 预设:改补丁层/插件/UI 实时生效,编辑历史与回滚、workbench_* 工具集(半成品) | | 🗑️ 会话删除(可选插件) | 头部按钮 + 侧栏菜单项(不跳转),弹框显示会话名与序列号;运行中可删(先停再删);删除后原地刷新不重载。一行安装:dsh plugin add github:lsz-asd/dsh-plugin-session-delete | | 🔌 插件生态 | 完整继承官方 dsh web 插件面(工具 / 会话 / 审批 / UI 等 130+ 组合行)+ 自研 workbench 插件 ×3;设备信息(12 个 win_* 工具)、sleep、会话健康等常用插件一行 dsh plugin add 按需安装 | ## 安装说明 只需装两样东西:dsh 本体(运行时)+ 我们的客户端。 除此之外不需要任何大依赖——不需要 pnpm、不需要单独的 Harness 源码;客户端不内置(更不会重复安装)运行时,保持轻量。 ### 1. 装 dsh 本体(运行时) sh npm install -g @deepseek-ai/dsh 需要 Node.js ≥ 20(建议 24):https://nodejs.org ### 2. 装客户端 sh # 获取源码 git clone https://github.com/lsz-asd/dsh-chameleon.git cd dsh-chameleon/apps/desktop # 安装客户端(Electron 壳 + 几 KB 客户端代码,npm 或 pnpm 皆可) npm install # 或 pnpm install # 启动(Windows 双击快捷方式,或) npm start 首次启动自动创建独立 home(~/.dsh-chameleon)、写入 chameleon profile,并把客户端的 4 个小包复制进 Harness 的模块回退目录——没有任何包管理器安装,几秒完成;之后秒开。 > 客户端复用你已装的 dsh 本体:优先用全局安装(npm i -g 的位置),其次 PATH,最后才是本地副本——不会重复下载数百 MB 的 Harness。 ### 可选:打包为安装程序(Windows) sh cd apps/desktop npm run dist # electron-builder 生成 NSIS 安装器(dist/ 目录) ### 插件安装(可选,任意 profile) sh dsh plugin --profile <profile> add github:lsz-asd/dsh-plugin-session-delete # 会话删除 dsh plugin --profile <profile> add github:lsz-asd/dsh-plugin-device-info # 设备信息(12 个 win_* 工具) 重启 profile 生效。 > 插件管理是唯一需要 pnpm 的路径dsh plugin 内部转发 pnpm):npm install -g pnpm。客户端基线完全不需要。 ## 更新计划 - [ ] 编辑模式完善:HMR 链路加固、工具集补全(组合层变更热生效) - [ ] Windows 安装包:发布 NSIS 安装器(npm run dist 产物上架 Release;不内置 dsh 运行时,复用系统 dsh 本体,客户端保持轻量) - [ ] 会话删除增强:fork 级联删除、删除事件总线广播(替代 reload) - [ ] 插件市场页:客户端内浏览/安装发布插件(对接 dsh plugin) - [ ] 会话迁移工具:跨 home 导入/导出会话 ## 结构 apps/desktop/ Electron 壳(自举独立 home + Chrome 注入) packages/ workbench-core / workbench-ui / workbench-runtime bundle/ 补丁装配层 presets/selfedit 编辑模式预设 scripts/ 自举与验证脚本 ## 版本历史 ### v0.3.0 · 2026-08-14 - 轻量安装重构:客户端不再内置 @deepseek-ai/dsh(依赖树由 ~646MB 降至纯 Electron 壳),改为复用系统 dsh 本体(全局安装 → PATH → 本地副本) - 基线零 pnpm:profile 自举不再跑 pnpm install——客户端把自己的 4 个小包(bundle + workbench ×3)同步进 Harness 的扁平模块回退目录,随装随走;pnpm 仅剩「可选插件管理」一条路径 - bundle 瘦身:移除指向本机绝对路径的 @huanlin/dsh-plugin-session-delete 依赖与补丁行(已独立成仓,按需 dsh plugin add 安装) - 升级迁移:旧 pnpm 流程装出的 profile 自动归一化(清掉 file: 依赖与陈旧 @dsh-external 副本) - 客户端首次自举即向独立 home 播种编辑模式预设 ### v0.2.0 · 2026-08-14 - 会话删除重构:侧栏 "..." 菜单项不跳转对话,直接弹出确认框 - 弹框显示会话名称与序列号;运行中的会话显示警告("删除会立即停止其任务…")但仍可删除 - 当前会话可直接删除;删除运行中会话时 host 先停止 agent(cancel + 等待静止)再清理 - 删除后原地刷新列表(不重载页面),并从内存 store 摘除会话(修复"已删会话残留在未分组") - 侧栏菜单按客户端列表匹配会话(修复 fork 后缀等标题差异导致的"点了没反应") ### v0.1.0 · 2026-08-14 - 首个发布版:独立客户端(独立 home、双击启动、免重启热更新) - 会话删除插件(当时随 bundle 分发:头部按钮 + 侧栏菜单项 + 风险确认 + 端到端清理) - 编辑模式(selfedit 预设 + workbench 工具集 + 3 个编辑技能)