dsh-remote-dock

dsh-remote-dock

SSH and WSL remote workspaces inside DeepSeek Harness

Release CI MIT license

简体中文 / English · Install · Usage · Docs

`dsh-remote-dock` adds a **Remote** entry to [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness). Connect a Linux server over SSH or a WSL distribution and open its full DSH interface in your local window. File operations and commands run in the target environment. ![Remote workspace with SSH and WSL targets on the left and the remote DSH interface on the right](docs/assets/remote-workspace.png) *Desktop screenshot.* ## Features - **SSH and WSL targets.** Discover hosts from your SSH configuration and local WSL distributions, or add targets manually. SSH connections reuse local keys, ssh-agent and jump-host settings. - **Remote setup.** Probe Node and DSH, review the installation plan, then install the selected components under the remote user's home without sudo. - **Model configuration.** Copy local providers, the default model and API keys to the remote environment, with backups before writing. - **Connection controls.** Reload, go fullscreen, restart or stop remote DSH from the panel. Reconnect to an existing instance, with automatic retries for dropped SSH tunnels. ## Install Requires DSH `0.2.1-rc.2` or newer. Add this source in the plugin manager: ```text github:Lee-Eee-Eee/dsh-remote-dock#v0.1.5 ``` Restart DSH and refresh the page. **Remote** appears in the sidebar.
Install from the command line If `dsh` is available in your terminal, run: ```sh dsh plugin --profile desktop add "github:Lee-Eee-Eee/dsh-remote-dock#v0.1.5" ``` Replace `desktop` with the profile your host actually uses; web hosts typically use `web`. Installing into another profile will not add the plugin to the current host.
### Upgrading from the old name This project is now **dsh-remote-dock**, previously `dsh-remote`. Remove the old plugin from your current profile, add the new source above, and restart DSH. Enable only one copy. Saved targets, remote installations and model configuration remain available. `dsh-remote-workspace@0.1.0-alpha.*` belongs to a different project. Install this project using the GitHub source shown on this page. ## First connection 1. **Add a target.** Open **Remote** and click **+** beside an SSH host or WSL distribution. Use **Add target** to enter an SSH alias or host details manually. 2. **Probe the environment.** Select the target and click **Probe**. If Node or DSH is missing, open **Review install plan**, choose the steps and start installation. ![Probe result: OS, Node, dsh, tmux, disk and CPU](docs/assets/fig-probe.png) 3. **Configure a model.** If the remote has no model configuration, open **Port local config**, select the provider, default-model and API-key groups you need, then click **Write and restart**. The API-key group copies actual secret values, so use a target you trust. Skip this step when the remote already has a working model. 4. **Connect.** Click **Connect**, then choose a remote project in the embedded DSH interface and start working. The right-hand pane is the target's own DSH, running with the model configuration you ported. ![Connected: target list and the embedded remote DSH](docs/assets/fig-connect.png) Configuration previews show names and counts only, and local browser-session credentials are excluded from porting. Remote conversations and projects are managed inside the embedded DSH interface. ### Once connected Several targets can stay connected at the same time, each independent: switching targets switches which machine's DSH you are looking at. ![Multiple targets at once](docs/assets/fig-multi.png) | Action | Effect | |---|---| | Reload | Refresh the remote interface | | Restart | Restart DSH on the target | | Stop remote | End the target instance and close the local connection | | Close the panel / exit local DSH | Leave the remote process running for reconnection | ## Requirements | Environment | Requirement | |---|---| | DSH host | `0.2.1-rc.2` or newer | | Host runtime | Node `22.x` (≥ `22.19.0`), or `24` and newer | | SSH target | Linux x86_64 / arm64 with non-interactive key or agent authentication | | Automatic setup | `bash`, `tar`, and either `curl` or `wget` | | WSL | Windows–Linux loopback reachability: mirrored networking, or NAT with localhost forwarding enabled | ## Common questions **No Remote entry after installation?** Check that you installed into the current host's profile, then restart DSH and refresh the page. **SSH connection fails?** Verify that `ssh ` works without an interactive prompt and that the server permits SSH port forwarding. Password prompts are unsupported. **The interface opens but the model does not work?** Check the remote model configuration. After applying **Port local config**, restart remote DSH. **Unknown host requirement or old screenshots in the market?** Use dshmarket `1.73.0` or newer to read GitHub plugins' host requirements. Screenshots refresh with catalog builds. See [marketplace metadata](docs/architecture.en.md#marketplace-metadata). For WSL networking, host-key and embedded authentication issues, see [troubleshooting](docs/architecture.en.md#troubleshooting). ## Documentation and feedback - [Technical reference](docs/architecture.en.md): connection architecture, authentication, configuration porting, file locations and troubleshooting. - [Contributing](CONTRIBUTING.md): local installation, validation commands and code organization. - [Changelog](CHANGELOG.md) · [Releases](https://github.com/Lee-Eee-Eee/dsh-remote-dock/releases) - [Report a bug or suggest a change](https://github.com/Lee-Eee-Eee/dsh-remote-dock/issues) with your DSH version, target type, reproduction steps and a sanitized error message. ## License [MIT](LICENSE)