Introduction¶
DeepSeek Harness (DSH) provides a Web interface for debugging and developing agents. On macOS, you usually need to manually enter dsh web in the terminal to start the service, and manage process startup, shutdown, and log viewing by yourself. dsh-start encapsulates these operations into a unified command-line tool and provides the ability to generate a Dock-able application, reducing repetitive work.
Plugin Overview¶
dsh-start is a launcher plugin for DeepSeek Harness (DSH) Web on macOS. It provides a set of terminal scripts (supporting startup, stopping, status query, and background execution) and a build script that can generate DSH.app. The plugin is maintained by user zhengjy01 and aims to simplify DSH Web operations.
Core Features¶
- One command, four modes: supports foreground execution (visible logs, stop with Ctrl+C), background daemon execution (logs output to a file), stopping the service, and querying service status.
- Repeated startup protection: detects whether the default port 3080 is already in use. If the service is already running, it directly opens the browser, avoiding the launch of multiple instances.
- Automatic browser launch: after the service starts and is ready, it automatically opens
http://127.0.0.1:3080. - Normal-app feel: generates
~/Applications/DSH.appvia the--build-appcommand. The application has a Dock icon, starts with a double click, can be stopped with Cmd+Q (with a confirmation dialog), and clicking the Dock icon again checks service status and opens the browser. - Permission-safe design: to avoid
EPERMpermission errors caused by the macOS sandbox or TCC, the built App delegates command execution to Terminal rather than callingdshdirectly.
Installation and Enablement¶
Installing this plugin requires Node.js to be installed on the system, with a version of 18 or higher.
npm install -g dsh-start
Typical Usage¶
After installation, you can use the following commands to manage the DSH service.
- Start in foreground: runs in the current terminal, logs are visible in real time, and you can stop it with Ctrl+C.
dsh-start
- Start in background: the service runs in the background, and logs are saved to
~/.dsh/web.log.
dsh-start -d
- Stop the service: automatically finds and terminates the process based on the port.
dsh-start stop
- Check status: checks whether the service is running and the access address.
dsh-start status
- Build Dock application: generates
~/Applications/DSH.app.
dsh-start --build-app
(The build script relies on Python3 and Pillow to generate icons.)
Suitable Scenarios and Notes¶
- Suitable scenarios: macOS users who want to manage DSH Web like ordinary software, or who frequently start/stop the service and want the browser to open automatically.
- Permission issue: on first launch of
DSH.app, macOS may prompt “DSH wants to control Terminal”; you need to click “Allow”. - Session data: after restarting, the session list in the sidebar may appear empty. In reality, session data is stored in
~/.dsh/sessions; if the service started by the App crashes, restarting it from the terminal will restore it. - Error handling: if
EPERM: operation not permittedappears, please usedsh-start --build-appto regenerate the application, or start it directly from the terminal using the command line.
Conclusion¶
By scripting and app-ifying the workflow, dsh-start addresses the basic operational pain points of DSH Web on macOS. For developers accustomed to the terminal or in need of quick start/stop, it provides necessary convenience.