Preface¶
DeepSeek Harness (DSH) adopts a plugin-based architecture, allowing developers to enhance functionality through extensions. When developing or operating with DSH, it is sometimes necessary to use a mobile device for interaction or remote control. dsh-gb is a client plugin designed to turn a phone into a voice remote peripheral for DSH. Through LAN communication or a built-in public network tunnel, it enables the phone to monitor status, provide voice input, handle approvals, and browse messages.
Core Features¶
dsh-gb provides the following core features:
- Real-time Status Bar: Displays the current workspace, session, and Agent status (running/idle/awaiting approval), as well as message browsing progress on the phone interface.
- Voice Input: Directly invokes the phone’s input method speech-to-text function and sends messages by pressing a key.
- Approval and Multiple-Choice Questions: Supports YES/NO approval logic, as well as selecting and submitting multiple-choice options.
- Joystick and Keys: Uses the joystick and keys to browse messages, flip pages, and pause Agent execution.
- Session Management: Supports switching workspaces, switching sessions, or creating a new session on the phone.
- Public Network Tunnel: Enables remote access through built-in cloudflared, without requiring external services such as Peanut Shell.
- Zero Runtime Dependencies: The QR code encoder is built in, with no additional npm dependencies.
Installation and Enablement¶
Prerequisites¶
Before installation, ensure the environment meets the following conditions:
- Node.js ≥ 20
- pnpm ≥ 10
- git
Installation Command¶
In the DSH Web configuration directory, run the following command to install the plugin:
dsh plugin --profile web add github:zingzheng/dsh-gb
After installation, DSH must be restarted to load the Host-side components. After the restart, a dynamic QR code can be found under the “Handheld” option on the GUI Settings page to establish a connection.
Usage¶
LAN Connection (Default Mode)¶
- Ensure that the phone and the computer running DSH are on the same LAN.
- Find the “Handheld” option on the DSH GUI Settings page and scan the displayed QR code.
- The phone interface will display a Game Boy-style remote control panel.
Basic Operations¶
- Voice Input: Use the phone’s input method for speech-to-text, then press the A key or Enter to send.
- Message Browsing: Use the
←→keys to switch between messages, and the↑↓keys to scroll through the full content. - Approval and Multiple-Choice Questions: When an approval or multiple-choice question is present, the interface will show a highlighted prompt. Use the joystick or arrow keys to select, then press the A key to confirm.
Public Network Tunnel¶
Default mode only supports LAN connections. If remote access is required, switch to “Public Network Mode” on the GUI Settings page:
- Quick Tunnel: When first enabled, cloudflared is automatically downloaded (approximately 30-60MB, cached in
~/.dsh/cache), and a temporary public address is generated (*.trycloudflare.com). The address will change after DSH restarts, requiring the QR code to be scanned again. - Named Tunnel: A tunnel must be created in the Cloudflare console and mapped to a hostname. Once filled in on the settings page, a fixed address can be obtained.
Technical Details¶
- Port: The default listening port is 7788. If the port is occupied, the service automatically shifts to 7795.
- Authentication: Persistent token authentication is used. The token is stored in
~/.dsh/dsh-gb.tokenand can be reset on the settings page. - Architecture: The plugin is divided into a Host side and a Client side. The Host side runs locally and provides an HTTP server and SSE push; the Client side is integrated into the browser and is responsible for QR code generation and UI rendering.
- Security: All endpoints require a random token. The
/infoendpoint only allows local loopback access, and action endpoints have stricter CORS restrictions.
Use Cases¶
- DSH needs to run in the background, and the phone is used to check status or send commands at any time.
- Approval flows or multiple-choice questions can be handled through the phone without operating the computer.
- In a remote network environment, the local DSH can be securely controlled through a public network tunnel.