DSH Remote Console is a mobile enhancement plugin for the DeepSeek Harness (DSH) Web profile, maintained by ZSLsherly. It securely exposes the local DSH instance to mobile browsers through Tailscale Serve, without listening on public network ports, solving connectivity and security issues when using local DSH for debugging on mobile devices.

Core Features

The plugin is registered as an addon into the official conversation.input.dock Slot and provides the following capabilities:

  • Status monitoring: Displays DSH connection, running, awaiting action, and ready states.
  • Session management: Counts pending/completed sessions and provides a way to jump to the next session.
  • Interactive notifications: Provides awaiting-action/task-completed notifications while the browser page remains alive.
  • PWA support: Supports the browser’s “install app” prompt.
  • Touch optimization: Displays only in mobile/touch screen layouts and does not replace the original DSH interface.
  • Workspace registration: Registers and opens local directories directly through DSH’s workspace.create interface. Because host.pickDirectory returns HTTP 403 during mobile remote access, this feature bypasses the restricted native directory picker and supports entering absolute paths (such as C:\my-project).
  • Sleep-prevention mechanism: Keeps the computer from sleeping by using Windows SetThreadExecutionState. It sends a heartbeat every 20 seconds and restores the system’s normal sleep policy after a 90-second timeout without response.

Installation and Enablement

Add the plugin to the DSH Web profile:

dsh plugin --profile web add github:ZSLsherly/DSH-remote-console

After installation, the plugin is integrated into the Web profile input bar as an addon.

Typical Usage

  1. Start the DSH Web Profile:
    dsh.cmd --profile web --port 3080
  1. Access locally:
    Open the local address in a browser:
    http://127.0.0.1:3080
  1. Access remotely:
    The computer and phone must be logged into the same Tailnet. Map the local DSH to the mobile browser through Tailscale Serve. The access address is usually a MagicDNS domain (for example, https://device-name.example.ts.net:8443/).

  2. Open a workspace:
    In the chat input area, click “Open Workspace” or the related button, enter the local workspace absolute path on the computer (such as C:\my-project), and the plugin will register and open the directory directly through the workspace.create interface.

Environment and Limitations

  • Environment requirements:
    • DSH version: 0.1.0-rc.6
    • Node.js version: 22.19+ or 24+
    • Corepack and Tailscale must be installed.
  • Security boundaries:
    • DSH listens only on 127.0.0.1 and does not use 0.0.0.0.
    • The remote script only configures Tailscale Serve and does not enable Funnel.
    • --trusted-host only adds the current device’s MagicDNS :8443 authority.
    • Maintain Tailnet ACLs properly to control access permissions.
    • Page notifications are not Web Push; the browser must keep the page alive.
  • Other limitations:
    • It does not parse session JSONL, create extra DSH child processes, or provide a terminal or bypassPermissions.
    • After updating the plugin, DSH must be restarted once for the new Node-side sleep-prevention mechanism to take effect.

Summary

DSH Remote Console builds a secure mobile debugging channel through Tailscale Serve, addressing pain points in remote access and workspace selection. The plugin follows the MIT License, and the code is hosted on GitHub.