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, andRoutingBashExecutorto 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:
- dsh ≥ 0.1.7-alpha.1 (recommended v0.2.x):
dsh plugin add --profile web github:CJYLZS/dsh-remote-development#v0.2.0
- 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:
- Add a Machine: In the
dsh-remote-developmentsettings 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. - 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.
- 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
dshversion. 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.