Introduction

When developing agents in DeepSeek Harness (DSH), the workspace is the core carrier. Although the Web interface is convenient, it can be limited by browser permissions when you need to deeply edit code or inspect local file structures. The dsh-open-with plugin uses a host proxy mechanism to connect the Web interface with the local development environment, allowing you to directly open registered workspaces in a detected local editor.

What Is It

This is a DSH client plugin developed by maintainer ChuanTianML. Its core purpose is to launch a local editor from the Web GUI and open the currently registered DeepSeek Harness workspace directory.

Core Features

  1. Editor Detection: Automatically detects multiple local editors, including VS Code, Cursor, Windsurf, Zed, JetBrains IDEs, and more.
  2. Configuration Management: Supports adding custom editors or overriding built-in detection rules through configuration files.
  3. Dynamic Refresh: Clicking “Refresh Editors” re-runs host discovery and updates launchers without restarting the DSH service.
  4. Security Boundary: The browser only receives editor IDs, labels, and availability status. Commands and arguments are not transmitted across the network to the browser.
  5. Compatibility: Supports using sidebar.workspaces.row-menu or a compatibility adapter to support older clients.

Installation and Enablement

This plugin requires DSH 0.1.0-rc.5 or later.

  1. Add the plugin to the Web profile:
    dsh plugin --profile web add https://github.com/ChuanTianML/dsh-open-with/archive/refs/tags/v0.2.1.tar.gz
  1. Restart the DSH Web server.
    • Linux / macOS: Terminate the process with SIGTERM, wait for it to fully exit, then refresh the page.
    • Windows: Terminate the process with SIGTERM; never use kill -9, otherwise it may interrupt zstd writes for the session.
  2. Verify the installed version:
    dsh plugin --profile web list dsh-open-with --depth 0

Typical Usage

Add the plugin configuration to the DSH Web profile. Configuration items include autoDetect (automatic detection), editors (custom editor list), and defaultEditor (default editor ID).

  1. Set the default editor:
    - id: dsh-open-with
      name: dsh-open-with
      config:
        defaultEditor: cursor
  1. Add a custom editor:
    - id: dsh-open-with
      name: dsh-open-with
      config:
        editors:
          - id: fleet
            label: Fleet
            command: fleet
            args: []

Use Cases and Notes

  • Use Cases: Agent development scenarios where you need to debug code directly in a local editor or inspect the workspace file structure.
  • Permissions and Security: Once started, editor processes run independently, with lifecycles longer than the DSH Web server. The plugin only operates locally and does not read, upload, or synchronize files.
  • Notes:
    • Configuration changes require restarting the DSH service to take effect.
    • Preferences are stored in the browser’s local state, so different browsers can have different default editors.
    • Only currently registered workspaces with existing directories can be opened.

Brief Conclusion

This plugin addresses the disconnect between the Web interface and local development environments through its security boundary design. For more details and source code, visit its GitHub repository.