Bundle
dsh-width-tiers
DSH Web client plugin: chat content width tiers (standard / medium / wide / ultra / full) with a floating picker button. Frees wide tables from the app's hard-coded 748px content cap. UI copy follows the app language (zh / en).
- Source
- aaronlei
- stars
- 3 stars
- License
- MIT
- Updated
- Updated 4 hours ago
Readme
# dsh-width-tiers [](LICENSE) 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 ```bash dsh plugin --profile web add dsh-width-tiers ``` The bundle patch then inserts the `dsh-width-tiers` loader entry itself — no manual `cordis.patch.yml` edits needed. 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's `node_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 restart `dsh web` and hard-refresh. ## Usage - Click the round button → pick a tier; the current one is highlighted. - `full` collapses 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); `standard` leaves 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-width` is **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 `full` tier; returning to `standard` restores 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. Use `full` (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 ```bash dsh plugin --profile web remove dsh-width-tiers ``` then restart `dsh web`. ## License MIT — see [LICENSE](LICENSE). Copyright (c) 2026 aaronlei.
Install
dsh plugin --profile web add github:aaronlei/dsh-width-tiers#a2ca3db841c7d7bcee79a26d966c6d260f160ab1
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-width-tiers from the hub