DeepSeek Harness plugin

dsh-dock

A workbench-quality docking system for DeepSeek Harness Web plugins

Jump to install

Source facts

Repository
mattismegevand/dsh-dock
Latest update
Aug 16, 2026
Category
Tools & Capabilities
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/mattismegevand/dsh-dock
Plugin: dsh-dock
Author: mattismegevand

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.mdSource · read only
README language

dsh-dock

English | 中文

> A plugin-owned docking system for the DeepSeek Harness Web UI. It gives browser plugins a stable keyed panel slot and ctx.dock service without modifying the Harness repository.

![MIT License](LICENSE) ![dsh-plugin](https://github.com/topics/dsh-plugin)

!dock workbench with panels docked side by side

What it does

  • Left, right, bottom, and floating panel placement with tab groups.
  • Pointer and keyboard resizing, header dragging, edge previews, and Alt+Shift+Arrow docking.
  • Lazy child detachment with rollback on cancelled drags.
  • Per-session, versioned localStorage layouts with bounded scope retention.
  • Responsive side-panel folding below the configured compact breakpoint.
  • Stable mounts while panels move, hide, or switch tabs.
  • Session-header launchers and logical launcher groups for multi-pane features.

Panel API

Register metadata with ctx.dock, then contribute content to the keyed dock.panel slot with the same id:

const disposePanel = ctx.dock.registerPanel({
  id: 'terminal',
  title: 'Terminal',
  icon: '>_',
  defaultLocation: 'bottom',
})

ctx.slots.inject('dock.panel', () => ctx.slots.register({
  name: 'dock.panel',
  key: 'terminal',
}, TerminalPanel))

Panel components receive panelId, visible, location, closePanel, activatePanel, setPanelTitle, and beginPanelDrag. Hidden panels remain mounted. A child drag can return a new panelId and rollback; the dock invokes rollback on cancellation or disposal.

Harness compatibility

The plugin uses shell.overlay, conversation.session.header.utilities, and conversation.input.right. Its reversible frame adapter discovers the semantic sidebar, conversation, and details anchors, inserts grid spacers, and restores changed inline styles during disposal.

Install

Requires the dsh CLI (Node.js 22.19+ or 24) and pnpm 10+.

From npm

dsh plugin --profile web add @mattismegevand/dsh-dock

From GitHub

dsh plugin --profile web add github:mattismegevand/dsh-dock

Git installs fetch sources, so pnpm runs the package's prepare build on first add. pnpm ≥10 refuses that until you allow it: copy the exact package key pnpm printed into the profile's pnpm-workspace.yaml allowBuilds entry, then re-run the same add.

Develop locally

git clone https://github.com/mattismegevand/dsh-dock.git
cd dsh-dock
corepack pnpm install
corepack pnpm check:all
dsh plugin --profile web add .

Configuration

All deployment-varying dimensions and thresholds are validated Loader config, including the compact breakpoint, drag threshold, persistence bound, default dock sizes, minimum sizes, and floating bounds.

- id: dock
  name: '@mattismegevand/dsh-dock'
  config:
    compactBreakpoint: 860
    maxPersistedScopes: 64
    defaultBottomSize: 340

Related plugins

  • dsh-terminal — VS Code-style Ghostty terminal panel.
  • dsh-open — Codex-style workspace Open menu in the session header.
  • dsh-git — session-scoped working-tree Review panel.

Model experience

Dock UI contribution

#### What the model sees

Nothing. The plugin only registers browser layout, chrome, persistence, and a client service; it adds no prompt, tool schema, message, or model-visible result.

#### Token effect

Zero tokens are added to model requests or responses.

#### KV Cache effect

None. The plugin does not alter model input, so it cannot invalidate or shift the main request cache prefix.

Known limitations

  • The frame adapter requires the current AppFrame semantic anchors and three-column template; it fails visibly when that host contract is unavailable.
  • The dock intentionally omits arbitrary nested editor splits and pop-out browser windows.
  • Layout persistence is browser-local and does not synchronize across profiles or devices.

License

MIT