oh-dsh README

The project's README from github.com/hust-open-atom-club/oh-dsh. As one markdown file: README.md.

简体中文 · English

Oh-DSH whale

Oh-DSH

一套 DSH runtime,Desktop、Web 与 TUI 三种开发体验。

把 AI Agent、Workspace、本地工具与插件生态带到你习惯的界面。

GitHub release GitHub stars Desktop, Web and TUI macOS, Linux and Windows MIT License

下载最新版 · 使用文档 · 设计文档

Oh-DSH 三种交互界面:Web、Desktop 与 TUI

Oh-DSH 将 DeepSeek Harness、Node.js、本地开发工具和内置插件打包为可安装的 Desktop、Web 与 TUI 发行版。模型服务仍可按需运行在云端;Workspace、终端、 Git Review、浏览器、文件、会话与插件状态由本地工作台统一组织。

主要能力

🖥️ 三种交互界面

使用同一个 ohdsh 命令启动 Desktop、Web 或 TUI。三端共享会话、凭据、皮肤与插件缓存,同时保留独立 Profile。

🧰 本地开发工作台

内置 Workspace、PTY 终端、浏览器、文件浏览、Side chat 与 Trajectory;面板可以折叠、固定、分屏或全屏展开。

🔍 Git Review

查看工作区改动与 commit diff,在代码行上添加 review comment,并在同一个侧边栏完成分支、提交和推送操作。

🧩 插件市场

Desktop、Web 与 TUI 都能检索、预览和安装插件,并共享同一套交易与恢复状态。目录会标明插件实际生效的界面:安装可能在所有终端都成功,但某些插件只在 Web 或 Desktop 生效、在 TUI 不生效,界面上会明确区分。

🎨 跨端皮肤

@oh-dsh/skins 为 Desktop、Web 与 TUI 提供统一主题,并针对各界面的布局和可读性分别适配。

📦 可拆分发行

按需安装完整版、Web-only 或 TUI-only。每种发行都自带固定版本的 DSH 与 Node runtime,不要求单独安装运行环境。

下载与安装

首选:命令行安装

Linux 与 macOS 使用仓库根目录的 install.sh 安装最新稳定版。默认安装 TUI,并将 ohdsh 注册到 ~/.local/bin;新开一个终端后即可使用:

curl -fsSL \
  https://raw.githubusercontent.com/hust-open-atom-club/oh-dsh/main/install.sh \
  | bash

需要 Web 或 Desktop 时显式选择发行形态:

curl -fsSL \
  https://raw.githubusercontent.com/hust-open-atom-club/oh-dsh/main/install.sh \
  | bash -s -- --surface web

curl -fsSL \
  https://raw.githubusercontent.com/hust-open-atom-club/oh-dsh/main/install.sh \
  | bash -s -- --surface desktop

Windows 使用仓库根目录的 install.ps1;不带参数时同样默认安装 TUI:

irm https://raw.githubusercontent.com/hust-open-atom-club/oh-dsh/main/install.ps1 | iex

安装完成后,通过统一命令启动已安装的界面:

# 终端界面
ohdsh tui

# Web 界面
ohdsh web

# Desktop 应用
ohdsh desktop

ohdsh 只会启动已经安装的 surface;Desktop 的直接入口 oh-dsh-desktop 仍然保留。Linux/macOS 如果当前终端还没有加载新的 PATH, 请重新打开终端;Windows 请使用新终端。

安装器在校验发布的 SHA-256 摘要之前不会触碰旧安装,下载失败、摘要不匹配 或解压中断都保持原安装可用;重复执行同一命令即为原地升级, --uninstall 按 surface 卸载。完整选项、环境变量与 surface 矩阵见 安装说明。

从 GitHub Release 手动安装

从 GitHub Releases 选择需要的发行形态:

发行形态 包含内容 适合场景
完整版 Oh-DSH Desktop、Web、TUI、Node runtime 和内置插件 本地开发工作台
Web-only Oh-DSH Web、Node runtime 和内置 Web 插件,不含 Electron 浏览器、服务器或轻量安装
TUI-only Oh-DSH TUI、Node runtime 和终端插件,不含 Electron SSH 与纯终端环境

安装脚本是推荐入口;Release 资产适合需要手动选择包或离线分发的场景。

使用

ohdsh desktop          # 启动 Oh-DSH Desktop
ohdsh gui              # Desktop 的启动别名
ohdsh web              # 启动 Oh-DSH Web
ohdsh web --port 3080  # 指定 Web 端口
ohdsh tui              # 启动 Oh-DSH TUI

三端默认共同使用 ~/.ohdsh 存放缓存、配置、会话、凭据与插件状态。 设置 OH_DSH_HOME 可以统一更换数据目录;运行 ohdsh web --help 或 ohdsh tui --help 可以查看界面专属选项。

图片输入由 DSH 原生多模态模型(如 DeepSeek V4 Flash)直接处理:复制、粘贴、 缩略图与提交全部由原生 attachment rail 负责,无需额外的视觉桥接插件或单独的 API Key。详情见图片输入使用说明。

从源码运行

需要 Node.js、pnpm 和平台构建工具:

git submodule update --init --recursive
pnpm install
pnpm run build:dsh
pnpm run build
pnpm run stage:dsh
export PATH="$PWD/bin:$PATH"

ohdsh desktop
ohdsh web
ohdsh tui

本地开发时,也可以用仓库根目录的 Makefile 快速启动指定交互端:

make build
make tui ARGS="--lang zh"       # 只暂存并启动 TUI
make web ARGS="--port 3080"     # 只暂存并启动 Web
make desktop                     # 只暂存并启动 Desktop

make tui 默认使用 inline 模式,从当前终端光标位置继续渲染;需要 alternate screen 时传入 ARGS="--fullscreen"。每个 Make 目标只会暂存 对应交互端的 Oh-DSH package,不会把其它交互端一起带入开发 runtime。Make 默认使用 ~/.ohdsh,也可以覆盖:OH_DSH_HOME=/tmp/ohdsh make tui。

Desktop、Web 和 TUI 共享同一组 Agent preset;其中 liangshen(梁神模式)会在 首轮保持 Minimal 双工具,首次工具调用后开放完整工具目录,压缩后重新锚定。 Web/Desktop 可在设置页的 Agent preset 中选择,TUI 可输入 /preset liangshen。

打包完整版使用对应平台的 dist:mac、dist:linux 或 dist:win;只打包 Web 使用 pnpm run dist:web;只打包 TUI 使用 pnpm run dist:tui。

更多界面

插件市场

Oh-DSH 插件市场

Oh-DSH 皮肤

Oh-DSH 跨界面皮肤

文档

插件推荐

推荐项目 说明
DeepSeek Harness DSH runtime、会话与插件加载器
dsh-TUI Oh-DSH TUI 的直接上游插件,提供终端渲染、交互和命令体系
DSH-better-sidebar Git Review、文件与 PTY Host 能力
dshfind DSH 插件超市与学习社区,提供插件、生态与 DeepSeek Harness 周边推荐

Oh-DSH 保留上游实现与署名,并在其上提供统一启动器、Profile、数据目录、 跨端皮肤、界面适配和发行打包。详细边界见设计文档。

License

MIT

oh-dsh (hust-open-atom-club/oh-dsh)

Searching Database…

322 ·GitHub
What is this?Oh-DSH is an installable runtime that bundles DeepSeek Harness (DSH), Node.js, local dev tools, and plugins into Desktop, Web, and TUI distributions, all launched from one 'ohdsh' command.
Is this a desktop app, a website, or a terminal tool?All three: the same 'ohdsh' command launches a desktop Electron app, a web interface, or a terminal UI, and all three share sessions, credentials, skins, and plugin cache while keeping separate profiles.
Do I need to install Node.js or DeepSeek Harness myself?No — every distribution bundles a pinned Node.js runtime and DSH, so no separate runtime install is needed. Building from source instead requires Node.js, pnpm, and platform build tools.
Do all plugins work the same across Desktop, Web, and TUI?No — the plugin marketplace marks which surfaces a plugin actually works on; installation may succeed everywhere, but a plugin can be functional only in Web or Desktop and inactive in TUI.
Can I use this in a pure SSH or terminal-only environment?Yes — the TUI-only distribution ships just the TUI, Node runtime, and terminal plugins without Electron, specifically aimed at SSH and terminal-only environments.
Where does my session and credential data live?All three surfaces share a local ~/.ohdsh folder by default for cache, config, sessions, credentials, and plugin state; the OHDSHHOME environment variable lets you move this elsewhere.
What does the Git Review feature do?It lets you review working-tree changes and commit diffs, add line-level review comments, and handle branching, committing, and pushing from the same sidebar inside the workbench.
Do I need a separate plugin or API key to send images?No, image input is handled natively by DSH's multimodal models like DeepSeek V4 Flash through the built-in attachment rail, with no extra vision-bridge plugin or API key required.
What is DeepSeek Harness (DSH), and how does Oh-DSH relate to it?DSH is the upstream coding-agent runtime, session manager, and plugin loader; Oh-DSH preserves DSH's implementation and credit while adding a unified launcher, profiles, a shared data directory, cross-surface skins, and packaged distributions on top.
What is the 'liangshen' agent preset?It's a built-in agent preset shared across Desktop, Web, and TUI that starts with a minimal two-tool set, opens the full tool catalog after the first tool call, and re-anchors after context compression; it can be selected in settings or via '/preset liangshen' in the TUI.
Size
20.3 MB
Stars
322
Age
2mo
Commits · 90 Days