aaronlei / dsh-width-tiers

Listed

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).

mainTool View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:aaronlei/dsh-width-tiers

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 88f339eSynced Aug 18, 2026

dsh-width-tiers

License: MIT

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:

TierContent widthSidebar
standard 标准748px (app default)untouched
medium 中等960pxuntouched
wide 宽1280pxuntouched
ultra 超宽1400pxuntouched
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'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

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.

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected

Repository information

Language
JavaScript
License
MIT
Latest release
v1.0.2
Last updated
Aug 17, 2026, 5:09 PM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.