dsh-cockpit-worktree-open-shim
Manifest validDeployment-local adapter from dsh-cockpit-bridge remote editor opening to the Worktree Session open-handler registry
dsh-cockpit-worktree-open-shim
English · 简体中文
Without this shim, the "open in editor" action of a Worktree Session on a remote machine falls back to a local vscode://file/ link that cannot reach the worktree. The shim hands the worktree path to dsh-cockpit's remote-editor capability so the editor opens on the right machine.
A deployment-side adapter: it registers the remote-editor open capability exposed by dsh-cockpit-bridge into the generic open-behaviour extension point of dsh-worktree-session.
dsh-cockpit-bridge ──provide──▶ shim ──register──▶ dsh-worktree-session
knows nothing about ws knows nothing about cockpit
Install
Install it next to both ends: dsh-cockpit-bridge >= 0.4.0 (distributed as a GitHub Release tarball) and dsh-worktree-session.
dsh plugin --profile web add https://github.com/prgrmrwy/dsh-cockpit/releases/download/dsh-cockpit-bridge-v0.6.4/dsh-cockpit-bridge-0.6.4.tgz
dsh plugin --profile web add dsh-cockpit-worktree-open-shim
Then restart DSH web. Uninstall with dsh plugin --profile web remove dsh-cockpit-worktree-open-shim.
Why a separate package
Worktree Session is a generic plugin and must not know about dsh-cockpit; dsh-cockpit-bridge must not know its concrete consumers either. All coupling between the two ends lives only in this shim, which keeps independent upgrades and complete removal possible.
Behaviour
- No top-level
inject; at runtime it watches both services appearing and disappearing, so any load order works. - It reads the bridge service by the full dotted name
ctx.get('cockpitBridge.editorOpen');ctx.get('cockpitBridge').editorOpenis forbidden. - It forwards only the absolute worktree path, unchanged, to the bridge: no validation, no rewriting, no state, no retries.
- If either end is missing or unloaded, the shim is inert; Worktree Session automatically falls back to its default
vscode://file/behaviour.
Prerequisites and known limits
- Requires
dsh-cockpit-bridge >= 0.4.0(this repository currently pins 0.6.4); an older bridge does not provide the service and the shim silently does nothing. - The host machine needs VS Code Remote-SSH installed and must be able to reach the target device through the SSH config alias registered for the Cockpit device.
- Without Remote-SSH the URI may be silently dropped; a directory name containing a dot may be treated as a file by the VS Code URI handler.
Removal
This shim connects two ends: the cockpitBridge.editorOpen service of dsh-cockpit-bridge and the open-behaviour extension point (worktreeSession.openHandler) of dsh-worktree-session. Neither side references the other, so the shim is the only place the two meet.
It can be removed at any time, and it should be removed once you stop using dsh-cockpit remote editors, or when either end ships the integration natively. Delete or disable cockpit-worktree-open-shim in dsh.yaml, run dsh build, and restart DSH web. After removal:
- Worktree Session returns to the default
vscode://file/behaviour; - existing dsh-cockpit-bridge features such as session read-confirmation and the pending snapshot are unaffected;
- neither end needs any source or configuration migration.
Source and license
Maintained in ohmydsh under packages/cockpit-worktree-open-shim; dsh-cockpit-worktree-open-shim is the publishing mirror. Released under the MIT License. Issues and pull requests are welcome at https://github.com/prgrmrwy/dsh-cockpit-worktree-open-shim/issues.
Comments
Loading…
Similar plugins
by zijun-T
Remote workspace support for dsh-better-sidebar — SSH file tree, editor, terminal, git, upload/download and preview over SSH.
★ 0
MIT
TypeScript
Sep 9, 2026
dsh plugin --profile web add dsh-sidebar-remoteby ChuanTianML
Open DeepSeek Harness workspaces in detected or configured local editors
★ 0
MIT
JavaScript
Aug 23, 2026
dsh plugin --profile web add dsh-open-withby dingguangyi0
Migrate WorkBuddy sessions, memories, MCP drafts, and automation tasks into DSH — preview-first, read-only on the source
★ 0
TypeScript
Sep 12, 2026
dsh plugin --profile web add dsh-plugin-migration-workbuddyby NevermindZZT
Open a DeepSeek Harness workspace directory in a configurable launcher (VS Code / file explorer / Windows Terminal / any CLI) from the web GUI.
★ 0
MIT
JavaScript
Sep 7, 2026
dsh plugin --profile web add dsh-open-inby Snowy117
Load each workspace's direnv environment into every DeepSeek Harness command. 让 DSH 每个工作区的子进程自动带上该工作区的 direnv 环境。
★ 0
MIT
TypeScript
Oct 3, 2026
dsh plugin --profile web add dsh-direnvby zhang-guo-wen
Git worktree isolation for DeepSeek Harness: create a worktree, register it as its own project, and start the session inside it
★ 0
Apache-2.0
TypeScript
Oct 22, 2026
dsh plugin --profile web add @guowenzhang/dsh-worktree