dsh-sidebar-plugins-toggle:侧边栏插件区一键收起

前言

DeepSeek Harness(DSH)侧边栏顶部有一组与插件相关的入口:插件市场、自动化任务、上下文洞察、更多。日常用 Harness 时,会话列表往往更需要纵向空间,但这些入口默认始终占着侧栏上半截。官方侧栏行组件目前没有「行尾操作」插槽,单靠设置很难把整块区域折起来又不丢返回路径。下面介绍的 dsh-sidebar-plugins-toggle(列表显示名:收起侧边栏,英文 Collapse Sidebar)在「插件」那一行最右侧加一个小箭头:点一下收起上述插件区,再点一下展开,并把折叠状态记在浏览器本地。

这是什么

  • 仓库:Hanice404/dsh-sidebar-plugins-toggle
  • 维护者:小黑(Hanice404)
  • 分类:客户端插件(浏览器 / Electron 渲染层逻辑,index.js 为空实现,实际工作在 client.js)
  • 许可:MIT(© 2026)
  • 当前包版本(package.json):0.1.1

插件在侧边栏「插件」行右侧绘制箭头控件;「插件」这一行始终保留,否则控件会随 DOM 消失而无法展开。所谓「插件区」指「插件」行以下的面板入口(插件市场、自动化任务、上下文洞察、更多)。收起后只留「插件」一行,其下空间归会话列表使用。

核心功能

资料中写明的能力如下,安装前可按需对照源码核对。

  1. 折叠 / 展开:点击行尾箭头;默认展开,箭头朝下(▾),收起后箭头朝右(▸)。
  2. 状态持久化:折叠状态写入 localStorage,键名为 dsh-sidebar-plugins-toggle:collapsed,刷新页面后保持。
  3. 轨道模式:侧栏折成约 56px 图标轨道时,箭头自动隐藏,且不收起任何入口(避免无箭头时无法恢复)。
  4. 不误触面板:点击箭头在捕获阶段拦截事件,不会顺带打开「插件」面板。
  5. 多语言:提示文案覆盖 DSH 支持的 8 种语言;支持 Tab 聚焦与 Enter / 空格操作。
  6. 自维护对齐:通过 MutationObserver 等在 React 重渲染、整行替换、切换语言、面板重新注册后重新对齐;找不到侧边栏时不抛错。
  7. 兼容性声明:针对 DSH 0.2.2-rc.1(@deepseek-ai/dsh-client-ui-sidebar@0.2.2-rc.1)验证;平台为 Web / Electron 渲染层。

安装与启用

README 要求先确认 DSH 版本为 0.2.2-rc.1(按该版本侧边栏结构验证过)。安装命令须使用资料原文,不要自行拼接其他 CLI 形式。

1、进入你实际使用的 profile 目录(示例为桌面 profile):

cd ~/.dsh/profiles/desktop        # 换成你实际使用的 profile 目录

2、用 pnpm 从 GitHub 安装:

pnpm add github:Hanice404/dsh-sidebar-plugins-toggle

3、在同一目录下的 package.json 中,把包名加入 dsh.profile.bundles:

{
  "dsh": {
    "profile": {
      "bundles": [
        "…",
        "dsh-sidebar-plugins-toggle"
      ]
    }
  }
}

4、刷新一次页面(DSH 右上角刷新,或重新打开应用),箭头应出现在「插件」行右侧。

本地改插件源码时,可用 link 免重装(路径改为本机绝对路径):

cd ~/.dsh/profiles/desktop
pnpm add "link:/absolute/path/to/dsh-sidebar-plugins-toggle"

改代码后刷新页面即生效。

典型用法

界面示意(来自 README,字符仅用于说明布局):

展开(默认)

▣  插件                    ▾   ← 点这里
▣  插件市场
⏱  自动化任务
▤  上下文洞察
⊞  更多

收起

▣  插件                    ▸   ← 再点一下展开
── 工作区 ──

操作只有两步:点箭头收起插件区;再点同一箭头展开。需要长期保持收起时,依赖 localStorage 即可,无需额外配置项(资料未列出其他配置字段)。

卸载

1、从 dsh.profile.bundles 中删除 dsh-sidebar-plugins-toggle。
2、在同一 profile 目录执行:

cd ~/.dsh/profiles/desktop && pnpm remove dsh-sidebar-plugins-toggle

实现要点(便于审计)

插件未修改官方 @deepseek-ai/dsh-client-ui-sidebar 包,而是在面板行按钮尾部追加原生 DOM 宿主节点 data-dsh-pst-host,用 CSS 隐藏除「插件」行以外的 nav 直接子节点。Host 端保持空实现,是为避免桌面端将启动失败的插件条目视为致命错误。若日后官方提供行尾操作插槽,README 称可能改为插槽实现并同步文档。

客户端插件在当前 DSH 进程对应的渲染环境中运行;安装前建议阅读 仓库源码 与 MIT 许可证,确认行为符合你的环境策略。

适用场景与注意

  • 适合:经常在 Harness 里长会话列表、希望临时收起插件相关入口、又不想改官方 UI 包的用户。
  • 不适合或需留意:侧栏结构若与 0.2.2-rc.1 差异较大,折叠定位可能失效;轨道模式下本就不提供折叠。
  • 生态说明:DSH 主张「一切皆插件」;社区目录 SkillHub 插件页 与 GitHub 为独立分发渠道,与 DeepSeek / 幻方无官方从属关系。

仓库另提供 npm test(Chrome/Chromium 端到端,25 项检查),面向开发者自测,一般使用者按上文安装即可。

结尾

dsh-sidebar-plugins-toggle 用一行箭头收放侧边栏插件区,并把状态留在本机浏览器,改动面限于客户端 DOM 装饰。需要安装步骤与示意图时,可查 SkillHub 目录 与 GitHub README。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜