Collapses consecutive tool-use and thinking steps between messages into a single bracketed, expandable item.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:mervyn-teo/dsh-plugin-collapsible-steps
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 中文
A DeepSeek Harness (DSH) Web
plugin that folds every run of consecutive collapsible-card steps between
messages into a single + N steps row. Click the row to collapse the run
(hiding all but the most recent step) or expand it back. The shipped
conversation cards and markdown answers are left untouched — the rows are
annotated, never replaced.
What it does
- Adds a Collapse steps / Expand steps control to the session header, and a
- N stepsrow before every run of consecutive step nodes. - Collapsing a row hides that run's rows (
display: none, so no empty gaps are left behind) except the most recent one, which stays below the+ N stepstext; clicking+expands the run back. - A "step" is any collapsible-card row —
tool-call,workflow-run,command,command-input,compaction,context(context injection),manual-compaction,model-retry, and an assistant message'sThink(reasoning) disclosure. The final text answer, user/steering messages, and turn notices act as group boundaries. - The regular tool cards, reasoning sections, and markdown answer rendering all remain the shipped DSH ones.
- A Collapsible steps card under Settings → Plugins controls whether runs are collapsed by default.
Settings
The plugin registers a collapsible-steps settings namespace with one option:
collapseByDefault(boolean, defaulttrue) — collapse runs of steps by default. Turn it off to keep runs expanded until you collapse them manually.
How it works
The slot system gives a plugin no way to wrap the shipped conversation cards, so instead of replacing the step renderers this plugin annotates the shipped DOM: it reads the conversation node order through the session hook, computes the runs of consecutive steps, and inserts the bracket headers directly into the existing flow (the node rows themselves are never moved, so the shipped view keeps reconciling normally).
Files
| File | Purpose |
|---|---|
lib/client.js |
Browser half — the header control, bracket insertion, collapse state, and the settings card. |
lib/index.js |
Host half — registers the collapsible-steps settings namespace. |
lib/invariant.js |
Invariant registration. |
cordis.patch.yml |
Composition patch that inserts the plugin row and its default config. |
package.json |
Package metadata (dsh.bundle + dsh.client manifest). |
Install
dsh plugin --profile web add github:mervyn-teo/dsh-plugin-collapsible-steps
Then restart dsh web — host bundles load at boot.
Requirements
- DSH with the base conversation UI (
@deepseek-ai/dsh-client-ui-conversation) mounted — the plugin inserts brackets into its chat flow.
License
Links
More in this category
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 3133
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 1477
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 1435
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/dsh-at-file★ 248
Codex-style `@file` mentions: search workspace files in the composer and attach their contents to prompts.
huiliyi37/dsh-tianshu-tui★ 184
A terminal UI (TUI) for DeepSeek Harness.
Nagi-ovo/dsh-visualize★ 141
In-conversation generative UI: the model renders interactive HTML cards into the chat stream, with streaming preview and sandboxed rendering.