← Back to home@metal-huang

dsh-workspace-split

DSH (DeepSeek Harness) plugin: a split grid of live sessions, each cell typable - watch several projects at once

Stars
0
Language
JavaScript
Created
Oct 24, 2026
Updated
Oct 24, 2026

Introduction

dsh-workspace-split

npm license DeepSeek Harness

English · 中文说明

Keep several live sessions of DeepSeek Harness side by side and type in any of them. Built for supervising several projects at once: you see every session's progress on one screen instead of clicking through tabs.

What it does

  • A grid of live sessions. Rows and columns are yours to choose, up to 5 × 6. Each tile holds a running session with its full transcript.
  • Every tile is typable. Each cell has its own composer; the split layout never changes on its own.
  • Session or project per tile. Pin one session, or pin a project and switch between that project's sessions inside the tile.
  • Real-time status. A dot on each title shows whether the session is working.
  • Density that follows the tile. Narrow tiles shrink their text automatically so a small cell still shows a useful amount; Ctrl + wheel over one tile changes that tile alone.
  • Markdown and math. Tables, code, task lists, and TeX rendered with KaTeX.
  • Tool calls you can open. Arguments and output inline, failures marked.
  • Turn rail. Ticks down the right edge jump between turns, including turns not loaded yet.
  • Layout survives restarts. Grid, assignments, and per-cell zoom are restored.

It does not reimplement the conversation UI

Session rendering, concurrent live sessions, and progress signals are DSH capabilities. This plugin adds two layers: layout arrangement and marking the active tile. It reads sessions through the public ctx.sessions API.

Requirements

  • DeepSeek Harness 0.2.1-rc.2 or newer (desktop or web).
  • Desktop app or dsh web; the same build works in both.

Install

dsh plugin add @metal-huang/dsh-workspace-split

Then restart the app (or reload the web page). The toggle appears at the bottom of the sidebar, next to your account.

Installing from a local checkout
git clone https://github.com/metal-huang/dsh-workspace-split.git
cd dsh-workspace-split
npm install
cd packages/dsh-workspace-split && npm install && npm run build
dsh plugin add "$PWD/packages/dsh-workspace-split"

Use

ActionWhere
Enter or leave split viewLeft-click the ⊞ at the sidebar's bottom
Choose the gridRight-click that same ⊞
Assign a sessionUse a tile's header picker, or drag a session row from the sidebar into the tile
Rename a sessionThe ✎ next to the tile's title
Resize text in one tileCtrl + wheel over that tile
Raise the cell limitSettings → General → Split grid

The cap defaults to 10 cells for the whole screen (12 hard limit per window, both configurable). Six cells fit comfortably; past six, opening more asks for confirmation.

Development

npm install          # repo tooling
npm run check        # lint + duplication + format + tests
npm run build        # rebuild the client bundle
npm run release      # publish a snapshot for the desktop profile

packages/dsh-workspace-split/src/client.js is the source. client.js next to it is generated and not tracked by git — npm install in that package builds it through prepare, and npm run build rebuilds it. Never edit it by hand.

See AGENTS.md for the repository rules and docs/ for the product and design notes.

License

MIT