Back to home@YEYEYEYESHIFU

dsh-split-screen

No description

Stars
0
Language
JavaScript
Created
Sep 5, 2026
Updated
Sep 6, 2026
GitHub repo

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

KeysAction
Alt+TToggle 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

  1. Install the plugin and restart dsh web — the split workspace is on immediately. With a single conversation open you just see the stock view.
  2. Drag a conversation from the sidebar onto a pane edge to split.
  3. Click a conversation in the sidebar to load it into the focused pane.
  4. Use the pane header's split buttons (⬎ / ⬏) for more panes, ✕ to close, and drag the dividers between panes to resize.
  5. Press Alt+T to try the compact TUI composer.

Recommended companions

  • dsh-session-hotkeys — keyboard-first control for the DeepSeek Harness: Esc returns focus to the conversation, Alt+Enter steers 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