前言¶
DeepSeek Harness(DSH)的核心理念是「一切皆插件」——主会话负责对话与工具调用,但文件浏览、终端、Git 状态、子代理拓扑等「开发时上下文」往往散落在系统各处,需要频繁切换窗口。社区里有不少界面增强类插件,其中 DSH-better-sidebar 是目前 star 数最高的侧边栏方案之一:它不只是把几个页面塞进右侧栏,而是把侧边栏做成一套可注册、可扩展的服务底座,内置文件编辑、终端、Git、子代理等常用能力,同时向第三方插件开放同一套 API。
本文基于插件目录页与 GitHub 仓库 README 核实信息,介绍这款由 omdsh-dev 维护的客户端插件:它解决什么问题、核心能力有哪些、如何安装与上手。
这是什么¶
DSH-better-sidebar(npm 包名 dsh-better-sidebar)是一款面向 DSH Web 界面的侧边栏工作台插件,归类为界面增强。一句话定位:开放的侧边栏底座,内置文件渲染与编辑、真实终端、Git 面板、子代理任务页、侧边对话等页面,并通过 ctx.betterSidebar 服务向生态插件开放 registerTab(注册侧边栏页)与 registerFileViewer(注册文件预览器)两个扩展点——内置的 7 个 Tab 与 6 个预览器,与第三方插件走同一套 API,能力对等。
项目在 GitHub 上采用 MIT 许可证,截至核实日约有 2800+ star。它收录于 DeepSeek Harness 插件库 及 SkillHub 插件目录 等社区站点;这些目录由社区维护,与 DeepSeek / 幻方无官方从属关系,但可作为发现与安装插件的入口。
核心功能与亮点¶
文件工作台¶
资源管理器支持懒加载目录树,软链接按目标类型展示(目录软链接可展开、失效链接标红)。配合 CodeMirror 编辑器,可直接在侧边栏读写代码;图片、Markdown(含 Mermaid 图表,strict 安全渲染)、HTML、PDF 等格式支持内联预览。Markdown 预览还支持浮动目录大纲、README 级内嵌 HTML(经 DOMPurify 消毒)等能力。
真实终端¶
基于 xterm.js + node-pty 提供真实 shell(非模拟器),支持断线重连与 transcript 回放。可在设置页配置 shell 路径与参数;开启相关选项后,还可为模型注入 terminal_* 工具,让 Agent 直接在终端执行命令。
Git 面板¶
提供暂存、提交、还原、历史查看等操作,改动文件可打开 VSCode 式 diff Tab 做行级对比。工作区容器下可自动发现子仓库并显示仓库选择器,支持 linked worktree 变更发现。
内嵌浏览器与后台任务¶
内嵌浏览器支持多 Tab 浏览,内容运行在沙箱 iframe 中;外链默认按协议分流(HTTP 在侧边栏打开、HTTPS 可走系统浏览器,可在设置中调整)。后台任务页展示子代理拓扑与后台任务清单(退出码、实时输出、强制终止)。
侧边对话(beta)¶
Codex 风格的侧边线程:每个对话独立 Tab,继承主会话完整上下文后独立运行,不污染主会话;可持续追问,并支持一键「保存为新会话」提升为顶层会话。
双工作台与自由窗口¶
右侧栏与底部面板可同时展开,拖 Tab 可拆分 / 合并分栏(可跨面板);窄屏下自动合并为全宽抽屉。较新版本还支持把 Tab 拖到主会话区域变为可移动、缩放的悬浮窗口,拖回侧边栏即可停靠。
服务化扩展与生态¶
从 v0.4.0 起暴露 ctx.betterSidebar 服务。其他插件通过 inject: ['betterSidebar'] 注入后,可注册自定义侧边栏页面或文件预览器。GitHub topic dsh-better-sidebar 下已有 28+ 生态插件(Office 预览、视频预览、Jupyter Notebook、SSH 隧道等),设置页内置推荐目录,可一键复制安装命令。
其他值得关注的特性:会话级布局持久化、声明式设置(侧边卡片逐项开关)、按需加载(启动约 325KB 核心,终端 / 编辑器 / Mermaid 等重依赖用到再拉取)、界面文案跟随 DSH 语言(zh / en)切换。
安装与启用¶
前置条件:已安装 DSH(dsh web 能正常运行)。若走 npm 通道安装,还需 Node.js ≥ 20、pnpm ≥ 10。插件支持的 DSH 版本包括 0.1.0-rc.8、0.1.1-rc.1、0.1.1-rc.2。
方式一:插件目录推荐命令(GitHub 源)¶
在 DeepSeek Harness 终端执行:
dsh plugin add github:omdsh-dev/DSH-better-sidebar
如需可复现安装,可固定 commit 哈希:
dsh plugin add github:omdsh-dev/DSH-better-sidebar#<commit>
方式二:npm 通道(README 推荐)¶
dsh plugin --profile web add dsh-better-sidebar@latest
cd ~/.dsh/profiles/web && pnpm approve-builds --all
dsh plugin --profile web add dsh-better-sidebar@latest
首次安装时,pnpm 11 可能拦截 node-pty 构建脚本导致失败,属正常现象;在 profile 目录执行 pnpm approve-builds --all 放行后重跑即可。
装完后硬刷新浏览器(Cmd/Ctrl+Shift+R)即可看到侧边栏。DSH 对 client 改动支持热加载,一般无需重启进程。
安全提示:插件以当前 dsh 进程的权限运行,安装时可能执行构建脚本。安装前请检查 GitHub 源码仓库 与 MIT 许可证,确认来源可信后再安装。
典型用法示例¶
日常使用¶
- 启动
dsh web,打开任意会话。 - 点击右侧栏开关,展开工作台;可在设置页「侧边卡片」中按需启用文件、终端、Git、浏览器、侧边对话等 Tab。
- 在资源管理器中点击文件即可预览或编辑;
Ctrl/Cmd + S保存,Ctrl + Enter在 Git 面板提交。 - 拖 Tab 到分栏边缘可拆分布局;悬浮行尾的
@文件按钮可把文件路径引用进输入框。
第三方插件注册侧边栏页(开发者)¶
以下示例来自官方 README,展示如何通过 ctx.betterSidebar 注册自定义 Tab 与文件预览器:
import type {} from 'dsh-better-sidebar'
export const inject = ['betterSidebar']
export function apply(ctx: Context) {
ctx.effect(() => ctx.betterSidebar.registerTab({
id: 'my-plugin:db', title: 'Database',
component: ({ scope }) => <DbView sessionId={scope.sessionId} />,
}))
ctx.effect(() => ctx.betterSidebar.registerFileViewer({
id: 'my-plugin:csv', exts: ['csv'], fetchStrategy: 'custom',
load: async (path, scope) => parseCsv(await fetchText(scope, path)),
component: ({ customData }) => <CsvGrid rows={customData} />,
}))
}
完整接入文档见仓库内的 AGENTS.md 与 docs/external-plugin-guide.md。
适用场景与注意事项¶
适合谁用:
- 日常在 DSH Web 界面写代码、跑命令、看 Git 改动的开发者;
- 希望侧边栏一站式完成「看文件 → 改代码 → 跑终端 → 提交 Git」工作流的用户;
- 需要为 DSH 生态开发自定义侧边栏页或文件预览器的插件作者。
注意事项:
- 插件以 dsh 进程权限访问文件系统、启动终端、执行 Git 命令,安装前务必审阅源码。
- Git 面板不支持 push / pull / fetch;Markdown 预览不反映未保存草稿;终端 Tab 跨分栏拖动会重挂载(shell 重开)。
- 内嵌浏览器受沙箱与
X-Frame-Options限制,部分站点无法嵌入,需走系统浏览器打开。 - 若与
dsh-web-ui家族的右侧面板(aionui-panel)同时启用,需在设置中选择其一,避免双挂载。 - Windows 下终端依赖
node-pty预编译二进制,若加载失败,按终端横幅提示在 profile 目录执行pnpm approve-builds --all && pnpm rebuild node-pty后重启 DSH。
结尾¶
如果你已经在用 DeepSeek Harness,却总觉得「对话区旁边缺一块开发面板」,DSH-better-sidebar 值得尝试:它把文件、终端、Git、子代理等高频能力收进可定制的侧边栏,又把扩展接口开放给社区,生态插件数量仍在快速增长。
- 插件目录页:deepseek-harness-plugin.com
- SkillHub 目录:skillhub.cn
- GitHub 仓库:github.com/omdsh-dev/DSH-better-sidebar