oh-dsh
Health Pass
- License — License: BSD-3-Clause
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 56 GitHub stars
Code Warn
- network request — Outbound network request in plugins/desktop-sidebar/src/client/better-sidebar-api.ts
- network request — Outbound network request in plugins/desktop-sidebar/src/client/plugin.tsx
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
一站式 DeepSeek Harness 社区发行版:TUI、桌面端与 Web UI 三种形态统一体验,支持分层安装、一步到位,免去手工整合打包。
简体中文 · English
主界面、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 应用与安装包,以及 Linux x64 AppImage / deb。
- 多标签 PTY Terminal、逐提交/逐行 Review、Browser 和 Files。
- Review 评论可汇总进消息输入框,直接交给 Agent 处理。
- Pinned Summary、可展开 Side Panel 与原生窗口控制。
- 支持隔离预览、放弃、应用和恢复的插件市场。
- 中英文实时切换,以及四套 Oh-DSH 自有桌面皮肤。
- 人类 UI 与 Agent 共用同一套插件安装事务和审批边界。
界面预览
插件市场:浏览公共 DSH 社区目录,并在隔离环境中预览变更。
桌面皮肤:在 DSH 设置页即时切换,由 Host 持久化选择。
安装
安装测试包
从 GitHub Releases
下载:
Oh-DSH-Desktop-0.1.1-arm64.dmgOh-DSH-Desktop-0.1.1-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.1-arm64.dmg
Linux
Linux x64 已支持从源码构建;首个 AppImage / deb 尚未发布。发布后会出现在
GitHub Releases。
Linux 运行数据位于 ~/.config/Oh-DSH-Desktop/dsh,DeepSeek API key 可以
在 DSH 设置页配置,也可以写入该目录下的 .env。
从源码运行
macOS 要求 macOS 12+、Apple Silicon、Node.js 24+、pnpm 11+ 和 Xcode
Command Line Tools。Linux 要求 x64、Node.js 24+、pnpm 11+ 与基础构建
工具链(make、g++、python3),发行版之间无额外依赖。
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。已发布的 DMG、ZIP、AppImage
和 deb 已包含编译产物,不需要仓库权限。
发行构建固定使用 DSH 0.1.0-rc.5(npm 上的 0.1.0-rc.6 即同一份代码的
公开发布版本号),源码来自官方公共仓库:
47f943859bef60e4160492346772ded9b24f765a
首次构建会把源码放进 .cache/dsh-source/。如需使用另一个 checkout,可设置DSH_SOURCE=/absolute/path,但 package version 必须与固定版本一致。
运行数据位于:
macOS ~/Library/Application Support/Oh-DSH-Desktop/dsh
Linux ~/.config/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-base 与 dsh-web-app,在随机 loopback 端口
启动 Web runtime,再按依赖顺序加载桌面 plugins。第三方插件仍由 DSH
Profile 和 Loader 管理。
内置 plugins
| Plugin | 来源关系 | Oh-DSH 改造 |
|---|---|---|
@oh-dsh/desktop |
Oh-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-summary |
Oh-DSH 自研 | 当前 Session 摘要、半高卡片和正文 gutter 管理 |
@oh-dsh/desktop-sidebar |
DSH-better-sidebar 的 Oh-DSH UI 下游 |
复用统一 Host,提供 Session tabs、viewer、Files、Git Review、逐行评论和 Agent composer 引用,保留现有布局、图标与主题 |
@oh-dsh/plugin-marketplace |
兼容 plugin-registry、dsh-hub 与公共 dsh-suite 目录 |
统一隔离预览、风险确认、TOFU 来源锁、应用与恢复流程,并适配桌面导航和双语 UI |
@oh-dsh/desktop-skins |
对早期 dsh-skins ThemeService 扩展模型的下游重实现 | 沿用 ThemeService 扩展思路,重做皮肤、设置 UI 和 Host 持久化 |
标记为“下游改造”或“炼化”的 plugin 会定期检查上游 release 和 feature,选择
与当前 DSH 契约兼容的能力同步。同步以 feature 为单位重新适配,不直接覆盖
Oh-DSH 的 UI、主题和桌面交互。
更完整的来源与许可证说明见
THIRD_PARTY_NOTICES.md。
插件市场
左侧 Plugins 页面默认读取公开的 whyihaveyou/dsh-suite/data/plugins.json
目录,并保留条目中的规范 owner/repo 身份。安装、更新、启用、停用和卸载
都会先生成隔离 candidate Profile:
检查来源与精确 commit
↓
在隔离 Profile 中安装并启动预览
↓
放弃(当前桌面不变)或应用(保留 previous)
↓
需要时 Undo 恢复上一份 Profile
Agent 也可以通过对话进入同一流程。应用和恢复仍需要人类审批,不能绕过预览
或启动第二套 DSH Loader。私有仓库认证使用 GitHub CLI:
gh auth login
可通过 OH_DSH_MARKETPLACE_CATALOG=owner/repository/path/to/catalog.json
切换到兼容的 dsh-external-hub/v0.1、omdsh-registry/v1 或dsh-suite 1.0 目录。
安全边界
- 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:linux
# 或
pnpm run dist:mac:quick
pnpm run dist:linux:quick
macOS 产物位于 release/:
release/
├── Oh-DSH-Desktop-0.1.1-arm64.dmg
├── Oh-DSH-Desktop-0.1.1-arm64.zip
└── mac-arm64/Oh-DSH-Desktop.app
Linux 产物同样位于 release/:
release/
├── Oh-DSH-Desktop-0.1.1-x86_64.AppImage
├── Oh-DSH-Desktop-0.1.1-amd64.deb
└── linux-unpacked/oh-dsh-desktop
打包内置的 Node runtime 默认匹配构建机平台;跨平台打包可显式指定DSH_DESKTOP_NODE_PLATFORM(linux/darwin)与 DSH_DESKTOP_NODE_ARCH
(x64/arm64)。
仓库当前不依赖 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.1-arm64.dmg
Linux 上对应验证:
pnpm run typecheck
pnpm test
pnpm run dist:linux
pnpm run smoke:app:linux
当前 package、下载说明和公开 Release 均为 v0.1.1。准备下一个版本时,
先统一更新 workspace package 版本,再使用同一版本创建 tag 与 Release:
gh release create vNEXT \
release/Oh-DSH-Desktop-NEXT-arm64.dmg \
release/Oh-DSH-Desktop-NEXT-arm64.zip \
release/Oh-DSH-Desktop-NEXT-x86_64.AppImage \
release/Oh-DSH-Desktop-NEXT-amd64.deb \
--title "Oh-DSH-Desktop NEXT" \
--generate-notes
License
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found