Skip to content

lehhair/dsh-split-panes

40Last commit Aug 15, 2026

dsh-split-panes DSH plugin

dsh-split-panes lets you divide the chat interface into resizable panes, each bound to a separate conversation. Panes can be created via header buttons, keyboard shortcuts, or drag-and-drop from the sidebar. The plugin only handles container and interaction logic, reusing the native rendering for content.

How to install the dsh-split-panes DSH plugin

dsh plugin --profile web add link:/path/to/dsh-split-panes

Copying does not run this command. Review the repository and version before installing the dsh-split-panes DSH plugin.

dsh-split-panes DSH plugin data source

dsh-split-panes DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-split-panes DSH plugin can do

  • Split panes horizontally or vertically using header buttons or `mod+shift+arrow keys`
  • Each pane has its own independent session via SessionScope binding
  • Drag a sidebar conversation to the center of a pane to replace its session, or to the edge to split a new pane
  • Resizable dividers with keyboard support (ratio 0.1–0.9)
  • Close panes with `mod+shift+w` or the close button

Where the dsh-split-panes DSH plugin fits

  • View and compare multiple conversations side by side
  • Drag a conversation from the sidebar into a new pane for quick reference
  • Work on separate topics in parallel without switching tabs
  • Replace a pane's conversation by dropping another one from the sidebar

Who the dsh-split-panes DSH plugin is for

  • DSH users who need to manage multiple conversations simultaneously
  • Power users who prefer a multi-pane layout for efficient workflow

dsh-split-panes DSH plugin limitations

  • Requires the renderer's session-scope and panes capability; official DSH 0.1.0-rc.5 does not include it yet (patch or internal build needed)
  • Only works in the DSH web interface, not in other environments

dsh-split-panes DSH plugin: from the repository README

Quoted from the lehhair/dsh-split-panes README, the upstream source of the dsh-split-panes DSH plugin. Copyright remains with the original authors.

DSH 对话分屏插件(PiUI 风格):把信息流分成多个可独立操作的窗格,每个窗格绑定自己的会话——分屏/层叠、四向拖拽分配、侧边栏会话拖入、单行融合 header。信息流本体完全复用原生渲染,插件只做容器与交互。 ## 功能 - **分屏组合**:header 操作行分屏按钮 + `mod+shift+方向键`(左右/上下),`mod+shift+w` 关闭窗格;分隔条可拖拽、可键盘调节(比例 0.1–0.9) - **每窗格独立会话**:通过框架的 `SessionScope` 座位把每个窗格绑定到各自的会话;分屏是**纯视图操作**——新窗格是"新建对话"占位(不创建 host 会话),在占位窗格里开始对话时才真正创建会话并绑定到该窗格,互不干扰 - **侧边栏拖拽分配**:把侧边栏会话拖到窗格上——中心落下替换该窗格会话,四条边缘落下向该侧分屏(被拖会话进新窗格,焦点跟随);拖拽通道完全插件化(capture dragstart 反查) - **原生视觉**:未分屏时逐字节等同原生(无边框、无 chrome);分屏后窗格带焦点蓝边框(选中 `deepseek-500` / 未选中灰);header 单行化 + PiUI 渐变 + 内容留白 ## 效果预览 ![dsh-split-panes 分屏效果](screenshots/split-panes.png) ## 前置:渲染器会话绑定能力 分屏的核心依赖渲染器能**按 id 绑定会话**(`SessionScope` 全局座位 + by-id 座位)以及包裹原生会话列的 `conversation.panes` 缝。**官方 DeepSeek Harness(含当前 `0.1.0-rc.5` 发行版)尚未内置这两项能力**(提案已发官方讨论区:[deepseek-harness/discussions/604](https://github.com/deepseek-ai/deepseek-harness/discussions/604)),安装插件前需要运行环境具备它们: | 方式 | 说明 | |---|---| | **官方合入后** | 纯插件安装,无需任何前置(讨论帖 604 推进中) | | **带能力的 DSH** | 使用已内置该能力的内测发行版 | | **渲染器补丁** | 对官方 `0.1.0-rc.5` 基线应用 `patches/dsh-session-scope-and-panes-rc5.patch`(约 500 行纯新增,应用方法见 [patches/README](patches/README.md)) | ## 安装 ```sh git clone https://github.com/lehhair/dsh-split-panes.git ds

Read the full READMERepository license: BSD-3-Clause

dsh-split-panes DSH plugin questions

How do I install dsh-split-panes?

Clone the repository and run `dsh plugin --profile web add link:/path/to/dsh-split-panes`. Then restart `dsh web`. You may also need to apply a patch to the official DSH or use an internal build that supports session-scope and panes, as described in the README.

How do I split the conversation panel?

You can click the split button in the header, use the keyboard shortcut `mod+shift+arrow keys` (left/right for horizontal, up/down for vertical), or drag a sidebar conversation to the edge of an existing pane. A new pane will appear with a placeholder for a new conversation.

Can I close a pane without losing the conversation?

Yes, you can close a pane by clicking the close button on the pane's header or pressing `mod+shift+w`. The conversation itself is not deleted; it remains in the sidebar and can be reopened later.

How do I assign a different conversation to a pane?

Drag a conversation from the sidebar and drop it onto the center of a pane. That pane's session will be replaced by the dropped conversation. You can also drag to the edge to split a new pane with that conversation.

Does this plugin work with the official DeepSeek Harness?

The official DSH version 0.1.0-rc.5 does not include the required session-scope and panes capabilities. You need to either apply the provided patch (`patches/dsh-session-scope-and-panes-rc5.patch`) or use an internal build that already has these features. The plugin will work out of the box once official DSH incorporates these changes.