DeepSeek Harness Plugin

xchannel1987/dsh-reverse-proxy-xc

Stars ★ 0 Downloads (30d) 1,309 Category Remote & Mobile Added 2026-08-30 npm dsh-reverse-proxy-xc

LAN reverse proxy plugin for DeepSeek Harness - enables mobile/tablet access with full features, fixes settings panel inaccessible via reverse proxy.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-reverse-proxy-xc

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:xchannel1987/dsh-reverse-proxy-xc

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

中文 | English

DSH LAN Reverse Proxy Plugin — Seamless access to DSH Web GUI from mobile/tablet devices on your local network with the full desktop experience.

DSH 0.1.7 compatible (>=0.1.7-rc.1): adapted to the 0.1.7 breaking changes (ctx.settings.register removed, client service settingsScope → configForms). Settings stay under Settings → LAN Reverse Proxy; saving hot-restarts the proxy via the /api/dsh-reverse-proxy-xc/control route.

✨ Core Features

🌐 Full Feature Access

  • Sidebar Available: Workspaces and session list display normally
  • Settings Panel: All settings accessible
  • Credential Management: API credentials can be managed
  • WebSocket Support: Real-time event push works properly

🔧 Issue Fixes

This plugin resolves critical issues when accessing via reverse proxy:

Issue Cause Solution
Settings panel won't open Frontend disables on non-loopback Proxy injects isLoopback=true
randomUUID error API unavailable under HTTP Auto-inject polyfill
WebSocket disconnects Proxy not forwarding correctly Stream passthrough support
authentication required prompt Mobile access lacks launch token Auto-acquire and inject valid session cookie (bypassToken)

🚀 Technical Implementation

  • Standalone Server: Listens on 0.0.0.0:3090 by default
  • Request Forwarding: Forwards to DSH main service at 127.0.0.1:3080
  • Header Rewriting: Rewrites Host/Origin to loopback address
  • HTML Injection: Auto-injects necessary polyfills

🔒 Security Design

  • LAN Only: Designed for trusted internal network use
  • Trust Barrier: Preserves DSH's original security mechanisms
  • Configurable: Disabled by default, requires manual activation

📦 Installation

# Using DSH CLI
dsh plugin --profile web add dsh-reverse-proxy-xc

# Or using npm
npm install dsh-reverse-proxy-xc

Restart DSH after installation.

⚙️ Configuration

  1. Open DSH Settings
  2. Find "LAN Reverse Proxy" section
  3. Enable "Enable Proxy" toggle
  4. Configure port (default: 3090)

Configuration Options

Option Default Description
enabled false Whether to enable proxy
port 3090 Listen port
host 0.0.0.0 Listen address
bypassToken true Bypass Token Auth (auto-inject valid session cookie, no launch token required)
authEnabled false Whether to enable Basic access authentication
authUser admin Auth username
authPass 123456 Auth password

🎮 Usage

  1. Ensure target device and host are on the same LAN or VPN
  2. Access from target device browser:
http://<host-lan-ip>:3090

Example: http://10.100.50.125:3090

  1. Enjoy the same experience as local http://127.0.0.1:3080

🔧 How It Works

Mobile Browser
    ↓ HTTP/WS
Reverse Proxy (0.0.0.0:3090)
    ↓ Rewrite Headers
DSH Main Service (127.0.0.1:3080)
    ↓ Treats as loopback access
Full features unlocked

⚠️ Security Notes

  • Don't Expose to Internet: This plugin is designed for trusted internal networks
  • VPN Recommended: Use VPN for cross-network access
  • Sensitive Operations: Involves credentials and settings, ensure network security

📄 License

MIT

🔗 Links

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.