跪拜 Guibai
← Back to the summary

DeepSeek Harness Gets a Desktop Wrapper That Kills the Browser-Tab Nightmare

What? DeepSeek Harness Can Only Run in a Browser Tab?

On August 13, 2026, DeepSeek open-sourced its first Agent product DeepSeek Harness (dsh) under the MIT license.

"Open the dsh web UI and you can follow along." The official form is a Web UI — run one command, open http://127.0.0.1:3080 in a browser, and all subsequent configuration, conversations, and tool invocations happen inside that webpage.

Using It Is Too Troublesome

dsh's capabilities are solid: real file read/write, command execution, freely installable plugins, and step-by-step approval. But its form factor is really hard to stomach.

1. The graphical interaction is only a webpage, and you have to install Node.js first. The official startup method is just one line:

npx @deepseek-ai/dsh web

The command looks elegant, provided you already have Node.js installed. Checking Node versions, configuring npm mirrors, dealing with network issues — any of these steps can scare off a batch of people. In Wan Shao's 20,000-word tutorial, just the "setting up the environment" part took up a large chunk. Want to run from source? You'll also need pnpm install && pnpm run build.

2. It "cohabitates" with your browser tabs, and the experience is practically zero. The service runs on 127.0.0.1:3080, and the window is just an ordinary webpage tab. It mixes in with my 30 other tabs, and if I accidentally close it — the service is still running, but the interface is gone. To switch back, I have to search through a sea of tabs or retype localhost:3080. No tray icon, no auto-start, no global shortcut — it's like a tenant lodging in the browser.

3. The lifecycle is entirely manual. The web service hangs in the terminal; close the terminal and the service dies. If you don't close it, it stays resident in the background, but there's no visible entry point to manage it. To restart, you go back to the terminal, Ctrl+C, and retype the command. To change ports, you dig through docs to modify environment variables. To check logs, you rely on tail.

4. It does all local work but gets treated like a cloud service. dsh reads and writes local files, runs local commands, manages local processes — yet every time you use it, you have to: open a terminal, type a command, wait for startup, manually open a browser, and type an address. It's like driving a tank to the supermarket to buy a bottle of soy sauce.

Can't Stand It, So I Built My Own: DeepSeek Harness Desktop

Following the "one-click install + local run + embedded web interface" model of n8n-desktop, I used Tauri 2 + React to package dsh into a desktop application:

deepseek-harness-desktop A cross-platform (Windows / macOS / Linux) DeepSeek Harness desktop client, no manual Node.js installation, no pnpm, no Docker required.

Every complaint above has a corresponding answer:

The architecture looks like this:

Tauri WebView (React)
   │  invoke commands + events
Tauri Rust Backend
   ├─ Download Installer: Node.js runtime + dsh distribution package
   ├─ Process Management: dsh --profile web --host 127.0.0.1 --port 3080
   └─ Health Check: Load dsh UI in iframe once ready
           │  DSH_HOME=<app-data>/data/dsh
           ▼
   http://127.0.0.1:3080/  (embedded, no longer occupying a browser tab)

How to run it:

git clone https://github.com/hairyf/deepseek-harness-desktop.git
cd deepseek-harness-desktop
pnpm install
pnpm tauri dev        # development
pnpm tauri build      # package installer

Referenced Juejin articles: