Back to home@DobyChao

dsh-workspace-enhancement

No description

Stars
0
Language
TypeScript
Created
Aug 25, 2026
Updated
Aug 26, 2026
GitHub repo

Introduction

dsh-workspace-enhancement

English | 中文

npm version license node version dsh-plugin

DeepSeek Harness plugin: local and remote (SSH) workspaces in one place. Remote execution uses a single SSH connection (multi-hop jumps allowed); bash and files share that link (PTY via the terminal seam). Multi-machine registry with TOFU host keys and OS keychain. Web UI for adding workspaces and editing machines. Also ships 3 sw_* model tools. Built on ssh2.

Features

FeatureDescription
Remote workspacesctx.subprocess + ctx.fs remote providers: one SSH chain (multi-hop) runs bash / files / PTY (terminal). Tools on those seams switch to remote with no code changes
Multi-machine registryremote-workspaces/machines.json + ssh://<id>/<path> routing; recognizes ~/.ssh/config aliases
SecurityTOFU host keys (accept-new / verify / off); per-machine OS keychain (DPAPI / security / secret-tool); credentials redacted in error messages
Web UIAdd workspace (connection sidebar + remote directory browser); machine settings (CRUD / test / set current / forget fingerprint)
Model toolssw_status, sw_connect (save:false for temporary), sw_pick_workspace

Architecture

flowchart LR
    subgraph local["Your machine"]
        agent["agent loop<br/>orchestration · memory · LLM calls"] --> seam["this plugin<br/>ctx.subprocess · ctx.fs"]
    end
    subgraph remote["Remote host"]
        run["bash · files · PTY (terminal)"]
    end
    seam -- "one SSH connection (multi-hop jumps)" --> run

No DSH install on the remote: the model orchestrates locally, commands run remotely, results come back into context.

Install

# from npm (v0.1.0+)
dsh plugin --profile web add dsh-workspace-enhancement
# from source: npm run build first (host loads lib/)
dsh plugin --profile web add <this-repo-path>

First install with DSH's supply-chain pnpm: native build scripts are blocked by default — allow them once per profile in pnpm-workspace.yaml (unstrict allowBuilds): ssh2, cpu-features, koffi, node-pty, dsh-subprocess-local — then run dsh plugin --profile web install. Without it the first add exits non-zero (ERR_PNPM_IGNORED_BUILDS) and the bundle is not appended.

Roadmap

Current status and remaining milestones: docs/ROADMAP.md.

References

  • dsh-ssh: remote execution engine — ctx.subprocess / ctx.fs providers, jump chains, PTY, directory-picker seam, session.route placeholder.
  • dsh-remote: workspace helper — machines registry, TOFU, OS keychain, web UI and settings page.

License

MIT