ChuanTianML/dsh-chat-tidy
Restrained chat typography and layout for DeepSeek Harness Web
已收录
1
Ui
Bundle 已验证
功能介绍
一张样式表,按实测的 Codex 版式重排 DSH 对话页:14/22 px 正文、更紧凑的标题层级、列表与块级节奏、引用条与表格单元格;无需任何设置,README 内附前后对比图。
适合
- 经常阅读长篇 DSH 对话、希望提高信息密度并减少滚动的用户。
- 偏好类似 Codex 的 14/22 px 正文,以及更紧凑标题、列表、引用和表格节奏的用户。
- 希望调整版式但继续由宿主控制配色的内置明暗主题或 Token 主题用户。
不适合
- 需要可调字体排版或界面开关的用户;该样式表没有偏好设置,只能通过禁用或卸载来关闭。
- 已使用 dsh-ux 修改聊天字体和间距的环境,因为两个插件可能产生样式冲突。
- 未复用 DSH 语义化 chat-flow 锚点的替代会话视图。
README
dsh-chat-tidy
Tidy Chat aligns the DeepSeek Harness Web conversation page with the reading rhythm of a mature coding-agent client. Every metric is measured from the Codex desktop app, then applied to DSH’s own chat anchors. 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 |
| Table cells | 15 / 25 px, 10 × 16 px padding | 14 / 22 px, 8 × 12 px padding |
| 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.

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. See DESIGN.md for the measurement 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, 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
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:ChuanTianML/dsh-chat-tidy。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。