# dsh-toomuch-plugins **Makes room in the DSH Web sidebar.** · *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) [![npm](https://img.shields.io/npm/v/dsh-toomuch-plugins)](https://www.npmjs.com/package/dsh-toomuch-plugins) [![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)
--- A small plugin set that gives the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) Web sidebar some breathing room. It ships one plugin today: | Plugin | What it does | | --- | --- | | Sidebar panel collapse | Collapses the "global panels" column above the workspace into one toggle in the sidebar footer, plus a display settings page | ## Why The DSH Web sidebar stacks, from top to bottom: brand row → new session → **global panel entries** → workspace → settings. Every plugin that adds a sidebar entry adds a row to that column: plugins, plugin market, schedules, MCP studio, context, skill manager, system monitor… Seven rows are roughly 280px, which squeezes the workspace region down to a few sessions. This plugin does exactly one thing: **collapse that column of global panel entries**, and bring it back when you need it. ## Highlights - **Collapsed by default** — the workspace gets ~280px back as soon as the plugin is installed. - **One toggle** in the sidebar footer, right above "settings". - **Remembered** in `localStorage`; survives reloads and restarts. - **Nothing else is touched** — no panel, no workspace, no host behaviour; only the display of the list element the sidebar already renders. - **Themed** with `--dsw-alias-*` tokens only, so it follows the DSH theme. - **Rail-friendly** — in the narrow 56px rail the toggle becomes a round icon button. - **Grid display** — in Settings → Built-in plugins, switch the entry list to icons only (panel names become hover tooltips) with 2–4 icons per row. Bundles that skip the panel-list slot and inject their own sidebar buttons (the `data-dsh-*-entry` convention, e.g. 今日值得读 / 全局搜索 / 容器) are adopted into the grid too, and put back in place when the grid turns off. - **Keep some entries while collapsed** — list mode keeps the first 0–5 entries visible while the panels are collapsed; grid mode keeps the first 0–3 rows (rows × icons). Default 0, i.e. everything collapsed. - **Plugin display order** — pick panels one by one from a dropdown on the settings page; the list order is the sidebar order (lossless CSS `order` overrides). Capped at 20, duplicates dropped on save. The dropdown also lists slot-skipping sidebar entries (今日值得读 / 全局搜索 / 容器 and other `data-dsh-*-entry` followers); listed ones are adopted into the list so the order really applies, and released when the order is cleared. - **Click counting** — panel clicks accumulate into `~/.dsh/plugins/dsh-toomuch-plugins/click-counts.json`, (silently skipped when the remote is unavailable). - **Icon size** — pick small (12px), medium (the sidebar's own size, the default) or large (24px); the list and grid icons scale right away and the choice survives reloads. - **Off by default** — grid mode is opt-in; the preference lives in `localStorage` alongside the collapse state and survives reloads. ## Screenshots Grid display — icons only, panel names as hover tooltips, 2–4 icons per row: ![Sidebar panel list in grid display mode](docs/grid-dsh-toomuch-plugins.png) The "Sidebar panel display" settings page (Settings → Built-in plugins) — grid mode, icons per row, and how many rows stay visible while collapsed: ![Sidebar panel display settings page](docs/grid-setup-dsh-toomuch-plugins.png) ## Install The plugin is a repository-root package: it declares the `dsh.bundle` manifest, so DSH can install it straight from npm or GitHub. ```sh # from npm (prebuilt — no build approval step) dsh plugin --profile web add dsh-toomuch-plugins # from GitHub dsh plugin --profile web add github:rivenshanghai/dsh-toomuch-plugins # or from a local clone git clone https://github.com/rivenshanghai/dsh-toomuch-plugins.git dsh plugin --profile web add /path/to/dsh-toomuch-plugins ``` `dsh plugin` forwards to `pnpm` inside the profile. After the install, **enable the plugin** in DSH's plugin settings (it is written into the profile's `dsh.profile.bundles`), then refresh the page. From the plugin market, once listed: open **Settings → Plugin Market** in DSH and search for `dsh-toomuch-plugins`. **Verify:** the sidebar footer gains a "Collapse global panels / Expand global panels" row above "settings", and the global panel column is gone. Settings → Built-in plugins gains a "Sidebar panel display" page for grid mode, icons-per-row, how many entries (list) or rows (grid) stay visible while collapsed, the custom plugin display order (up to 20 entries), and the icon size (small / medium / large). Requirements: DSH (DeepSeek Harness) with a `web` profile; Node.js ≥ 20. ## How it works `src/client.js` does the following: 1. registers a toggle into the sidebar footer slot `sidebar.footer.action` (the row next to "settings"); 2. walks up from its own root node to find the sidebar root's direct `