Introduction¶
The core philosophy of DSH is “everything is a plugin.” During local development, model invocation, reasoning, and decision-making all take place locally. When working with remote servers or containers, developers often encounter pain points such as difficult file synchronization, inconsistent command execution environments, and inaccurate search results. dsh-multi-remote addresses this issue by allowing an agent’s file reads/writes, bash execution, and searches to all be performed in the target environment—the brain stays local, while files and commands operate remotely.
What Is This¶
dsh-multi-remote is a DSH client plugin. It is maintained by jk-uzi, currently has 1 star, and uses the MIT license. As a client component, it aims to solve collaboration problems for agents in remote environments, enabling agents to seamlessly connect to SSH, WSL, and Docker environments.
Core Features¶
- Multi-backend support: Supports SSH, WSL, and Docker remote environments simultaneously.
- Local decision-making, remote execution: Model calls, reasoning, and decision-making run locally; file reads/writes, command execution, and searches run remotely.
- True PTY terminal: Supports remote interactive terminals with an authentic pseudo-terminal experience and preserves state across calls (such as
cd, environment variables, and background tasks). - Local anchor mirroring: Supports configuring a local anchor directory as a read-only mirror boundary for displaying file trees in the interface, while the agent’s actual operations are not constrained by this limitation.
- Automatic detection: Supports automatic detection of WSL distributions and Docker containers.
Installation and Enablement¶
The plugin is installed using a Node.js script. Run the following command in the project root directory:
node scripts/in
It is recommended to review the source code for security before installation.
Typical Usage¶
- Connect via the sidebar: In the DSH sidebar, find the “Remote Development” dialog, select a backend (SSH/WSL/Docker), and the system will automatically detect the target list (such as WSL distributions, Docker containers, or previous SSH records).
- Invoke via the agent: In the conversation, ask the agent to call the
remote_connecttool to connect to the target. - Configure the workspace: After a successful connection, open the returned anchor directory as the workspace and create a new session under that workspace. At this point, all agent operations will automatically target this remote environment.
Applicable Scenarios and Notes¶
- Remote environment requirements: SSH requires
sshdto be enabled on the remote host and a login account; WSL requires an installed distribution; Docker requires a running container. The remote side does not need DSH or an API key. - Local anchor limitations: The local anchor directory is a bounded read-only mirror. Files exceeding the per-file limit (256 KiB) are displayed as placeholder files, and their content is not pulled to the local machine. Searches (glob/grep) are executed remotely and do not rely on local ripgrep.
- Permission notice: The plugin runs with the permissions of the current DSH process; review the source code and license before installing.
Short Conclusion¶
By separating computation and storage, this plugin reduces the complexity of local environment configuration and enables agents to operate remote resources securely. For details, see the project directory: dsh-multi-remote or the source code: GitHub.