dsh-chat-tidy
Manifest validOne stylesheet that retypesets the DSH conversation to measured Codex metrics: 14/22 px body, tighter headings, lists and blocks, a rounded quote bar, and Tidy Tables with a themed header, row/column
dsh-chat-tidy
Tidy Chat aligns the DeepSeek Harness Web conversation page with the reading rhythm of a mature coding-agent client. Typography and spacing are measured from the Codex desktop app, then applied to DSH's own chat anchors. Tidy Tables completes Markdown tables with DSH-native component chrome. The Markdown renderer, theme, tool calls, reasoning, and session behavior are untouched.

What changes
| Item | DSH default | Tidy Chat (Codex-measured) |
| --- | --- | --- |
| Body | 16 / 28 px | 14 / 22 px |
| h1 – h6 | 24 / 22 / 20 / 16 / 16 / 16 px, weight 700 | 24 / 20 / 17 / 17 / 15 / 15 px, weight 600 |
| Heading margin | 32 px above, 16 px below | 20 px above, 10 px below |
| Block rhythm | 16 px | 11 px |
| List indent · item gap | 18 px · 6 px | 21 px · 8 px |
| Rule (hr) | 32 px | 28 px |
| Blockquote | 2 px square border | rounded 4 px bar, 18 px inset |
| Tables | Open edges; 15 / 25 px, 10 × 16 px cells | Rounded component; themed header; row and column rules; 14 / 22 px, 8 × 12 px cells |
| Activity rows | 24 px, 14 / 24 px label | 22 px, 13 / 22 px label |
The reading column stays at DSH's 748 px, because Codex measures ≈730 px — the existing width was already right. Two earlier over-tightenings are reversed: list items go back out to 8 px and horizontal rules to 28 px.

Tidy Tables
Tables now read as one component instead of a set of open horizontal rules. The shell uses DSH's own 12 px code-block radius and theme tokens; the header adopts the code-block banner surface and Codex's measured weight 600; short tables fill the reading column, while wide tables keep horizontal scrolling. No table content or alignment is rewritten.

Side by side
Both captures come from the same seeded session in the real assembled Web app, at the same viewport and device scale. The only difference between the two panes is the plugin stylesheet.

The same reply rendered end to end is 1411 px tall by default and 1127 px with Tidy Chat — 20 % less scrolling for identical content.

Design posture
Tidy Chat is a stylesheet and nothing else. There is no preference, no Settings row, and no stored state — disabling or uninstalling the plugin is the off switch. It does not:
- parse or sanitize Markdown;
- replace
conversation.chat.noderenderers; - hide reasoning, context injection, or tool calls;
- observe and rewrite React DOM nodes;
- change model output, session logs, or host data.
Selectors use DSH's semantic anchors (data-chat-flow, data-chat-flow-kind, data-slot, data-disclosure-row, data-composer-card, data-turn-tail, data-time-hover-root), never generated CSS-module class names. Each one carries a leading body so it outranks the equal-specificity module default regardless of stylesheet order. Colors continue to come from --dsw-* tokens, so built-in themes and token-based theme plugins keep palette ownership. The table shell is found through the stable rendered structure below those anchors, never its generated class. See DESIGN.md for the measurement and component record.
Install
dsh plugin --profile web add github:ChuanTianML/dsh-chat-tidy
Restart dsh web. The new layout applies immediately.
The GitHub repository includes verified host and client bundles, so installation does not need to run a dependency build script or change pnpm's allowBuilds policy.
For local development:
dsh plugin --profile web add -w /absolute/path/to/dsh-chat-tidy
The -w flag is required because the Web profile is a pnpm workspace root.
Compatibility
- Built-in light/dark themes: supported.
- dsh-skin: compatible; Tidy Chat owns geometry while dsh-skin owns colors.
- dsh-ux: both plugins change chat typography and flow spacing. Use one layout plugin at a time to avoid competing overrides.
- Alternative conversation views: Tidy Chat only affects views that reuse DSH's semantic chat-flow anchors.
Colors keep coming from the host, so the dark theme changes geometry only:

At 700 CSS px DSH collapses its own sidebar and the user-bubble cap falls back to 88 %, with no horizontal overflow:

The current implementation targets DSH >=0.1.0-rc.6. If DSH removes a semantic anchor, the unmatched rule becomes inert; it does not block rendering.
Development
Requires Node ^22.19 or >=24 and pnpm 11.
pnpm install
pnpm run check
pnpm run pack:check
pnpm run check runs strict typechecking, ESLint, Vitest, both host/client builds, and a generated-bundle freshness check. The tests cover stylesheet reference counting, anchor and specificity discipline, stable table-shell targeting, table component rules, and complete disposal.
See VALIDATION.md for measured browser results.
Privacy and security
The plugin makes no network requests and stores nothing. Report security issues as described in SECURITY.md.
License
MIT
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.3.0 | — | — |
From the same category
by omdsh-dev
开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 | Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git,
★ 3.6k
↓ 73.8k/wk
MIT
TypeScript
Sep 14, 2026
dsh plugin --profile web add dsh-better-sidebarby ccch1mneyyy
DSH 官方公众号收录的 TUI 补位插件:Claude Code 风,鲸鱼顶栏/实时状态/流式思考/双击 Esc 回滚/上下文进度+TPS。npm 一键装。 DSH official WeChat featured TUI plugin — Claude Code style: whale bar, live status, streaming thoughts, double-Esc rol
★ 3k
↓ 8k/wk
MIT
TypeScript
Sep 15, 2026
dsh plugin --profile web add @deepseek-harness-tui/dsh-tuiby MeteorNOX
DeepSeek Harness(DSH)一只住在 DSH 界面右下角的小鲸鱼娘,帮你盯着DeepSeek账户余额。QQ弹弹,支持拖拽吸附、左吸附翻转、数字滚动动画,随界面自动启用,建议直接喊来你的dsh安装
★ 2.4k
↓ 6.4k/wk
MIT
JavaScript
Sep 14, 2026
dsh plugin --profile web add dsh-whale-widgetby omdsh-dev
GenUI for DeepSeek Harness: interactive UI components rendered inline in assistant replies via the dsh-ui fence — layout, charts, plots, forms, quizzes, mermaid, 3D scenes, and an action event loop ba
★ 450
↓ 6k/wk
MIT
TypeScript
Sep 15, 2026
dsh plugin --profile web add @changfenhuang/dsh-genuiby huiliyi37
官方 DeepSeek Harness 的交互式终端 UI 插件:自研 ANSI 极简交互渲染、流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断、memory记忆,很丝滑的开发体验。
★ 277
↓ 462/wk
Apache-2.0
TypeScript
Sep 14, 2026
dsh plugin --profile web add @huiliyi37/dsh-tianshu-tuiby Nagi-ovo
在 DSH 对话中生成交互式可视化|Render model-generated interactive cards inside DSH conversations
★ 258
BSD-3-Clause
TypeScript
Aug 27, 2026
dsh plugin --profile web add @dsh-external/dsh-visualize