dsh-split-screen
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 5, 2026
- Updated
- Sep 6, 2026
Introduction
dsh-split-screen
Split-screen workspace for the DeepSeek Harness web GUI — chat with several agents side by side, in panes that look and behave exactly like the stock DeepSeek conversation.
Keyboard shortcuts
| Keys | Action |
|---|---|
| Alt+T | Toggle the focused pane between the full composer and the compact TUI line |
| Alt+Shift+← / → / ↑ / ↓ | Move keyboard focus to the neighboring pane |
Everything else is mouse-driven and works exactly like the stock DeepSeek UI.
What it does
- Always on — the split workspace simply is the conversation area: no button to press, no mode to enter or exit. One conversation renders without any extra chrome and looks exactly like the stock view.
- Split any pane — drag a conversation from the DeepSeek sidebar onto a pane edge (left / right / top / bottom) to split it there, or drop it in the center to swap that pane's conversation. A translucent ghost previews the split position while you drag.
- Native look, light & dark — panes render with the stock DeepSeek styles, theme variables and primitives: user bubbles, Think rows, tool rows, the streaming shimmer, the rounded composer card.
- Fully interactive panes — every pane is a live session: streaming responses, Enter to send, Shift+Enter for newline, /commands, Stop while running, queued messages, todos, and image paste & drag-drop attachments.
- Two composer styles — a full composer, or a compact terminal-style TUI line with the same width and button positions (Alt+T).
- Neat by default — queued messages, todos and the stats line share the exact width of the input box; the stats line scrolls to reveal overflow.
- Persists — the split layout survives page reloads.
Getting started
- Install the plugin and restart
dsh web— the split workspace is on immediately. With a single conversation open you just see the stock view. - Drag a conversation from the sidebar onto a pane edge to split.
- Click a conversation in the sidebar to load it into the focused pane.
- Use the pane header's split buttons (⬎ / ⬏) for more panes, ✕ to close, and drag the dividers between panes to resize.
- Press Alt+T to try the compact TUI composer.
Recommended companions
- dsh-session-hotkeys —
keyboard-first control for the DeepSeek Harness:
Escreturns focus to the conversation,Alt+Entersteers or queues while an agent runs, the model picker is keyboard-reachable, and every shortcut is rebindable in a visual panel. Works great inside split-screen panes. - dsh-result-only-view — a compact results-only reading mode for running sessions: less visual noise while several agents work side by side in your panes.
Install
dsh plugin --profile web add dsh-split-screen
then restart dsh web.
How it works
- Client-only plugin: the host half is an empty loader entry; everything
runs in the browser on public service surfaces (
sessions,slots,conversation), plus a small per-session staging bridge (session.open()). - Panes stage real sessions through the sessions service (history window + live event stream), so every pane is a first-class conversation.
- Injects:
@deepseek-ai/dsh-client-runtime,@deepseek-ai/dsh-client-locale,@deepseek-ai/dsh-client-ui-primitives. - The stock DeepSeek sidebar is deliberately untouched — it stays the single source of truth for conversations.
- Transcripts reuse the ui-conversation CSS module rules (copied verbatim
under
dsv-class names) so a harness upgrade cannot silently break the look.
License
MIT