The DeepSeek Harness (DSH) ecosystem includes dsh-tui, dsh Web, and various agent tools. In development environments, these tools often need to read IDE context (current file, cursor position, diagnostics, and so on). If each tool implements its own collection logic, the code becomes redundant and state inconsistency can easily occur. The dsh-ide-ipc plugin solves this problem. It runs as a socket server and is responsible only for collecting and reporting context. This allows dsh-tui, dsh Web, and agent tools to read the same real-time registry.

Plugin Role

This is a standalone DeepSeek Harness IDE IPC plugin. It acts as a socket server and supports multiple IDEs connecting simultaneously. The IDE plugin is responsible only for collecting and reporting its own context. As a result, dsh-tui, dsh Web, and agent tools all read the same real-time registry. The plugin is maintained by wlz6 and uses the MIT license.

Core Features

  • Standalone server and multiple connections: Provides a standalone socket server and supports multiple IDEs connecting simultaneously.
  • Unified context collection: The IDE plugin is responsible for collecting and reporting context.
  • State sharing: dsh-tui, dsh Web, and agent tools share the real-time registry.
  • Multi-client support: Supports Nvim and VS Code client connections.
  • Operation forwarding: Provides tools such as ide_list and ide_context to forward operations, and supports ide_open_file, ide_save_document, and ide_open_diff.
  • Communication protocol: The protocol is a 4-byte little-endian length + JSON frame.

Installation and Activation

The installation commands are as follows. Run the corresponding command for each profile:

dsh plugin --profile dsh-tui add github:wlz6/dsh-ide-ipc
dsh plugin --profile web add github:wlz6/dsh-ide-ipc

After installation, start the corresponding profile. The default IPC endpoints are as follows:

  • Linux/macOS/WSL: ~/.cache/nvim-context-ipc/dsh.sock
  • Windows: \\.\pipe\dsh-ide-ipc

You can also override config.socketPath on the bundle row, or set the environment variable DSH_IDE_IPC_SOCKET.

Typical Usage

After installation and startup, you can use the following commands in dsh tools:

  1. List connected IDEs, workspaces, and current files:
    Use ide_list.

  2. Read the latest context of the selected IDE:
    Use ide_context.

  3. Forward operations to the selected IDE:
    Use ide_open_file, ide_save_document, and ide_open_diff.

When multiple IDEs are connected simultaneously, tools pass ide_id; when only workspace routing is available, workspace can be passed.

Protocol details: The protocol is a 4-byte little-endian length + JSON frame; the current protocol version is 1.

Notes and Use Cases

  • Connection method: Nvim acts as the client and actively connects to this plugin. VS Code uses a standalone adapter; the installation method is to run git clone and then install it with code --install-extension. This does not bring the VS Code API into the dsh server.
  • Permissions and security: The socket directory has 0700 permissions, and the socket file has 0600 permissions.
  • Use cases: Scenarios where contexts need to be shared between different IDEs, or where dsh tools need to control IDE operations.
  • Caution: The plugin runs with the permissions of the current dsh process. Before installation, review the source code and license.

With dsh-ide-ipc, developers can build unified state management within the DSH ecosystem. It simplifies communication between multiple IDEs and makes context flow more efficient.