# toomuch-plugins **给 DSH Web 侧栏腾点地方。** · *Too many plugins, too little room.* [![license](https://img.shields.io/github/license/rivenshanghai/dsh-toomuch-plugins)](https://github.com/rivenshanghai/dsh-toomuch-plugins/blob/main/LICENSE) [![node](https://img.shields.io/badge/node-%E2%89%A520-brightgreen)](https://nodejs.org) [![DeepSeek Harness](https://img.shields.io/badge/DeepSeek%20Harness-plugin-blue)](https://github.com/rivenshanghai/dsh-toomuch-plugins) [![topic](https://img.shields.io/badge/topic-dsh--plugin-8A2BE2)](https://github.com/topics/dsh-plugin) [English](README.md) | [简体中文](README.zh-CN.md)
--- 给 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)Web 侧栏做减法的小插件集。 目前只内置一个插件: | 插件 | 作用 | | --- | --- | | 侧栏面板收起 | 把工作区上方的「全局面板入口」列收成侧栏底部的一个开关 | ## 为什么 DSH Web 侧栏从上到下依次是:品牌行 → 新会话 → **全局面板入口** → 工作区 → 设置。 每个往侧栏加一项的插件都会在这列里加一行:插件、插件市场、定时任务、MCP Studio、上下文、技能管理器、系统监控……七行大概 280px,工作区区域被压得只剩几个会话。 这个插件只做一件事:**把这一列全局面板入口收起来**,需要时再展开。 ## 特性 - **默认收起** —— 装上之后工作区立刻多出约 280px。 - **只要一个开关** —— 放在侧栏底部,「设置」那一行的上面。 - **记住选择** —— 存在 `localStorage`,刷新、重启都保持。 - **不碰别的东西** —— 不动任何面板、工作区或 Host 行为,只切换侧栏本来就会渲染的那个列表元素的显示状态。 - **跟随主题** —— 只用 `--dsw-alias-*` 主题变量,明暗主题都一致。 - **窄栏友好** —— 侧栏收成 56px rail 时,开关变成一个圆形图标按钮。 ## 安装 本插件是「仓库根即包」的形式:根 `package.json` 里就声明了 `dsh.bundle` 清单, 所以 DSH 可以直接从 GitHub 安装。 ```sh # 从 GitHub 安装 dsh plugin --profile web add github:rivenshanghai/dsh-toomuch-plugins # 或者从本地 clone git clone https://github.com/rivenshanghai/dsh-toomuch-plugins.git dsh plugin --profile web add /path/to/dsh-toomuch-plugins ``` `dsh plugin` 实际是把参数转交给 profile 里的 `pnpm`。装完之后还要在 DSH 的插件设置里 **启用它**(它会被写进 profile 的 `dsh.profile.bundles`),然后刷新页面。 如果已经被收录进插件市场:在 DSH 里打开 **设置 → 插件市场**,搜索 `toomuch-plugins`。 **验证方式:** 侧栏底部「设置」上面会多出一行「收起全局面板 / 展开全局面板」, 同时那列全局面板入口消失。 环境要求:带 `web` profile 的 DSH(DeepSeek Harness);Node.js ≥ 20。 ## 实现原理 `src/client.js` 做三件事: 1. 在侧栏底部插槽 `sidebar.footer.action` 注册一个开关按钮(即「设置」旁边那一行); 2. 从自己的根节点向上回溯,找到侧栏根节点下的直接子元素 `