dsh-desktop-tools
DSH environment management: auto-installs a Rust/Tauri desktop host (downloaded per-OS from dsh-desktop-host releases, source build as fallback), one-click runtime updates, Windows platform compatibility, official DeepSeek billing, and a built-in code editor for the workspace.
Install
dsh plugin --profile web add dsh-desktop-tools
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
dsh-desktop-tools
dsh 环境管理插件(TypeScript):桌面窗口、运行时管理、平台兼容、计费面板、代码编辑器。




按 dsh"一切皆插件"理念实现的环境管理插件:安装即配备桌面窗口(Rust/Tauri 宿主按系统自动获取)、
运行时一键更新、平台兼容自动适配、DeepSeek 官方计费,以及内置代码编辑器。
桌面窗口由独立仓库 dsh-desktop-host 提供——
宿主轻量原生(约 5MB,非 Electron),所有环境能力仍由 dsh 插件承担,换宿主不改变环境。
特性
- 🪟 桌面窗口(自动携带):安装插件时自动下载/构建对应系统的宿主二进制,
dsh web启动即自动打开桌面窗口;无需手动编译、无需设置环境变量。 - 🔄 运行时一键更新:面板检测
@deepseek-ai/dsh新版本,后台npm install升级并查看日志。 - 🛡️ 平台兼容自愈:Windows 下自动适配终端/进程能力与命令工具(幂等、静默、无需干预)。
- 💰 官方计费面板:DeepSeek 账户余额 + 全部会话 token 用量 + 估算花费(可自定义单价)。
- 📝 代码编辑器:主窗口内浏览/编辑工作区文件,保存即落盘——配合 dsh agent 人工复核文件改动。
- 🖥️ 环境面板弹窗:宿主托盘/快捷键打开独立面板窗口,不打断主界面。
- 🪶 轻量原生:纯 dsh 插件(无壳依赖)+ Tauri 2 宿主(约 5MB 二进制,Windows / macOS / Linux)。
安装
# 从 npm 安装(推荐) dsh plugin --profile web add dsh-desktop-tools # 或从 GitHub 仓库安装(源码/开发版) dsh plugin --profile web add git+https://github.com/YUEEEEY/dsh-desktop-tools.git # 或本地开发(file: 引用) dsh plugin --profile web add file:<本插件目录>
安装后启动 dsh web:插件会自动获取桌面宿主并打开桌面窗口;dsh web --no-desktop 可关闭自动开窗。
宿主获取方式:优先从 dsh-desktop-host Releases
下载当前系统对应二进制到 $DSH_HOME/desktop-host/<platform>-<arch>/;找不到对应资产时回退
clone 源码 cargo build --release。网络不可用时插件照常工作(仅暂不打开桌面窗口),
之后可在面板点击"重新获取宿主"。
桌面端
桌面窗口由 Rust/Tauri 宿主提供,主要能力:
- 系统托盘:显示/隐藏窗口、打开环境面板(弹窗)、打开代码编辑器、在浏览器打开、重启服务、检查更新、开机自启、退出。
- 面板弹窗:
Ctrl+Shift+P或托盘/菜单打开独立面板窗口(宿主状态 / 运行时 / 平台兼容 / 计费摘要)。 - 代码编辑器:
Ctrl+Shift+E或托盘/菜单在主窗口内打开(浏览与编辑工作区文件)。 - 单实例 / 开机自启 / 窗口状态记忆:重复启动聚焦已有窗口;托盘一键自启;记住窗口位置与尺寸。
- 自动更新提示:每 6 小时检查 dsh 运行时更新,发现新版本时托盘提示。
宿主定位顺序:desktopBin 配置 → DSH_DESKTOP_BIN 环境变量 → 自动获取缓存目录 → 仓库构建产物 → PATH。
代码编辑器
对话视图 ⇄ 代码视图 双向切换(Qoder / WorkBuddy 式交互):
- 对话页右下角「⌘ 代码」按钮(或宿主菜单/托盘、
Ctrl+Shift+E)进入代码视图; - 代码视图顶部「对话 / 代码」切换(或
Ctrl+B)回到对话视图。
代码视图内置布局:
- 左侧对话侧栏:嵌入当前会话(可拖动调整宽度、可折叠),编辑文件时对话不中断;
- 文件树:工作区文件浏览(默认跳过
.git/node_modules等,惰性展开,自动刷新并保留展开状态); - 多标签编辑器:按扩展名识别语言,
Ctrl+S保存,未保存标记、状态栏(路径/语言/行列); - 🤖 审查此文件:一键复制当前文件的审查指令并聚焦对话侧栏,粘贴即让 AI 审查;
- 磁盘变更感知:AI/外部改动文件后,标签出现「↻」提示(未修改的自动重载,删除的标「✕」),文件树自动刷新——边对话边审查 AI 的改动;
- 切换目录:运行时切换工作区根目录(打开其它项目,无需重启);
- 编辑器内核为 Monaco(优先 npmmirror CDN,jsdelivr 兜底,离线降级内置编辑器);
- 文件 API(
/api/fs/tree|read|write|watch|changes|root)严格限定在工作区根目录内、仅本地访问,变更类接口同源校验; - 默认根目录为 dsh 工作区,可用配置
editorRoot覆盖。
路由
路由 · 说明
/panel · 环境面板:宿主状态 / 运行时版本与更新 / 平台兼容 / 计费摘要(宿主内为弹窗)
/billing · 计费页:DeepSeek 官方余额 + 全部会话 token 用量 + 估算花费
/editor · 代码编辑器:工作区文件浏览 / 编辑
/api/runtime · GET 运行时状态(已装/最新/可更新);POST 后台执行 dsh 更新
/api/runtime/log · 更新日志尾部 + 是否仍在运行
/api/patches · GET 平台兼容状态;POST 重新应用
/api/desktop · GET 宿主状态(含获取进度);POST 打开桌面窗口
/api/host/ensure · POST 触发宿主自动获取
/api/fs/tree /api/fs/read /api/fs/write · 代码编辑器文件 API(工作区根内)
/api/billing · 计费 JSON(余额 / 用量 / 估算花费)
配置
配置项 · 默认 · 说明
hostAutoInstall · true · 是否自动获取宿主二进制(安装时 / 加载时)
autoOpenDesktop · true · dsh web 启动后自动打开桌面窗口
desktopBin · "" · 宿主二进制路径(留空自动定位)
editorRoot · 工作区 · 代码编辑器根目录
autoApplyPatches · true · 加载时自动应用平台兼容适配(幂等,仅 win32)
checkUpdatesOnLaunch · true · 加载时异步检查新版本并提示
updateMode · auto · auto:有 DSH_RUNTIME_DIR 用 --prefix,否则 npm i -g;global/prefix 强制指定
prices · DeepSeek-V4-Flash 空闲时段价 · 估算单价(¥/百万 tokens)
平台兼容(Windows)
插件加载时自动适配(幂等,非 Windows 自动跳过,无需用户干预):
1. 终端与进程能力:为 dsh 的进程检查在 Windows 上提供实现(基于 PowerShell),
修复终端检查能力缺失导致的报错。
2. 命令工具适配:Windows 下将 bash 持久终端替换为 pwsh 工具。
适配状态可在面板"平台兼容"卡片查看,详情在"诊断"折叠区。
运行时定位顺序(更新 / 适配目标)
1. 环境变量 DSH_RUNTIME_DIR(显式指定运行时);
2. 当前正在运行的 dsh 实例(process.argv[1] → <安装>/lib/bin.js);
3. npm 全局安装的 @deepseek-ai/dsh;
4. 插件自身所在运行时的目录上溯。
无法定位时,更新与适配功能返回"未定位到 dsh 安装",计费、编辑器与页面功能不受影响。
开发
plugins/dsh-desktop-tools/ ├─ src/index.ts # 插件源码(TypeScript) ├─ src/bin.ts # 桌面端入口命令(dsh-desktop) ├─ scripts/ensure-host.mjs # 宿主自动获取(Release 下载 / 源码构建) ├─ tsconfig.json # tsc 构建配置 ├─ lib/ # 构建产物(npm run build 生成) ├─ package.json # dsh.bundle.patch 声明挂载;postinstall 触发宿主获取 └─ cordis.patch.yml # 插件挂载层(insert desktop-tools)
改动后:npm run build 重新编译,仓库内重跑 pnpm install 并重启 dsh 服务生效;
发布新版本用 npm publish。
宿主源码与构建:见 dsh-desktop-host。
License
MIT
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::16,最后更新 2026-08-21