dshplugin.devDeepSeek Harness Plugins
oh-dsh-desktop plugin logo
DeepSeek Harness Plugin

oh-dsh-desktop

47
Published by hust-open-atom-club

Extensible macOS workbench for DeepSeek Harness with a native PTY, workspace tools, live bilingual plugins, and an isolated-preview plugin marketplace.

Developer Toolsdshdsh-plugin

Get this plugin

Review the source, then continue to the publisher.

dsh plugin add @oh-dsh/desktop@latest
Get this plugin
Share on X ↗

About this plugin

Source snapshot 8/13/2026

简体中文 · English

Oh-DSH-Desktop whale

Oh-DSH-Desktop

把 DeepSeek Harness 装进一个可安装、可扩展的桌面工作台。

安装 · 架构 · 内置 Plugins · 构建与发布

macOS 12+ Apple Silicon DSH 0.0.1-rc.2 Electron 42 BSD 3-Clause

Oh-DSH-Desktop 主界面与 Side Panel
主界面、Side Panel 与 Porcelain 桌面皮肤

Oh-DSH-Desktop 保留 DSH React UI,把固定版本的 DSH runtime、Node.js、 Electron 和本地能力打包进一个 macOS 应用。模型仍运行在云端,桌面端负责 终端、Workspace、Git、浏览器、窗口集成和 plugin 生命周期。

它不是另一套 DSH 前端,也不需要额外安装 Web Terminal 或 shell plugin。 @oh-dsh/desktop 提供统一桌面入口,功能模块继续沿用 DSH 官方的 Profile、 Loader、locale、settings 和 ThemeService 契约。

主要能力

  • 自包含的 Apple Silicon macOS 应用与安装包。
  • 多标签 PTY Terminal、逐提交/逐行 Review、Browser 和 Files。
  • Review 评论可汇总进消息输入框,直接交给 Agent 处理。
  • Pinned Summary、可展开 Side Panel 与原生窗口控制。
  • 支持隔离预览、放弃、应用和恢复的插件市场。
  • 中英文实时切换,以及四套 Oh-DSH 自有桌面皮肤。
  • 人类 UI 与 Agent 共用同一套插件安装事务和审批边界。

界面预览

插件市场:浏览 dsh-external 目录,并在隔离环境中预览变更。

Oh-DSH 插件市场

桌面皮肤:在 DSH 设置页即时切换,由 Host 持久化选择。

Oh-DSH 桌面皮肤设置

安装

安装测试包

GitHub Releases 下载:

  • Oh-DSH-Desktop-0.1.2-arm64.dmg
  • Oh-DSH-Desktop-0.1.2-arm64.zip

打开 DMG,把 Oh-DSH-Desktop.app 拖入 Applications。当前测试包没有 Developer ID 和 notarization,首次启动时可在 Finder 中右键应用并选择 “打开”。

如果 macOS 阻止打开 DMG,请先确认文件下载自本项目的 GitHub Release, 再移除该 DMG 的 quarantine 属性并重新打开。请将示例中的 DMG 路径替换为 文件的实际下载路径:

xattr -d com.apple.quarantine ~/Downloads/Oh-DSH-Desktop-0.1.2-arm64.dmg

从源码运行

要求 macOS 12+、Apple Silicon、Node.js 24+、pnpm 11+ 和 Xcode Command Line Tools。

git submodule update --init --recursive
pnpm install
pnpm run build:dsh
pnpm start

Better Sidebar Host 以固定 Git submodule 跟踪,并通过公开 HTTPS 仓库获取; 初始化该 submodule 不需要 SSH 或 GitHub CLI 认证。固定的 DSH 源码单独获取, 也可以通过下述 DSH_SOURCE 指向已有 checkout。

发行构建固定使用 DSH 0.0.1-rc.2

7b9644f2b664e46c9518506035aa6c8d5af4d8e8

首次构建会把源码放进 .cache/dsh-source/。如需使用另一个 checkout,可设置 DSH_SOURCE=/absolute/path,但 package version 必须与固定版本一致。

运行数据位于:

~/Library/Application Support/Oh-DSH-Desktop/dsh

DeepSeek API key 可以在 DSH 设置页配置,也可以写入该目录下的 .env

常用操作

操作快捷键
切换 DSH 左侧栏⌘B
切换底部 Terminal⌘J
切换 Side Panel⌥⌘B
打开 Review⌃⇧G
打开 Browser⌘T
打开 Files⌘P
新建 Side chat⌥⌘S
退出 Side Panel 专注模式Esc

Side Panel 打开时会收起 Pinned Summary,并显示全屏展开按钮。Terminal 与 Side Panel 可以独立开关。

架构

flowchart TB
  App["Oh-DSH-Desktop.app<br/>Electron shell"]
  Desktop["@oh-dsh/desktop<br/>window · menu · unified entry"]
  Runtime["Bundled Node.js + DSH runtime"]
  UI["DSH React UI"]
  Host["better-sidebar-runtime<br/>PTY · files · Git · commit diff"]
  Panels["panel-controls<br/>Terminal dock"]
  Sidebar["desktop-sidebar<br/>review UI · comments · tools"]
  Summary["pinned-summary<br/>session summary"]
  Market["plugin-marketplace<br/>preview · apply · recover"]
  Skins["desktop-skins<br/>theme · persist"]

  App --> Desktop
  App --> Runtime --> UI
  Runtime --> Host
  UI --> Panels
  UI --> Sidebar
  UI --> Summary
  UI --> Market
  UI --> Skins
  Panels --> Host
  Sidebar --> Host

cordis.patch.yml 复用 dsh-basedsh-web-app,在随机 loopback 端口 启动 Web runtime,再按依赖顺序加载桌面 plugins。第三方插件仍由 DSH Profile 和 Loader 管理。

内置 plugins

Plugin来源关系Oh-DSH 改造
@oh-dsh/desktopOh-DSH 自研统一桌面入口、Electron bridge、原生菜单、窗口、Agent 能力与内置 plugin 注册顺序
@oh-dsh/better-sidebar-runtime固定跟踪 DSH-better-sidebar submodule仅编译上游 Host,提供 PTY、Files、Git、history 和 commit diff;不加载上游 UI
@oh-dsh/panel-controls基于 dsh-web-panel 的下游改造保留 Oh-DSH Terminal dock、主题、双语和 Session 状态,复用统一 PTY Host;不再安装独立 Web Terminal
@oh-dsh/pinned-summaryOh-DSH 自研当前 Session 摘要、半高卡片和正文 gutter 管理
@oh-dsh/desktop-sidebarDSH-better-sidebar 的 Oh-DSH UI 下游复用统一 Host,提供 Session tabs、viewer、Files、Git Review、逐行评论和 Agent composer 引用,保留现有布局、图标与主题
@oh-dsh/plugin-marketplace炼化 plugin-registrydsh-hub统一隔离预览、风险确认、TOFU 来源锁、应用与恢复流程,并适配桌面导航和双语 UI
@oh-dsh/desktop-skins基于 dsh-skins 的下游改造沿用 ThemeService 扩展思路,重做皮肤、设置 UI 和 Host 持久化

标记为“下游改造”或“炼化”的 plugin 会定期检查上游 release 和 feature,选择 与当前 DSH 契约兼容的能力同步。同步以 feature 为单位重新适配,不直接覆盖 Oh-DSH 的 UI、主题和桌面交互。

更完整的来源与许可证说明见 THIRD_PARTY_NOTICES.md

插件市场

左侧 Plugins 页面浏览 dsh-external 目录。安装、更新、启用、停用和卸载 都会先生成隔离 candidate Profile:

检查来源与精确 commit
        ↓
在隔离 Profile 中安装并启动预览
        ↓
放弃(当前桌面不变)或应用(保留 previous)
        ↓
需要时 Undo 恢复上一份 Profile

Agent 也可以通过对话进入同一流程。应用和恢复仍需要人类审批,不能绕过预览 或启动第二套 DSH Loader。私有仓库认证使用 GitHub CLI:

gh auth login

安全边界

  • DSH Web runtime 与 Agent 管理通道只监听随机 loopback 端口。
  • Browser 使用独立 Electron partition,不注入 Node.js 或 preload。
  • Better Sidebar Host 对 Files 和 Git 请求执行 Session 与 Workspace 边界校验。
  • 市场固定 Git commit,默认阻止安装脚本,应用前不修改当前 Profile。
  • pnpm release-age 策略保持启用,只排除 @deepseek-ai/*

本地构建与发布

完整构建会重建固定 DSH;缓存已经就绪时可使用 quick 构建:

pnpm run dist:mac
# 或
pnpm run dist:mac:quick

产物位于 release/

release/
├── Oh-DSH-Desktop-0.1.2-arm64.dmg
├── Oh-DSH-Desktop-0.1.2-arm64.zip
└── mac-arm64/Oh-DSH-Desktop.app

仓库当前不依赖 GitHub Actions 生成发行包。上传前在本机验证:

pnpm run typecheck
pnpm test
pnpm run dist:mac
pnpm run smoke:app
codesign --verify --deep --strict \
  release/mac-arm64/Oh-DSH-Desktop.app
hdiutil verify release/Oh-DSH-Desktop-0.1.2-arm64.dmg

验证通过后手动创建 Release,已有 Release 则使用 gh release upload --clobber 更新产物:

gh release create v0.1.2 \
  release/Oh-DSH-Desktop-0.1.2-arm64.dmg \
  release/Oh-DSH-Desktop-0.1.2-arm64.zip \
  --title "Oh-DSH-Desktop 0.1.2" \
  --generate-notes

License

BSD 3-Clause