How to use dsh-ui-web
Overrides DSH's default conversation stats line: displays turns, steps, time elapsed, cache, and tokens with a running status indicator. Allows custom status text for three states: thinking, working, and completed.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
dsh-full-stats
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add @captain1275/dsh-full-stats
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- 毛玻璃输入框:高斯模糊(backdrop-filter 30px)+ 半透明玻璃底 + 细边框 + 内高光
- 自定义背景:URL / 本地图片 / 动图(GIF/WebP)/ 视频(mp4/webm) / 透明度 / 模糊调节,
- 仿Claude Code推理等级滑块:点击模型菜单的「推理等级」弹出 Effort 滑块面板——无极拖动、松手吸附、
- 用户消息气泡毛玻璃:与输入框统一的玻璃质感
- 图片资源(社区同人资源,codex-pet-DeepSeek-girl)
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
Where can I see it after installation?
Enter any project session in DSH Web GUI, and a non-abbreviated stats row will appear at the bottom of the dialog (turns/steps/LLM and tool latency/first token/speed/cache hit/input-output tokens); the row starts with an amber or green status dot; a collapsible "Full Stats Row (Status Text)" configuration card also appears in the "Web UI Plugins" group on the DSH Web settings page (src/client/index.ts:208-216, src/client/FullStatsSettingsCard.tsx:57-103).
Where is the config saved? Will it be lost after uninstalling or switching machines?
The three text fields (thinkingText/workingText/doneText) are written to the host process's ~/.dsh/full-stats.json (reads $DSH_HOME environment variable by default, falls back to ~/.dsh). The PUT interface validates field types before writing and overwrites the file, so switching machines requires manual migration of this JSON file; uninstalling the plugin does not delete this file (src/index.ts:31-47, src/index.ts:76-90).
Which official text does the 'thinking status text' override?
Overrides the "Deep diving..." placeholder text hardcoded in the official ChatView inline JSX. The client uses MutationObserver to listen for [class*="turnStatus"] nodes, and when that string is matched, replaces it in place with the user configuration; the clock span is preserved, only the text node is replaced (src/client/index.ts:74-91).
How do the three status texts get triggered to display?
Shows the "Working" prefix when session is running + workingText is non-empty; shows the "Done" prefix when session is idle and non-blank + doneText is non-empty; if any configuration is an empty string, it falls back to the original stats row without showing custom prefixes (src/client/index.ts:152-159).
Will it replace the official DSH stats row? What about conflicts with other plugins (like dsh-live-stats)?
It overrides rather than coexists. The browser half re-registers in the conversation.composer.dock slot with the same id=stats but lower priority=-1 (src/client/index.ts:208-216). When the first-registered official component coexists with the later-registered one, rendering order is determined by priority; the trade-off with other plugins that also modify the stats slot like dsh-live-stats depends on each package's priority and registration order, with no special mutual exclusion in the source code.
Is there a size limit for the config API?
Yes. Requests to PUT /api/full-stats/config with body exceeding 100,000 bytes are rejected by the server with reject(new Error('body too large')) and req.destroy(); in practice, the three text fields combined are far below this threshold, so normal input won't trigger it (src/index.ts:54-67).
Must it be DSH Web to use?
Yes. The package.json#dsh.client.platform field is web; the browser half depends on @deepseek-ai/dsh-client-runtime and @deepseek-ai/dsh-client-ui-conversation client runtime; the host route /api/full-stats/config is also mounted on DSH Web's webServer, and won't load in headless/CLI mode (package.json:18-23, src/index.ts:95-99).
Will the stats row automatically restore to the official style after uninstallation?
Yes. This plugin replaces the official id=stats with priority=-1; after removing the plugin, this override disappears with the plugin uninstall, and DSH Web's built-in stats row restores display—but since this plugin sets whiteSpace:normal and running status dots, the official original style remains truncated with whiteSpace:nowrap (src/client/index.ts:163-196).
— source: plugin_wiki.faq_json
Compatibility
- DSH: 0.1.0-rc.6+(devDependencies 锁定 @deepseek-ai/dsh-client-runtime 与 @deepseek-ai/dsh-client-ui-conversation 为 ^0.1.0-rc.6)
- Node: 未声明(仓库根 package.json 与本包 package.json 均未声明 engines 字段)
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule