Introduction

The DeepSeek Harness (DSH) desktop client runs on the Windows WebView2 shell. DSH fixed the underlying shell.open-external bridge in version 5.3.6, but it did not complete the click interception logic for <a target="_blank"> at the WebUI layer. As a result, in version 5.3.6, clicking http/https links in messages still produces no response.

The dsh-external-links plugin aims to complete this missing “wiring.” It intercepts link click events and directly calls the fixed native bridge, enabling links to open automatically in the system default browser while leaving in-app navigation and download functionality unaffected.

Core Features

  • http/https links: Opens in the system default browser after clicking.
  • file:// paths: Decoded to a Windows absolute path, then opened in the default application via openPath.
  • In-app link protection: Same-origin links, 127.0.0.1/localhost, #hash, download links, and javascript: links are unaffected.
  • Native interactions preserved: Right-click copy, middle-click behavior, and other native interactions are not broken.
  • No-shell fallback: When DSH is not running inside a shell (the WebUI is opened directly), it automatically falls back to window.open.
  • v0.2.0 optimization: Removed host routing dependency; pure client-side implementation, no longer depends on PowerShell.

Installation and Enablement

The plugin is installed in the user profile directory, and version updates will not overwrite existing installations.

Method A: bundle installation (quick)

Use the official plugin command to install it. This method generates a dsh.profile.bundles configuration:

dsh plugin --profile web-desktop add github:Lion-Li-git/dsh-external-links

Note: Plugins installed via the bundle method currently do not support disabling/removal on the plugin management page (they must be uninstalled from the plugin marketplace).

Method B: direct installation via cordis.patch.yml (recommended)

Add the dependency to dependencies in ~/.dsh/profiles/web-desktop/package.json and configure cordis.patch.yml:

  1. Add the following to dependencies:
    "dsh-external-links": "github:Lion-Li-git/dsh-external-links"
  1. Run pnpm install.
  2. Append the following to the end of ~/.dsh/profiles/web-desktop/cordis.patch.yml:
    - insert:
        - id: dsh-external-links
          name: 'dsh-external-links'
  1. Restart the DSH desktop client. The plugin will appear in the Settings → Plugins list and can be toggled directly.

Verification

  1. After restarting the DSH desktop client, open any session.
  2. Click an http/https external link in a message; it should open automatically in the default browser.
  3. Try in-app navigation, the settings page, or a download, and confirm that the functionality works normally.
  4. Disable the plugin on the plugin management page and restart the client; links should return to the “no response when clicked” state, proving that the plugin was effective.

Notes

  • Version requirement: DSH desktop client >= 5.3.6 is required. For versions below 5.3.6, please use 0.1.0 (the native bridge is not fixed).
  • Installation location: The plugin is installed in the user profile (~/.dsh) and is not overwritten by version updates.
  • Compatibility: Pure client-side implementation with no framework dependency.

Conclusion

dsh-external-links resolves the missing link interaction issue at the WebView2 layer of the DSH desktop client. By connecting directly to the native bridge, it ensures standard system default browser behavior while maintaining stability within the application.