FlipFlopszzz
dsh-studio
Desktop workbench & plugin collection for DeepSeek Harness (DSH): Electron shell, IDE-ification plugins, and MCP services
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-studio
DSH Studio —— 面向 DeepSeek Harness (DSH) 的桌面工作台与插件集合(monorepo)。
目标:把 DSH 的浏览器界面升级为完整的 IDE 式桌面工作台,并以插件生态的形式持续扩展能力。
点击启动 → 自动拉起 DSH 内核(dsh web)→ 打开完整可用的桌面窗口。
仓库结构
dsh-studio/
├─ apps/
│ └─ shell/ # Electron 壳(@dsh-studio/shell)
│ ├─ main.js # 主进程:探测端口 / spawn 内核 / 开窗 / 清理
│ ├─ logs/ # 运行时日志(被 gitignore)
│ └─ dist/ # 打包产物(被 gitignore)
├─ plugins/ # DSH 插件集合(每个子目录一个插件包)
│ └─ (browser / filetree / viewer / terminal / remote … 规划中)
├─ mcp/ # 自研 MCP 服务集合(规划中)
├─ package.json # npm workspaces 聚合层
└─ README.md
特性(当前,shell)
- 一键启动:探测
127.0.0.1:3080;内核未运行时自动 spawndsh web并等待就绪 - 只连不托管:若 DSH 已在运行(浏览器里开着),壳直接复用,不重复启动
- 干净退出:只杀掉自己拉起的内核进程,不碰用户自己启动的实例
- 日志落盘:
%APPDATA%\DSH Studio\logs\(打包环境安全位置) - 目录版打包:
npm run build生成dist/win-unpacked/,双击 exe 即可运行
环境要求
- Windows 10/11
- Node.js ≥ 20
- DSH 已全局安装:
npm install -g @deepseek-ai/dsh(壳通过 PATH 中的dsh命令启动内核)
使用
# 安装依赖(根目录,workspaces 统一安装)
npm install
# 开发模式运行 shell
npm start
# 打包 shell(输出到 apps/shell/dist/)
npm run build
打包产物位于 apps/shell/dist/win-unpacked/,直接双击 DSH Studio.exe 即可运行。
工作原理
[双击 DSH Studio.exe]
│
├─ 探测 http://127.0.0.1:3080
│ ├─ 已在运行 → 直接开窗
│ └─ 未运行 → spawn `dsh web` → 轮询端口(最多 60s) → 开窗
│
└─ BrowserWindow 加载 http://127.0.0.1:3080
配置
| 环境变量 | 默认值 | 说明 |
|---|---|---|
DSH_GUI_PORT | 3080 | DSH 内核监听端口 |
日志
%APPDATA%\DSH Studio\logs\dsh-gui.log— 壳自身日志%APPDATA%\DSH Studio\logs\dsh-kernel.log— 内核 (dsh web) 输出
路线图
已完成
- 最小壳:探测/拉起/开窗/清理
- 日志落盘(userData 目录,打包安全)
- 目录版打包(
--win dir,双击运行) - monorepo 重组(shell / plugins / mcp 分层)
进行中 / 待做
- 系统托盘、单实例锁
- 生命周期策略插件化
后续目标(IDE 化改造)
目标:把 dsh-studio 从"浏览器窗口壳"升级为完整的 IDE 式桌面工作台,能力通过 Electron 渲染层 + DSH 插件体系 + MCP 工具 三层协作实现。
- 右侧边栏内置浏览器:内嵌浏览器面板(基于
webviewTag/ WebContentsView),agent 可通过工具导航、点击、填表、截图并反馈画面 - 文件树:左侧工作区文件树(浏览/新建/重命名/删除),与 DSH 会话 cwd 联动
- 文件查看器:点击文件树节点在面板中预览(文本高亮、图片、PDF、二进制识别)
- 实时交互终端:内嵌 PTY 终端面板,agent 与用户可同时操作,输出可回流给 agent
- 远程控制:远程桌面/移动端控制 GUI,或通过 MCP 暴露窗口控制能力
实现分层约定
Electron 薄壳 → 物理层:窗口、WebContentsView、PTY、IPC 桥(保持最薄)
DSH 插件体系 → 逻辑层:host 插件(工具、策略)+ 客户端插件(UI 面板)
MCP 服务 → 能力层:现成能力(Playwright/浏览器、文件、终端)直接挂载
- 渲染层 UI(浏览器面板、文件树、查看器、终端面板)以 DSH 客户端插件 形式挂载
- agent 操作能力(浏览器控制、文件操作、终端交互)以 host 插件工具 / MCP 形式暴露
- 官方内核保持不动,所有扩展走
cordis.patch.yml与独立 npm 包