Install
Inside DeepSeek Harness, with dsh-market
dsh plugin --profile web add dshmarket
Or from the command line
dsh plugin --profile web add github:hust-open-atom-club/oh-dsh
Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.
README
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
Download and install
Choose a distribution from the latest GitHub Release:
| Distribution | Includes | Best for |
|---|---|---|
| Full | Oh-DSH Desktop, Web, TUI, Node runtime, and bundled plugins | Local development workbench |
| Web-only | Oh-DSH Web, Node runtime, and bundled Web plugins; no Electron | Browser, server, or small installs |
| TUI-only | Oh-DSH TUI, Node runtime, and terminal plugins; no Electron | SSH 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.
Web-only and TUI-only packages are ready after extraction:
# Web UI, listening on http://127.0.0.1:3080 by default
./bin/ohdsh web
# Terminal UI
./bin/ohdsh tui
On Windows, use bin\ohdsh.cmd web or bin\ohdsh.cmd tui.
Install the unified command
The macOS full distribution contains a launcher that can be added to PATH:
sudo ln -sf \
"/Applications/Oh-DSH Desktop.app/Contents/Resources/bin/ohdsh" \
/usr/local/bin/ohdsh
Run ./bin/ohdsh from Web-only and TUI-only packages, or add it to PATH.
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.
The bundled @oh-dsh/vision plugin exposes one view_image tool on every
surface, allowing users to perform OCR, image inspection, and UI diagnosis on
workspace-local files, HTTP(S) images, or image data URLs. DSH's native
attachment rail continues to own image copy, paste, thumbnails, and submission;
the plugin admits DeepSeek V4 at the Host's final image-capability check and
describes its native attachments through the configured vision backend before
the pinned text-only adapter serializes the same turn. It does not add a second
composer bubble or reference protocol. TUI uses the same capability through
workspace image paths or URLs. See the
image recognition guide for credentials
and backend configuration. The cloud/local keys and Vision settings are also
available in the native Settings → Plugins → Plugin configuration → Vision
card.
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
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.
Plugin marketplace

Oh-DSH skins

Documentation
Plugin recommendations
| Recommended project | Description |
|---|---|
| DeepSeek Harness | DSH runtime, sessions, and plugin loader |
| dsh-TUI | Direct upstream plugin for Oh-DSH TUI, providing terminal rendering, interaction, and commands |
| DSH-better-sidebar | Git review, files, and PTY host capabilities |
| dsh-vision | Reference for the cross-surface view_image vision tool |
| dshfind | DSH 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.