Introduction

In the plugin-based architecture of DeepSeek Harness (DSH), agents typically run locally, using the local file system and Shell tools. When development needs to be performed on a remote server (such as a development environment or production sandbox), the existing tool stack cannot work directly. The dsh-remote-development plugin uses a routing mechanism to convert local tool calls into remote SSH execution, without adding extra tools for the model or third-party UI components.

Plugin Overview

Name: cjylzs/dsh-remote-development
Maintainer: CJYLZS
Purpose: A lightweight remote development plugin. It allows users to connect to remote machines via SSH and designate a remote directory as the workspace, so that agents work in the remote environment using exactly the same toolset as local operation.

Core Features

  • Consistent Toolset: The plugin does not add new model tools. The file, Shell, and Bash tools used by agents remain unchanged; the plugin converts them into remote execution at the lower level.
  • Zero Remote Dependencies: Remote machines do not require additional server-side components; everything works over an SSH connection.
  • Web GUI Integration: Manage SSH connections in the web interface (supports password, private key, SSH Agent, and jump host), and provide customizable machine marker colors.
  • Routing Providers: Replace underlying providers with RoutingFileSystem, RoutingSubprocessRuntime, and RoutingBashExecutor to implement remote routing for the file system, subprocess, and Bash.
  • SFTP Session Multiplexing: All file operations share a single SFTP session, avoiding connection exhaustion.
  • Remote Workspace Directory Flow: Select a remote directory as the session workspace in the web interface.

Installation and Activation

Before installing, check the current dsh version and ensure the plugin version matches the host version; otherwise, startup errors or command failures may occur.

dsh -V

Select the appropriate installation command based on your dsh version:

  1. dsh ≥ 0.1.7-alpha.1 (recommended v0.2.x):
    dsh plugin add --profile web github:CJYLZS/dsh-remote-development#v0.2.0
  1. dsh 0.1.2-rc.1 – 0.1.5-rc.x (v0.1.x):
    dsh plugin add --profile web github:CJYLZS/dsh-remote-development#v0.1.0

After installation, you must restart Harness for changes to take effect.

Typical Usage

The usage workflow is simple and consists of only three steps:

  1. Add a Machine: In the dsh-remote-development settings page of the Web GUI, configure the target machine’s address, port, and username, select an authentication method (password/private key/Agent), and test the connection.
  2. Select a Remote Directory: In the workspace directory flow (main dialog or sidebar), switch to the Remote tab, browse and select a directory on a remote machine as the session workspace.
  3. Normal Operation: You can now use file tools and Shell as if working locally. The agent automatically uses the remote path as the working directory, without special commands.

Notes

  • Version Compatibility: The plugin must match the host dsh version. A version mismatch can cause startup errors (e.g., Cannot read properties of undefined) or command execution failures (e.g., shell.run is not a function).
  • Impact of Deleting a Machine: If the machine associated with a remote workspace is deleted, remote workspace operations will fail directly with the message “machine is no longer configured”.
  • Anchor Mechanism: Only operations under the selected directory execute remote logic. Paths outside the selected directory retain local behavior and are not affected by the plugin.
  • Restart Requirement: After installing a new version or changing configuration, it is recommended to restart Harness.

Ecosystem Context

The design philosophy of DeepSeek Harness is “everything is a plugin”. This plugin is a community-maintained plugin project intended to extend Harness’s remote development capabilities. For more details, see the Skill Tree Plugin Directory or the GitHub repository.