hust-open-atom-club/oh-dsh

hust-open-atom-club/oh-dsh

社区发行版:TUI、桌面端与 Web UI 统一体验,分层安装、一步到位。

‍ 开发与运行时ai-agentcordisdeepseek-harness

简体中文 · English

Oh-DSH whale

Oh-DSH

One DSH runtime. Desktop, Web, and TUI development experiences.

Bring AI agents, workspaces, local tools, and the plugin ecosystem to the interface you prefer.

Download · Usage guide · Design guide

Oh-DSH surfaces: Web, Desktop, and TUI

Oh-DSH packages DeepSeek Harness, Node.js, local development tools, and bundled plugins as installable Desktop, Web, and TUI distributions. Model services can still run in the cloud; the local workbench organizes workspaces, terminals, Git review, browser, files, sessions, and plugin state.

Features

🖥️ Three interaction surfaces

Use the same ohdsh command to start Desktop, Web, or TUI. All surfaces share sessions, credentials, skins, and plugin caches while keeping separate Profiles.

🧰 Local development workbench

Workspace, PTY terminal, browser, file explorer, side chat, and trajectory are built in. Panels can collapse, pin, split, or expand over the workspace.

🔍 Git review

Inspect workspace changes and commit diffs, add review comments to code lines, and manage branches, commits, and pushes from the same side panel.

🧩 Plugin marketplace

Desktop, Web, and TUI can all search, preview, and install plugins through one shared transaction and recovery state. The catalog labels where a plugin actually takes effect: installation may succeed on every surface, but some plugins only work on Web or Desktop — not in TUI — and that distinction is shown explicitly.

🎨 Cross-surface skins

@oh-dsh/skins provides shared themes for Desktop, Web, and TUI, with layout and readability adaptations for each surface.

📦 Split distributions

Install the full, Web-only, or TUI-only distribution. Each includes pinned DSH and Node runtimes, so no separate runtime installation is required.

Download and install

Preferred: command-line installation

Use the repository's root-level install.sh on Linux and macOS to install the latest stable release. It installs TUI by default and registers ohdsh under ~/.local/bin; open a new terminal and run:

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

Choose Web or Desktop explicitly when needed:

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

On Windows, use the root-level install.ps1; it also installs TUI by default:

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

After installation, use the unified command for any installed surface:

# Terminal UI
ohdsh tui

# Web UI
ohdsh web

# Desktop application
ohdsh desktop

ohdsh starts only surfaces that have been installed; the direct oh-dsh-desktop entry point remains available. On Linux/macOS, open a new terminal if the current shell has not loaded the new PATH; on Windows, use a new terminal.

The installers verify the published SHA-256 digest before touching the previous installation, so a failed download, checksum mismatch, or interrupted extraction keeps the old install usable. Re-running the command upgrades in place, and --uninstall removes a surface. Options, environment overrides, and the surface matrix are documented in the installation guide.

Manual installation from a GitHub Release

Choose a distribution from the latest GitHub Release:

DistributionIncludesBest for
FullOh-DSH Desktop, Web, TUI, Node runtime, and bundled pluginsLocal development workbench
Web-onlyOh-DSH Web, Node runtime, and bundled Web plugins; no ElectronBrowser, server, or small installs
TUI-onlyOh-DSH TUI, Node runtime, and terminal plugins; no ElectronSSH and terminal-only environments
  • macOS: open the DMG and drag Oh-DSH Desktop into Applications.
  • Windows: run the installer, or extract and launch the portable package.
  • Linux: run the AppImage, or install the deb with apt.

The installer is the recommended entry point; Release assets are useful when you need to choose a package manually or distribute it offline.

Usage

ohdsh desktop          # Start Oh-DSH Desktop
ohdsh gui              # Alias for Oh-DSH Desktop
ohdsh web              # Start Oh-DSH Web
ohdsh web --port 3080  # Choose the Web port
ohdsh tui              # Start Oh-DSH TUI

All three surfaces use ~/.ohdsh for caches, configuration, sessions, credentials, and plugin state by default. Set OH_DSH_HOME to move the shared data root. Run ohdsh web --help or ohdsh tui --help for surface-specific options.

Image input is handled directly by natively multimodal models such as DeepSeek V4 Flash: DSH's native attachment rail owns image copy, paste, thumbnails, and submission, with no extra vision bridge plugin or separate API key. See the image input guide for details.

Run from source

Node.js, pnpm, and the platform build tools are required:

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

For local source development, use the repository Makefile to start one surface quickly:

make build
make tui ARGS="--lang en"       # stage and start TUI only
make web ARGS="--port 3080"     # stage and start Web only
make desktop                     # stage and start Desktop only

make tui uses inline mode by default and renders from the current terminal cursor position; pass ARGS="--fullscreen" to use the alternate screen. Each Make target stages only its own Oh-DSH surface packages, so unrelated interaction surfaces are not added to the development runtime. Make uses ~/.ohdsh by default; override it with OH_DSH_HOME=/tmp/ohdsh make tui.

Desktop, Web, and TUI share the same Agent preset roster. The bundled liangshen preset keeps the root and delegated agents on Minimal's two-tool surface for the first request, promotes to the full catalog after the first tool call, and re-anchors after compaction. Select it from the Agent preset settings in Web/Desktop, or run /preset liangshen in TUI.

Build the full distribution with the platform-specific dist:mac, dist:linux, or dist:win script. Build only Web with pnpm run dist:web, or only TUI with pnpm run dist:tui.

More interfaces

Plugin marketplace

Oh-DSH plugin marketplace

Oh-DSH skins

Oh-DSH cross-surface skins

Documentation

Plugin recommendations

Recommended projectDescription
DeepSeek HarnessDSH runtime, sessions, and plugin loader
dsh-TUIDirect upstream plugin for Oh-DSH TUI, providing terminal rendering, interaction, and commands
DSH-better-sidebarGit review, files, and PTY host capabilities
dshfindDSH plugin marketplace and learning community with plugin, ecosystem, and DeepSeek Harness peripheral recommendations

Oh-DSH preserves upstream implementations and attribution, then provides the unified launcher, Profiles, data root, cross-surface skins, interface adaptations, and distribution packaging. See the design guide for the exact boundaries.

License

MIT