Skip to content

Workbench UI ​

The Web workbench frame: provides the workbench client service that other Web plugins (like Sidechat) register tabs into. Web-only; install it before plugins that depend on it.

Source: official · Status: beta

Install ​

sh
dsh plugin --profile <name> add 'github:Ephemeral-AI-Lab/dsh-plugins#main&path:plugins/work-bench-ui'

Inside Mayfly: /plugin install workbench-ui (or browse with /plugin). Restart and start a new session to apply.

Frontend support ​

⚠️Mayfly terminal: no contribution (dsh Web panel only)
✅dsh Web: tools + dedicated panel

Provides ​

  • Tools: none
  • Commands: none

Verification ​

Reviewed versions: dsh-workbench-ui@0.1.0(2026-09-04) Listing is disclosure and review, not a sandbox — installing a third-party plugin equals installing an arbitrary npm package.

Repository · Docs

README ​

# dsh-workbench-ui

Reusable resizable right-side Workbench surface for DeepSeek Harness Web plugins.

The package owns the panel shell and exposes a client registry. Feature plugins
register their own tab and React content without modifying the Workbench UI. The
panel occupies the host's block-level details column; opening it reduces the
conversation width, and the host drag handle controls the panel width.

```ts
import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client'
import type { WorkbenchService } from 'dsh-workbench-ui/client'
import type {} from 'dsh-workbench-ui/client'
import { TerminalPanel } from './TerminalPanel.js'

export const inject = ['workbench']

export function apply(ctx: ClientContext): void {
  const workbench = ctx.get('workbench') as WorkbenchService
  ctx.effect(() => workbench.register({
    id: 'terminal',
    label: 'Terminal',
    component: TerminalPanel,
  }), 'terminal: Workbench panel')
}
```

Registered components receive `{ close }` and own the complete display area.
Use `workbench.open('terminal')`, `workbench.close()`, or
`workbench.toggle('terminal')` from another client component to control the
surface. Opening and closing also drives the host details column. Registration
is disposed with the owning plugin fiber.

Install it into the Web profile with:

```sh
dsh plugin --profile web add ./plugins/work-bench-ui
```

Preview · v0.1.4-rc.1