Plugin directory / UI & Skins / dsh-width-tiers
dsh-width-tiers
Verified · install-tested on dsh aaronlei
What it does
A client plugin for the DeepSeek Harness Web GUI that adds chat content width tiers with a floating picker button (bottom-right, above the…
Works — verified, early-stage project
A client plugin for the DeepSeek Harness Web GUI that adds chat content width tiers with a floating picker button (bottom-right, above the… It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-width-tiers
A client plugin for the DeepSeek Harness Web GUI that adds chat content
width tiers with a floating picker button (bottom-right, above the
composer): 标准 / 中等 / 宽 / 超宽 / 全宽 (standard / medium / wide / ultra /
full).
Why
The DSH Web app hard-codes a readable content width on the conversation root
(--dsh-chat-content-width: 748px). That caps the message column — and every
table inside it — at 748px no matter how wide your window or panels are,
so wide tables always need horizontal scrolling.
This plugin overrides that variable per tier:
| Tier | Content width | Sidebar |
|---|---|---|
| standard 标准 | 748px (app default) | untouched |
| medium 中等 | 960px | untouched |
| wide 宽 | 1280px | untouched |
| ultra 超宽 | 1400px | untouched |
| full 全宽 | 100% (fills the window) | collapsed to the icon rail |
The choice persists in localStorage and is restored on the next visit; the
menu highlights the current tier, and the button's five level-bars show it at
a glance.
Install
dsh plugin --profile web add dsh-width-tiers
Then register it as a loader entry in~/.dsh/profiles/web/cordis.patch.yml:
- insert:
- id: dsh-width-tiers
name: dsh-width-tiers
Restart dsh web (the plugin loads at boot) and hard-refresh the page
(Ctrl+Shift+R). A round button with five bars appears at the bottom-right.
Installing from a local checkout:
dsh plugin --profile web add file:/path/to/dsh-width-tiers.
Local-development gotcha:file:dependencies are copied into the
profile'snode_modules(pnpm does not symlink them). After editing the
plugin source, re-sync the copy (e.g.rsync -a --delete --exclude .git /path/to/dsh-width-tiers/ ~/.dsh/profiles/web/node_modules/dsh-width-tiers/)
or re-install after removing it, then restartdsh weband hard-refresh.
Usage
- Click the round button → pick a tier; the current one is highlighted.
fullcollapses the sidebar to the icon rail through the app's own toggle
— it is never force-hidden or locked: click a rail icon any time to expand
it, and it stays expanded.- Non-standard tiers also close the details panel (re-closed automatically if
reopened);standardleaves everything to the app.
Language
All picker copy (tier labels, button aria-label and title) follows the
app's Settings → Language (中文 / English), through the app's own locale
service. Switching the language re-renders the button and menu immediately;
when no explicit language is chosen the app falls back to the browser's
language, and Chinese is the last resort. No plugin-side setting needed.
How it works
- The element that defines
--dsh-chat-content-widthis located at
runtime (the first element whose computed value is non-empty) and the
tier is applied as an inline override — no hashed class names, so it
survives bundle upgrades. - Panels are driven through the layout service (
ctx.layout), never by
simulating clicks. - The sidebar is only ever collapsed by the
fulltier; returning tostandardrestores it only if this plugin collapsed it. - Dictionaries are registered with the app's locale service
(ctx.locale.register/bind) and re-rendered through its change
subscription, so the copy always matches the app's active language.
Limitations
- Content width cannot exceed the window: on a narrow window, wider tiers are
capped by the available column. Usefull(which also collapses the
sidebar) for the maximum. - Requires the DSH Web client plugin system (dsh ≥ 0.1.0-rc.x with a
web
profile).
Uninstall
dsh plugin --profile web remove dsh-width-tiers
Remove the dsh-width-tiers row from ~/.dsh/profiles/web/cordis.patch.yml,
then restart dsh web.
License
MIT — see LICENSE. Copyright (c) 2026 aaronlei.
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-width-tiers for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
Web profile:
dsh plugin --profile web add dsh-width-tiers Headless (CLI) profile:
dsh plugin --profile headless add dsh-width-tiers Package
npm: dsh-width-tiers · version — · tested on dsh 0.1.0-rc.6
Test report
Verified end-to-end: L1 install + L2 load + L3 runtime Q&A on dsh 0.1.0-rc.6.
When to use it
Change how dsh looks or how you interact with it — a theme, a skin, or a new panel that reshapes the workspace.
Who it's for
Users who spend hours in the web UI and want it to look and feel the way they work.
For developers — extending it
Skins, panels, and theme tokens are the extension points — author a new skin, add a panel, or sync tokens with an upstream palette.