A calmer reading view for DeepSeek Harness with auto-collapsing process, a minimap-style message navigation rail, in-page search, unified failure cards, and generative MCP Apps (SEP-1865) in sandboxed iframes.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-deckseek
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/JNNarrator/dsh-deckseek/releases/download/v0.4.5/dsh-deckseek-0.4.5.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:JNNarrator/dsh-deckseek
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
🙏 Thanks to the original repository aa2246740/dsh-better-display (MIT) and its authors and contributors.
dsh-deckseek is a fork of aa2246740/dsh-better-display, independently maintained by JNNarrator as a DeepSeek Harness display & interaction enhancement plugin (MIT).
Screenshots

The DeckSeek reading view: the execution record folds away and the final answer renders in full; the message rail hugs the right edge; spacing above the task bar and composer stays compact — no hollow gaps under long task lists.
| Message navigation rail | In-view search |
|---|---|
![]() |
![]() |
| Hovering a mark shows a "Turn N · title" info bubble; clicking scrolls the message into view with a landing flash | Live match counts with previous / next navigation; hits scroll precisely into view with a flash |
| Execution process & tool rows | Unified failure cards |
![]() |
![]() |
| Write/edit rows show +N -M change stats and per-family state labels (Written / Found…); thinking cards scroll and expand | Failure reason, exit code, and an expandable raw record |
Features
- Reading view: live native steps, thinking, and progress during execution; the process folds away on successful completion, leaving the final answer and interactive cards. An independent DeckSeek tab keeps the original Chat / Trajectory views, input box, model selector, tools, and approvals intact. Every known record kind (system prompts, turn processes, turn stats, …) is adapted; unknown kinds fall back to a copyable raw-record card — DSH is not stable yet, so the fallback stays. Failed tools / commands render as unified error cards: reason, exit code, and an expandable raw record.
- Answer cards: the reply and its copy action sit in a card matching the reasoning/tool surfaces; the copy chip floats over the card's top-right corner on hover, keeping the answer at full density.
- Three reading skins: Paper (typographic flow), Soft (cards), and Terminal (rows) — switch from the dedicated DeckSeek page in DSH settings and it takes effect immediately. Skins express structure, density, type, and radii only; colours always come from host theme tokens, so dark and light themes adapt automatically. Soft is the default.
- Message navigation rail: a minimal right-edge rail of tiny pill marks — one per message you sent, editor-minimap style. It takes no layout space and the reading column stays truly centered; the mark at your reading position widens and highlights, hovering shows a styled "Turn N · title" info bubble, and clicking scrolls that message into view with a landing flash (at the document end the newest message owns the highlight; hidden on narrow widths). Marks compress to fit when turns pile up, so every mark stays visible.
- Conversation export — one click in the reading-view toolbar exports the conversation as a Markdown file (your prompts + the assistant answers, in display order, process folded), filename auto-timestamped.
- Turn keyboard navigation — Alt+Up / Alt+Down jump between your messages using the same landing logic as the rail highlight and flash (inactive while typing in an input).
- Status & follow: the thinking card follows the latest lines and settles at the end; the open-turn status shows "BigFatFish is thinking… {time}" with a live clock, and tools show per-family start/done labels (Reading…/Read, Searching…/Found, Writing…/Written); scrolling up reveals a centered ⬇ back-to-latest button floating above the composer. Sending or steering a message returns the reader to the bottom (pinned follow takes over).
- In-view search: live search across your questions and the model's answers; Cmd/Ctrl+F opens the panel; every match keeps a quiet tint with character-exact highlighting (CSS Custom Highlight API) and the active hit inverts; match counts, previous / next navigation, and jumps that scroll the exact hit into view with a flash highlight.
- Reading position memory: reopening a session returns to your previous reading position with a brief notice; "Back to latest" jumps to the bottom anytime.
- Copy enhancements: one-click code-block copy; every table shows a hover "Copy as CSV" action (RFC 4180 — quotes and newlines handled).
- Bilingual UI (i18n): all reading-view copy follows the DSH app language (Chinese / English) with no restart.
- Long-thinking follow: thinking folds into a fading card that follows two lines; expanding pauses scrolling; resume anytime.
- Generative MCP Apps (SEP-1865): any
mcp-appcode block in the final answer is auto-mounted as a live interactive card inside asandbox="allow-scripts allow-forms"iframe, communicating with the host via JSON-RPCpostMessage(ui/initialize,ui/resize,ui/submit, ...). - Adaptive theme & height: live dark/light sync with zero first-frame flash; container height smoothly follows content (60–2400px).
- Lossless fidelity: native Markdown, syntax-highlighted code, math, tables, images, and tool facts render faithfully.
- 120 unit and component tests covering message projection, the Markdown pipeline, SEP-1865 parsing, adaptive height budgeting, two-line streaming follow, and the search / copy / reading-position interactions (happy-dom).
Installation & listings
Published on npm: dsh-deckseek
dsh plugin add dsh-deckseek
Listed in:
- awesome-dsh-plugin (PR #4528 merged)
- awesome-deepseek-harness-plugins / deepseek1024.com (PR #367 merged; the entry upgrades to one-click install once the published npm package is detected)
Development
- Dependencies come from a DSH checkout, not from npm: dev dependencies are linked to a built Harness checkout via
node scripts/link-harness-dependencies.mjs <checkout>; do not runpnpm install/pnpm addin this directory. package-lock.jsonis a best-effort artifact refreshed under--legacy-peer-deps: the published@deepseek-ai/dsh-client-ui-settingsdeclares a^0.0.1-rc.1peer on@deepseek-ai/dsh-client-ui-primitivesthat cannot intersect this plugin's 0.1.x range, so strict resolution always ERESOLVEs.- Therefore do not run
npm ciin this directory — it will not reproduce a usable dependency tree.
Other
- Features and usage are also described in the upstream repository: aa2246740/dsh-better-display
- Third-party notices: THIRD_PARTY_NOTICES.md · Changelog: CHANGELOG.md · Design contract: DESIGN.md
v0.7.4 · An unofficial DSH display & interaction enhancement plugin. It only changes presentation and interaction views — never the Agent's core execution, SDK, or model credentials.
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 7488
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 7488
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 3555
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 2994
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 2274
A fixed-corner whale widget showing DeepSeek balance, today usage, per-turn cost and random talk lines, with sound effects and a menu.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1072
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.




Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.