Skip to content

mervyn-teo/dsh-plugin-qr-connect

30Last commit Aug 15, 2026

dsh-plugin-qr-connect DSH plugin

This plugin injects a full-width button into the sidebar footer of the DeepSeek Harness web interface. When clicked, it displays two QR codes for local network and public internet access, backed by a small auth-gated reverse proxy. The proxy validates a rotating secret and issues a session cookie, then forwards requests to the loopback web UI, including WebSocket upgrades.

How to install the dsh-plugin-qr-connect DSH plugin

dsh plugin --profile web add github:mervyn-teo/dsh-plugin-qr-connect

Copying does not run this command. Review the repository and version before installing the dsh-plugin-qr-connect DSH plugin.

dsh-plugin-qr-connect DSH plugin data source

dsh-plugin-qr-connect DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-plugin-qr-connect DSH plugin can do

  • Adds a QR-code button in the sidebar footer above the Plugins button.
  • Shows two QR codes: local network and public internet (with blue color).
  • Runs a child Node.js reverse proxy on a configurable port with auth-gated access.
  • Rotates the secret every 30 seconds (configurable) and refreshes QR codes.
  • Supports click-to-copy for QR links and an info tooltip for the public QR.
  • Provides a settings card under Settings → Plugins to configure port, session length, and refresh interval.
  • Supports both English and Chinese UI via DSH's locale service.

Where the dsh-plugin-qr-connect DSH plugin fits

  • Connect a phone or tablet to the DSH web UI on the same network without typing the address.
  • Grant temporary access to the DSH agent shell for a colleague or friend over the internet.
  • Quickly access the web UI from a device that cannot easily enter a URL.
  • Demonstrate or monitor DSH sessions on a mobile device during presentations.
  • Provide a convenient way to open the UI on a TV or second screen via QR scanning.

Who the dsh-plugin-qr-connect DSH plugin is for

  • DSH users who need to access the web UI from mobile devices on the same network.
  • Developers or operators who want to share the DSH interface securely over the internet with a rotating secret.

dsh-plugin-qr-connect DSH plugin limitations

  • Requires DSH with `subprocess`, `fs`, and `webServer` services mounted.
  • Needs internet access from the DSH host for public IP lookup (via api.ipify.org).
  • The scanning device must be able to reach the proxy port; host firewall may need an allow rule.
  • Public internet access requires port forwarding and exposes the agent shell to anyone who can reach the port, gated only by the rotating secret and session cookie.
  • Not a hardened remote-access layer; intended for trusted-network convenience.

dsh-plugin-qr-connect DSH plugin: from the repository README

Quoted from the mervyn-teo/dsh-plugin-qr-connect README, the upstream source of the dsh-plugin-qr-connect DSH plugin. Copyright remains with the original authors.

English | [中文](README.zh.md) A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) Web plugin that adds a **QR-code button above the Settings button** in the sidebar footer. It runs a small auth-gated reverse proxy so a phone on the same network (or the internet) can scan a QR code and open the web UI securely. It is a persistent bundle plugin (a host half plus a browser half) that loads on every boot. ## Demo <p align="center"> <img src="assets/demo-v2.gif" alt="dsh-plugin-qr-connect demo — click the QR button, scan, connect" width="360"> </p> ## What it does - Adds a full-width button (`sidebar.footer.action`, id `qr-connect`) stacked **above** the shipped Plugins button. - Opens a fading panel with **two** QR codes: - **Local network** — `http://<lan-ip>:<port>/?auth=<secret>`. - **Public internet** — `http://<public-ip>:<port>/?auth=<secret>` (blue). - The reverse proxy (a child `node` process on `0.0.0.0:<port>`) validates the secret, issues a session cookie (default 30 days), and forwards to the loopback web UI — including WebSocket upgrades so live updates reach the phone. - The secret rotates every 30s by default and the QR refreshes t

Read the full READMERepository license: MIT

dsh-plugin-qr-connect DSH plugin questions

How do I install dsh-plugin-qr-connect?

Run the command `dsh plugin --profile web add github:mervyn-teo/dsh-plugin-qr-connect` in your terminal. Then restart `dsh web` to load the bundle. After restart, you'll see a QR button above the Plugins button in the sidebar.

How do I configure the proxy port or session duration?

You can edit the default values in `cordis.patch.yml` (port, sessionDays, refreshSeconds) and restart DSH. Alternatively, go to Settings → Plugins → QR connect in the web UI and adjust the values there. Changes take effect immediately for the running instance.

Can I use this plugin over the internet?

Yes, the plugin shows a public internet QR code. However, you must ensure the DSH host's proxy port is reachable from the internet (e.g., via port forwarding). The public IP is automatically detected via api.ipify.org. Note that the proxy is secured only by a rotating secret and session cookie, so treat it as a convenience for trusted networks, not a hardened remote-access solution.

What happens if the secret rotation is disabled?

If you set `refreshSeconds` to 0, the secret will not rotate and the QR code will not refresh. This reduces security since the same secret is valid indefinitely. It is recommended to keep a short refresh interval (e.g., 30 seconds) for better security.

Does the plugin work on Windows, macOS, and Linux?

Yes, the host half uses in-process local IP and public IP detection without shell commands, and communicates with the proxy child process via stdin. It is tested on all three platforms. You just need Node.js and DSH with the required services mounted.