An MIT-licensed DSH web plugin that lists, filters, copies and jumps to every message you sent in a session, including history that was compacted away.
DSH integration
Native runtime
Author-claimed
Safety audit
Unaudited
Last verified
2026-11-13
License
MIT
01What can it help you accomplish?
Find and jump back to any message you sent in a very long DSH session
a panel listing every message you sent — including pages not yet loaded and history overwritten by compaction — with one-click scroll-and-highlight
People running long DSH sessions who can no longer scroll back to an earlier instruction
Search, re-order and copy messages without leaving the session
live text filter, newest-first / oldest-first toggle, and a per-row copy button for the full text
Users who reuse earlier prompts and want to re-send or reword them
Open the message list without waiting for the session log to be re-read
a background prefetch on entering a session plus a Host-side cache, so the panel opens instantly
Users on huge sessions where re-reading the full log used to time out
02How to install into DeepSeek Harness
Prerequisites
- A working DSH install — `dsh web` must run normally
Installation steps
- 01
`dsh plugin --profile web add dsh-history@latest`
$ dsh plugin --profile web add dsh-history@latest
- 02
`bash ~/.dsh/profiles/web/node_modules/dsh-history/restart-dsh-web.sh` — the restart script ships with the plugin, no extra download
Verify the integration
- Every session shows the 「我的消息 (N)」 button above the composer once installed — no manual step
- If it is missing: check that `dsh.profile.bundles` in `~/.dsh/profiles/web/package.json` contains `dsh-history`
03DSH integration and capability boundaries
DSH web plugin bundle: a Host half that serves the full message list with caching, plus a client half that adds the 「我的消息 (N)」 button above the composer
Complete sent-message history
every message you sent in the current session, including pages not yet loaded into the chat window and history covered by compaction
One-click locate
a row in the message list→loads earlier history if needed, waits for render, then scrolls smoothly, flashes a highlight and closes the panel
may page in earlier history of the current sessionSearch, sort and copy
message text→live filter, newest-first / oldest-first ordering, and the full message text on the clipboard
writes the copied message text to the system clipboardPrefetch and Host-side cache
the full list is prefetched in the background when a session opens, so the panel opens instantly
reads the session log in the background on entering a sessionrestart-dsh-web.sh
the DSH deployment on this machine→restarts DSH Web — via `systemctl restart` for a systemd-managed `dsh-web.service`, otherwise by re-launching the running `dsh web` process with its original arguments
restarts your DSH Web processflags: `-n` dry-run, `-p PID` target process, `-l file` log file
04Who is it for? When not to use it?
Good for
- People running long DSH sessions who can no longer scroll back to an earlier instruction
- Users who reuse earlier prompts and want to re-send or reword them
- Users on huge sessions where re-reading the full log used to time out
Not for
- The three install channels (npm, GitHub, plugin-registry) must not be mixed: enabling two of them double-mounts the plugin — the Node half mounts twice and the page shows two panels — so remove the other channel's mount before switching.
- The plugin tracks DSH internals: v0.1.25 exists specifically to follow DSH 0.1.5 (`conversation.input.dock` now hands over a `SessionSnapshot`, and the Host reads `session.snapshotEvents()`), so a DSH upgrade can break locate/jump until the plugin is updated.
05Compatibility, maintenance and safety notes
- The three install channels (npm, GitHub, plugin-registry) must not be mixed: enabling two of them double-mounts the plugin — the Node half mounts twice and the page shows two panels — so remove the other channel's mount before switching.
- A Host-side change only takes effect after DSH Web is restarted, and the client half needs a hard browser refresh; if the button does not appear, check the restart, then `dsh.profile.bundles`, then the plugin list output.
- Auto-loading earlier history is capped at 30 pages to prevent runaway loops, and very long histories render only the most recent 200 entries with a hint.
- The plugin tracks DSH internals: v0.1.25 exists specifically to follow DSH 0.1.5 (`conversation.input.dock` now hands over a `SessionSnapshot`, and the Host reads `session.snapshotEvents()`), so a DSH upgrade can break locate/jump until the plugin is updated.
MIT · latest release v0.1.25 (published 2026-09-11) · README evidence only, not security audited
06Frequently asked questions
How do I install dsh-history into DeepSeek Harness?
Run `dsh plugin --profile web add dsh-history@latest`, then `bash ~/.dsh/profiles/web/node_modules/dsh-history/restart-dsh-web.sh` — the restart script ships with the plugin. A 「我的消息 (N)」 button then appears above the composer in every session with no further setup. The prerequisites are only a working `dsh web`.
Why can it show messages the chat window no longer has?
It reads the full session message list from the Host rather than the rendered chat: messages on pages that were never loaded into the window and history covered by compaction are both included. Rows are tagged 可定位 (already in the window), 未加载 (older history, loaded on click) or 定位中… (loading and waiting for render).
What does it write or change in my DSH install?
It installs as a normal bundle under `~/.dsh/profiles/web/` and is listed in `dsh.profile.bundles`. The only other thing it does is restart DSH Web when you run the bundled script, which uses `systemctl restart` for a systemd-managed `dsh-web.service` or re-launches the running `dsh web` process with its original arguments.
The button does not appear after installing — what now?
Check in this order: confirm the service was restarted (or hard-refresh the browser with Cmd/Ctrl+Shift+R); confirm `dsh.profile.bundles` in `~/.dsh/profiles/web/package.json` contains `dsh-history`; if it still fails, open an issue with the output of `dsh plugin --profile web list`. A "✕ missing peer" warning during install can be ignored.
Can I mix the npm, GitHub and registry install channels?
No. Enabling two channels double-mounts the plugin — the Node half mounts twice and the page shows two panels — so remove the other channel's mount before switching. The README documents all three: npm (`dsh-history@latest`), GitHub (`github:chenproton/dsh-history#main`, which uses the committed build output) and plugin-registry.
07Related DSH workflows
huashu-design
by alchaincyf
Creates selectable design directions and delivers interactive prototypes, PPTX, animations, and visual assets.
dsh-tui
by ccch1mneyyy
Claude Code 风格全屏终端 TUI:像素鲸鱼顶栏、双流光大字、实时工作状态行、思考流式展开、双击 Esc 时间回溯、上下文进度条 + TPS 仪表;接入 Agent preset(standard/code/minimal/cordis)、Skills、MCP、Goals、Todos、子代理,/ 命令注册表与随附技能(audit/bug/review/practice/pr_comments/release-notes/vuln-check);纯插件挂载零核心改动。
dsh-better-sidebar
by omdsh-dev
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
dsh-media-desk
by woniuniuniu
Capture ideas and generate scripts, titles, covers, images, storyboards, schedules, and review data in a sidebar media workspace.
08Data and sources
DSH web 插件:在超长会话里**快速查看、搜索并跳转到所有"你发送"的消息**。
装完每个会话输入框上方自动出现 **"我的消息 (N)"**,无需手动操作。
- **完整历史**:列出当前会话中**全部**你发送的消息,包括尚未加载进对话窗口的旧页、被 compaction 覆盖的历史。
This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-11-13. Found an error? Submit a correction.
Best DeepSeek Harness Plugins
Twelve plugins worth installing first — picked from the whole catalog, across every category.
