DSH(DeepSeek Harness)的核心理念是“一切皆插件”,但在实际开发中,开发者往往需要在对话与代码工作台之间频繁切换。all3ncn/dsh-better-sidebar-n23 是一个 DSH web 插件,它提供了一个完整的工作台环境,并重构了 Shell 界面,使其更接近 IDE 的使用体验。
插件介绍¶
该插件 fork 自 omdsh-dev/DSH-better-sidebar,在 @all3cn 作用域下独立发版。它旨在为 DSH 用户构建一个集文件管理、编辑、预览、终端、Git 操作及任务管理于一体的客户端插件。作为开源项目,其许可证为 MIT。
核心功能¶
插件包含以下主要能力:
- 文件工作台:提供资源管理器,支持目录树的懒加载以及软链接按目标类型展示;内置 CodeMirror 编辑器。
- 内联预览:支持图片、Markdown、HTML、PDF 及 Office 文档的直接内联预览。
- 真实终端:基于 xterm.js 和 node-pty,提供真实的 shell 环境,支持断线重连回放。
- Git 面板:提供真 diff 显示、VSCode 风格的 diff tab、历史记录,以及右键暂存/提交/还原等操作。
- 内嵌浏览器:支持多开网页 tab,具备后退、前进、刷新功能,内容运行在沙箱 iframe 中。
- 后台任务页:展示 subagent 拓扑结构及后台任务状态,支持查看退出码、实时输出及强制终止。
- 双工作区布局:支持右侧栏与底部面板的拆分与合并,Tab 支持拖拽调整分栏。
- 外壳重构:采用全宽 48px 顶栏、VSCode 式活动栏(activity rail)及全局控制区,优化对话与工作台的共存布局。
- 服务化 API:通过
ctx.betterSidebar向所有插件开放注册接口,允许第三方插件注册侧边栏页面与文件预览器。 - 会话隔离:布局、Tab 和面板按会话持久化,支持多语言跟随 DSH 设置。
安装与启用¶
安装前请确保已正确安装并运行 DSH(dsh web 可正常使用)。
dsh plugin --profile web add @all3ncn/dsh-better-sidebar-n23
安装时会自动应用包内声明的 dsh.bundle.patch(位于 cordis.patch.yml),CLI 的 bundle 协调机制会将其加入 profile 的 bundle 栈,无需手动修改 profile 文件。如果 profile 中残留旧的 dsh-better-sidebar(上游或本地 fork)挂载行,请先移除,以免造成双挂载。
卸载命令如下:
dsh plugin --profile web remove @all3ncn/dsh-better-sidebar-n23
典型用法¶
作为插件接入示例,任一 DSH 插件的 client 半区可通过以下接口注册侧边栏页面:
ctx.betterSidebar.registerTab({
id: "my-tab",
title: "My Tab",
render: ...
});
注册文件预览器:
ctx.betterSidebar.registerFileViewer({
pattern: "**/*.xyz",
render: ...
});
适用场景与注意¶
该插件适合需要在一个界面中完成从代码编写、版本控制到终端操作及任务管理的 DSH 用户。
注意事项如下:
- 环境要求:要求 Node.js 版本大于等于 20。
- 版本验证:针对 DSH
0.1.1-rc.2验证,peer 依赖声明为@deepseek-ai/* >= 0.1.0-rc.6 < 0.2.0。 - 构建状态:测试使用 Node.js 内置 test runner,零依赖。当前仓库存在有意的分轨状态:
src领先健壮性修复,lib领先外壳布局,运行时以lib为准。 - 许可证:使用前请确认源码与许可证,插件以当前 DSH 进程的权限运行。
总结¶
all3ncn/dsh-better-sidebar-n23 通过重构 Shell 外壳和提供完整的工作台功能,显著提升了 DSH 客户端的可用性。它不仅是一个功能集合,更通过服务化 API 为其他插件扩展提供了标准接口。