AllDSH
EN

Better Sidebar

omdsh-dev · omdsh-dev/DSH-better-sidebar

DSH 的服务化侧边栏:自带文件、终端、变更与任务页,并把注册接口开放给其他插件,用来挂自己的侧边栏页面与文件预览器。

Better Sidebar 是 omdsh-dev 开发的 DSH 插件,DSH 的服务化侧边栏:自带文件、终端、变更与任务页,并把注册接口开放给其他插件,用来挂自己的侧边栏页面与文件预览器。收录于界面与体验和会话与消息,适合文件与文档、终端与 Shell和GitHub 集成。验证等级 L3(安装命令可解析),安全扫描尚未完成,兼容目标是 DeepSeek Harness ^0.1.5-rc.1,条目最后核查于 2026-09-18,采用 MIT 许可。安装命令:dsh plugin --profile web add dsh-better-sidebar

本条目由 赤榆 核查,数据更新于 · 引用规则

L3active
Better Sidebar 验证面板:验证等级 L3(共 5 级)——安装命令可解析,已声明 DSH 目标版本。安全扫描:未验证(未运行扫描)。兼容目标:DeepSeek Harness ^0.1.5-rc.1。许可:MIT。GitHub 星标:3,650。条目最后核查 2026-09-18。
Better Sidebar 的验证面板。该条目处于 5 级验证中的 L3 级:安装命令可解析,已声明 DSH 目标版本。安全扫描:未验证(未运行扫描);兼容目标:DeepSeek Harness ^0.1.5-rc.1;许可:MIT;条目最后核查于 2026-09-18。 验证规则说明

实际使用截图

本站截图:插件跑在一次性 DeepSeek Harness 里、任务跑在自动生成的演示项目上,不是你的机器,也不是作者提供的图。点击任意一张可看大图。

Better Sidebar — 安装并启用后的样子:「设置 → 插件 → 插件列表」中展开的条目,含完整包名、配置状态与运行状态。
安装并启用后的样子:「设置 → 插件 → 插件列表」中展开的条目,含完整包名、配置状态与运行状态。
Better Sidebar — 插件在设置里新增的页面:「Side card」。
插件在设置里新增的页面:「Side card」。

由 AllDSH 于 2026-09-19 在 DSH 0.1.5-rc.1 上截取,视口 1920×1080,包版本 dsh-better-sidebar@^0.19.1。

安装命令

dsh plugin --profile web add dsh-better-sidebar

需要先启动 harness:npx @deepseek-ai/dsh web,然后执行上面的命令。第一次用?先看安装教程。

它是什么:一半是插件,一半是基座

dsh-better-sidebar 是一个 npm 包,内部由 host 与 client 两半组成。host 半跑在 DSH 进程里,对外开出一组会话级路由:/sidebar/api/* 的 JSON 接口、/sidebar/file 媒体路由、/sidebar/html 预览路由,以及 /sidebar/ws/terminal 终端 WebSocket,整体套在与 /api 相同的 Host 头信任围栏之后。client 半是 DSH 加载进页面的 web client;包在自己的 dsh 字段里声明了 bundle.patch,也就是说「把包装进 profile」本身就是它的用途。

有一点必须说清楚:从 v0.19.0 起,它不再自绘右侧那一列。插件的 tab 类型与 tab 体改为注册进 DSH 原生的右侧栏,聊天里打开文件统一走 dsh-resource://file/…,旧的自由浮窗 API 也在同一版里退役。它仍然自己持有的是底部工作台——一棵按会话持久化的分栏树。

同时它对外提供一个 Cordis 服务 ctx.betterSidebar:其他插件通过 registerTab 与 registerFileViewer 注册侧边栏页面和文件预览器,v0.19.0 起还多了 registerFileIcon。内置的 8 个 tab 类型与 6 个预览器走的是同一套 API,所以第三方页面在这里不是二等公民。

装完之后你实际得到什么

按 README 自己的说法,这是「一个服务化的侧边栏框架 + 一套开箱即用的工作台」。具体到功能:

  • 文件工作台:懒加载目录树(软链接按目标类型展示、失效链接标红,UNC 路径也做了统一处理),配 CodeMirror 编辑器与常见语言高亮;另有全局文件名搜索、上传与拖拽、右键菜单,以及把路径引用进输入框的行尾 @文件 按钮。文件与目录图标是彩色的,图形来自 DSH 自己的 ui-primitives。
  • 预览:图片、Markdown(Mermaid 走懒加载渲染器,securityLevel: 'strict';README 级内嵌 HTML 经 DOMPurify 消毒;带浮动大纲)、HTML(同路由沙箱 iframe)、PDF(浏览器原生查看器)。另有一层敏感内容脱敏:凭据形态的路径整文件遮罩、普通文件按内容形态遮值,默认开启,且只影响显示。
  • 文件变动:一个 tab 里两个视角。Git 视角有真 diff、历史、暂存、提交与还原;本轮文件视角实时追踪模型读过、写过、编辑过的每个文件。diff 是统一渲染,含配对改色、行内字符级高亮与语法着色。
  • 真实终端:xterm.js 接 node-pty,是真 shell 而不是模拟器;断线重连会回放 transcript,shell 与 shell 参数可配置,也能选择给模型注入 terminal_* 工具。
  • 内嵌浏览器:多开网页 tab,带后退/前进/刷新与地址栏,内容跑在不透明源沙箱 iframe 里,界面实时显示沙箱状态。
  • 任务页:子代理拓扑,加一张后台任务清单(退出码、实时输出、强制终止)。
  • 侧边对话(beta):一条独立线程,继承主会话上下文(进行中的回合会以便于理解的方式冻结并标记为 interrupted),不进入主会话,可一键提升为顶层会话。
  • 其余是声明式设置、布局与 tab 的按会话持久化,以及跟随 DSH 语言的界面文案。

面向模型的入口目前有两个,都要在设置里打开:sidebar_open(模型可主动在侧边栏打开文件、文件夹或 HTTP(S) 网页)与上面的终端工具。这是来源里写明的模型侧能力,不等于穷尽清单。

其他插件在用的那套注册接口

ctx.betterSidebar 是这个插件影响面最大的部分。它 v0.4.0 就有了,v0.12.1 补齐基座能力(完整类型导出、能力探测、状态订阅、tab 角标、生命周期回调、插件自有设置),v0.19.0 再加文件图标注册。接入方在自己的 inject 里声明服务,并在 ctx.effect(...) 里注册,卸载时 tab、预览器或图标随之消失。

图标匹配是有优先级的:精确文件名 > 扩展名 > 目录名,folder 与 folder-open 是保留的目录扩展名。注册前值得知道一个坑:exts: [] 的 catch-all 会接管内置分类器没有具体命中的所有路径。

这套设计的代价是版本耦合:README 让接入方去读仓库里的外部插件接入指南,并希望生态用这个 API,而不是用某种更聪明的 DOM 覆盖。

安装与前置条件

  • DSH 需要 0.1.5-rc.1 或更新。 v0.19.1 在 DSH 0.1.5-rc.2 上完成真机挂载验证,rc.1 用户不必升 DSH 也能用同一版。老宿主必须钉老版本线:DSH 0.1.5-alpha.2 用 0.19.0-alpha.1;0.1.2-rc.1 稳定线用 0.18.x;DSH 停在 0.1.1-rc.2 或更早则用 0.17.1。版本配错是「装上了但行为不对」最常见的来源。
  • Node.js ≥ 20、pnpm ≥ 10,并且 dsh web 能正常跑起来。
  • 安装不是一步。 第一次会失败,因为 pnpm 11 拦截了 node-pty 的构建脚本;README 给的解法是在 web profile 目录里放行构建脚本后重跑安装(它说那时依赖已经写进去了)。此外还有一键脚本和 registry 两条可选通道,README 提醒两条通道同时开会双挂载。
  • 装完要硬刷新浏览器(Cmd/Ctrl+Shift+R)。client 改动是热加载,host 半更新才需要重启 DSH。
  • node-pty 是原生模块,优先用你 Node 版本对应的预编译二进制,否则需要编译工具链:Windows 的 VS Build Tools、Linux 的 make/g++/python3、macOS 的 Xcode CLT。好消息是它不再拖垮 server——node-pty 缺失时插件照常挂载,终端以带修复命令和重试按钮的横幅呈现。

已知限制

  • Git 是残缺的:没有 push、pull、fetch,远程操作交给另外的生态插件。请把它读作本地源代码管理,而不是一个 Git 客户端。
  • Office 预览不是内置的:.docx/.xlsx/.pptx 已移到独立的第三方插件;没装的话这类文件走代码或下载查看兜底。
  • 没有文件 watcher,也没有自动轮询。Markdown 预览只有手动刷新按钮,而且刷新前会确认是否丢弃未保存草稿。
  • HTML 预览渲染的是已保存的文件,不反映编辑器里的草稿。
  • 终端 tab 拖到另一个分栏会重挂载,也就是 shell 会重开。
  • 内嵌浏览器没有登录态:第三方 Cookie 受限,被 X-Frame-Options / frame-ancestors 拒绝嵌入的站点会显示原因面板和「在浏览器中打开」;地址栏本身拒绝 javascript:、data:、file: 与本机回环地址。
  • 沙箱可以关掉。页面内容默认在沙箱里,但设置页能按功能关闭它(带警告文案),关掉后内容与界面同源。请把这个开关当成真正的安全边界对待,README 的警告也只针对完全可信的内容。
  • 三平台验证程度并不齐:macOS 是日常验证,Windows 与 Linux 只由单元测试覆盖。跨平台测试全绿和每天真机用,不是同一种证据,来源也没有多声称什么。
  • 窄屏(<768px)没有底部面板:它的标签一次性并入右侧栏,以全宽抽屉呈现。

什么情况下该用,什么情况下不该用

如果你想要的是「在对话旁边摆一套 IDE 式工作面」——读改文件、看 diff 落地、开一个 shell、盯子代理、不离开 harness 就打开网页——那么值得装。另一个更明确的理由是:你正在写一个需要侧边栏页面或文件预览器的 DSH 插件。这目前就是大家共用的注册面,基于它做的 tab 会和内置页面一起落在 DSH 原生右侧栏里。

不要因为「DSH web 界面有点空」就装它。如果你要的就是 DSH 自带的那点东西,这个插件的价值在多出来的 tab、预览器和那套扩展服务,而不在把界面换成另一种样子。

不要把它当成信任边界。README 写明的是:路由受 Host 头围栏保护、文件写入是原子的、媒体与预览路由限定在会话工作目录内、git 只调 CLI 且绝不设置身份、预览路径有沙箱——但它没有写审计、没有写认证、也没有写审核流程。本页把安全状态标成 unverified,就是这个意思。

也不要默认它是离线的。来源里没有遥测、没有 analytics、没有隐私政策;而内嵌浏览器和地址栏的存在,本来就是为了访问别的站点。没有遥测声明,不等于承诺没有遥测,这是一个悬而未决的问题。

最后,别为了 Git 远程操作或 Office 文档装它。这两件事是被有意交给生态插件的,它不会替你做。

FAQ

它是插件还是基座?

两者都是。一个包里装了两半,host 半对外发布 ctx.betterSidebar,其他插件据此注册自己的 tab、文件预览器与文件图标。内置页面走的是同一套 API,所以 README 用的说法是「能力完全对等」,而不是「在插件之上再加一层」。

它会替换 DSH 的侧边栏吗?

v0.19.0 之后恰好相反:它不再自绘右侧面板,而是把 tab 注册进 DSH 原生右侧栏,顺手退役了旧的浮窗方案。它自己保留的是底部工作台。更早的版本行为不同,所以如果你钉的是老版本,这段描述不适用。

能用 Git 面板 push、pull 或 fetch 吗?

不能。README 把「Git 无 push/pull/fetch」写在已知限制里,并明确把远程操作留给独立插件。暂存、提交、还原、历史与 diff 才是它文档化的 Git 能力面——这是有意划的界,不是没做完。

它会上报遥测、或者把我的代码发出去吗?

来源里没说。README 没有提到遥测、analytics、隐私政策,也没有提到插件自身发起的外发请求,本页不会把这份沉默翻译成承诺。你能观察到的网络行为是:当你在内嵌浏览器里打开某个站点,或让侧边栏加载模型请求的网页时,那些请求是替你发的,属于你的流量,而不是文档化的遥测上报。这个问题请按「未说明」处理。

为什么第一次安装会失败?

因为 pnpm 11 拦截了 node-pty 的构建脚本,这次失败是预期行为,不代表包坏了。README 的修法是在 ~/.dsh/profiles/web 下放行构建脚本,然后重跑安装。如果之后终端提示 node-pty 加载失败,同样是「放行 + rebuild」这套修复,再重启 DSH 并点重试。

来源与参考

本页的技术判断建立在以下第一手资料之上,链接可直接追溯核对。

  1. [1]omdsh-dev/DSH-better-sidebar — GitHub插件自身的仓库与 README——本条目的每一项论断都以这份第一手文档逐条核对。
  2. [2]dsh-better-sidebar on npm — npm本页安装命令实际解析到的已发布包。
  3. [3]deepseek-ai/deepseek-harness — GitHubDeepSeek Harness、Cordis 运行时与插件加载模型的上游仓库。
  4. [4]@deepseek-ai/dsh on npm — npm已发布的 harness 包,也是本站 dshTarget 字段跟踪的版本来源。
  5. [5]dsh-plugin GitHub topic — GitHub本站用于发现收录插件的检索入口。

全部链接最后核验于 2026-09-11

关于本条目的问题

Better Sidebar 安全吗?可以安装吗?
Better Sidebar 当前的验证等级是 5 级中的 L3 级(安装命令可解析,已声明 DSH 目标版本),安全状态为「未验证(未运行扫描)」。验证等级记录的是安装路径被核查到什么程度,它本身不是安全保证:是否安全取决于插件实际能碰到什么。安装前请阅读源码与安装脚本,确认它对文件、shell、网络和凭证的访问范围。
Better Sidebar 兼容哪个 DeepSeek Harness 版本?
Better Sidebar 声明 dshTarget 为 ^0.1.5-rc.1,即本站核查这条目时所对应的 DeepSeek Harness 版本。dshTarget 是插件作者声明的兼容目标,它只说明该版本被核查过,并不保证上游发布新版本后插件仍然可用。升级 harness 前请先在隔离的 profile 中试装。
Better Sidebar 怎么安装?
先用 npx @deepseek-ai/dsh web 启动 harness,然后复制页面顶部的安装命令。该命令由仓库发布的包名(或条目声明的安装 spec)生成,因此不会与仓库实际发布的内容脱节。本条目最后核查于 2026-09-18。
它是插件还是基座?
两者都是。一个包里装了两半,host 半对外发布 ctx.betterSidebar,其他插件据此注册自己的 tab、文件预览器与文件图标。内置页面走的是同一套 API,所以 README 用的说法是「能力完全对等」,而不是「在插件之上再加一层」。
它会替换 DSH 的侧边栏吗?
v0.19.0 之后恰好相反:它不再自绘右侧面板,而是把 tab 注册进 DSH 原生右侧栏,顺手退役了旧的浮窗方案。它自己保留的是底部工作台。更早的版本行为不同,所以如果你钉的是老版本,这段描述不适用。
能用 Git 面板 push、pull 或 fetch 吗?
不能。README 把「Git 无 push/pull/fetch」写在已知限制里,并明确把远程操作留给独立插件。暂存、提交、还原、历史与 diff 才是它文档化的 Git 能力面——这是有意划的界,不是没做完。
它会上报遥测、或者把我的代码发出去吗?
来源里没说。README 没有提到遥测、analytics、隐私政策,也没有提到插件自身发起的外发请求,本页不会把这份沉默翻译成承诺。你能观察到的网络行为是:当你在内嵌浏览器里打开某个站点,或让侧边栏加载模型请求的网页时,那些请求是替你发的,属于你的流量,而不是文档化的遥测上报。这个问题请按「未说明」处理。
为什么第一次安装会失败?
因为 pnpm 11 拦截了 node-pty 的构建脚本,这次失败是预期行为,不代表包坏了。README 的修法是在 ~/.dsh/profiles/web 下放行构建脚本,然后重跑安装。如果之后终端提示 node-pty 加载失败,同样是「放行 + rebuild」这套修复,再重启 DSH 并点重试。

相似的 DSH 插件

查看全部

OpenBiliClaw

whiteguo233

本地优先的内容发现 agent,会学习你的兴趣,然后替你在开放网络和社交平台上搜寻。

L1
3.3k Python

DSH TUI

ccch1mneyyy

DeepSeek Harness 的交互式终端界面:像素鲸鱼顶栏、实时工作状态、流式思考与双击 Esc 回溯。

L2
3.1k TypeScript

给 DSH 的完整终端工作区:流式 Markdown 与工具卡、16+ 主题、slash 命令、会话标签页与 LSP 诊断——纯展示层,自身不注册任何 prompt 或工具面。

L3
280 TypeScript

DSH Synapse

liangmianya

DeepSeek Harness 的画布会话地图——把会话、追问与原生 fork 组织成可浏览、可拖拽的工作区,同时让 DSH session log 继续作为唯一事实来源。

L2
404 JavaScript

At File

FSMargoo

Codex 风格的 @文件 提及:在输入框里搜索工作区路径,把「路径引用」附加到提示中,而不是文件内容。

L2
513 JavaScript

电子表格、文档、幻灯片、画布与多维表格都存为工作区内的本地 .univer 文件,改动先进隔离草稿,由你确认或丢弃。

L3
362 TypeScript
ESC

输入关键词搜索索引,索引由 Pagefind 在部署时生成。