Introduction¶
The philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” When extending the right-side panel in the Web UI, a common pain point is that the panel entry point depends on a button from a specific Tab plugin, resulting in limited generalizability. dsh-right-dock solves this problem by providing a persistent, container-level entry point that allows other plugins to mount tabs through a slot mechanism, while the panel uses a push layout instead of covering the main conversation area.
Plugin Introduction¶
dsh-right-dock is a right sidebar platform for the DeepSeek Harness Web UI. The plugin is maintained by Momojie-S and released under the MIT license.
It provides a container-level entry through a persistent icon Rail on the right edge (similar to the VS Code activity bar). When the Dock is opened, the panel pushes the conversation area to the left, narrowing the main area instead of covering it; in narrow screen mode (<1024px), the panel automatically switches to a floating drawer. Other plugins can mount their own tabs through the rightdock.tab slot.
Environment Requirements¶
- DeepSeek Harness:
>= 0.1.0-rc.6(verified up to0.1.1-rc.2) - Node.js:
>= 20(required only for builds; the build process has zero npm dependencies)
Core Features¶
- Container-level Rail: A persistent icon Rail on the right edge, shown when tabs exist. Clicking an icon opens or switches the Dock, while clicking the currently active icon collapses it. The Rail remains visible after the Dock is closed.
- Push-mode Dock: The panel and Rail are arranged side by side. On wide screens, the Rail occupies a fixed 40px, and opening the Dock pushes the main conversation area to the left.
- Multi-tab Mounting: Allows other plugins to register tabs through the
rightdock.tabslot. - Responsive Drawer: When the window width is less than 1024px, the Dock automatically becomes a floating drawer, and clicking the backdrop closes it.
Installation and Activation¶
Run the installation command in the project directory, then start the Web service.
dsh plugin --profile web add ./plugins/dsh-right-dock
dsh web
Usage¶
The plugin provides a rightdock service for other plugins to use.
1. Mounting a Tab¶
Plugin authors register a tab through slots.inject, and use ctx.get('rightdock') in the mounting callback to set the icon and rendering logic.
// 你的插件 client 部分
const inject = ['slots']
function apply(ctx) {
const slots = ctx.get('slots')
slots.inject('rightdock.tab', () => {
// 挂载回调触发时 dock 服务必然已就绪
const dock = ctx.get('rightdock')
// 设置标签页图标
dock?.setTabIcon('my-tab', MyIcon16)
// 注册标签页内容
return slots.register(
{
name: 'rightdock.tab',
id: 'my-tab',
order: 10,
label: '我的标签'
},
(props) => {
// props.activeTabId: 当前激活的 tab id
// props.dockWidth: 宽屏模式下的宽度
return React.createElement('div', {
style: {
display: props.activeTabId === 'my-tab' ? 'flex' : 'none',
height: '100%'
}
}, '...')
}
)
})
}
2. Controlling the Panel¶
Any plugin’s client code can obtain the service to control opening, switching, or closing the Dock.
// 获取 dock 服务(未安装时为 undefined)
const dock = ctx.get('rightdock')
// 打开指定标签页
dock?.openTab('my-tab')
Notes¶
- Deprecated: This plugin was marked as deprecated on 2026-09-11. DSH 0.1.5 refactored the sidebar system and provides the official
rightbarslot with built-in panels. Newly developed panel plugins for 0.1.5+ should switch to the official sidebar slot system. - Permissions and Security: It runs as a DSH process; please review the source code and license before installation.
Conclusion¶
dsh-right-dock was once an implementation approach for building DSH Web right-side panels, and its push layout and container-level entry design have some reference value. As the DSH ecosystem evolves, the official rightbar system in version 0.1.5+ is now recommended. For more technical details, see the GitHub repository.