Hefulalala/dsh-remote-workspace
dsh-remote-workspace
DSH plugin: SSH/SFTP remote sites and remote workspaces in the sidebar
Install
npx @deepseek-ai/dsh plugin --profile web add Hefulalala/dsh-remote-workspaceRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-remote-workspace)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from Hefulalala/dsh-remote-workspace, cleaned of badges and images.
dsh-remote-workspace
A plugin for DSH that brings SSH/SFTP remote workspaces into the workspace sidebar — alongside your local directories.
- Remote site = one SSH/SFTP connection profile (host / user / auth / home directory), managed from the 🌐 Remote Sites button.
- Remote workspace = a remote site + a directory on that server. It appears in the left workspace tree exactly like a local workspace, owns its own sessions, and lets the agent read/write remote files directly.
- Unified "Add Workspace" flow — the same add-workspace entry point now asks you to choose a connection first: Local (this computer) or one of your remote sites.
中文速览
- 远程站点:SSH/SFTP 连接配置(主机 / 用户 / 认证 / 家目录),左下角“🌐 远程站点”管理。
- 远程工作区:远程站点 + 远程目录;和本地目录一样出现在左侧栏、按工作区分组 session。
- 统一添加入口:左侧栏“添加工作区”先选连接(本地 / 远程站点 / 新建站点),再选目录。
- 默认家目录:站点配置中目录留空时,自动通过 SFTP 解析服务器真实 home。
- Agent 工具:
remote_site_*管理连接,remote_workspace_*在会话中直接读写远程文件。
Features
-
Site management (bottom-left panel)
- Add / edit / test / delete SSH/SFTP connection profiles
- Auth modes: password, private key file (host path), or SSH Agent
- Empty home path is resolved via SFTP
realpath('.')to the server's real home
-
Unified add-workspace flow (left sidebar)
- Step 1 — choose connection: local computer, an existing remote site, or create a new site
- Step 2 — choose directory:
- Local → native-style directory browser (breadcrumbs, enter folders, create folder)
- Remote → SFTP directory browser starting at the site home; supports navigation and folder creation
- One site can host multiple remote workspaces
-
Native workspace/session grouping
- Each remote workspace gets a local anchor directory (
$DSH_HOME/remote-workspaces/<id>/) - The anchor is registered into DSH's
workspaceRegistry, so remote workspaces appear and behave like local ones: click to start a session, session history stays grouped AGENTS.mdis generated in the anchor: the agent learns the real remote endpoint/root and routes file operations throughremote_workspace_*tools
- Each remote workspace gets a local anchor directory (
-
Agent tools
remote_site_list / add / test / rename / update / remove / browseremote_workspace_list / add / browse / read / write / test / remove- Path traversal protection (everything is confined to the workspace root), read/write size limits
-
Security
- SSH host-key TOFU: first connection records
sha256:<fingerprint>, later connections reject mismatches - Config is persisted in
$DSH_HOME/storages/remote-workspaces.jsonwith0600permissions - Deleting sites/workspaces never deletes remote files; session logs are preserved
- SSH host-key TOFU: first connection records
Install
The package declares a dsh.bundle manifest, so it is installable through
DSH's plugin command and by plugin storefronts such as
dsh-market.
Option A — GitHub Release tarball (recommended)
-
Download
dsh-external-dsh-remote-workspace-0.1.0.tgzfrom the Releases page. -
Extract and prepare it:
mkdir -p ~/dsh-plugins tar -xzf dsh-external-dsh-remote-workspace-0.1.0.tgz -C ~/dsh-plugins bash ~/dsh-plugins/package/install.sh # installs ssh2 and validates artifacts -
Inject it from your DSH session:
# DSH injector environment: # dev_inject_plugin ~/dsh-plugins/package -
Refresh the DSH web page.
Option B — DSH plugin manager
…

