When handling multi-turn conversations or debugging prompts in the DeepSeek Harness (DSH) Web environment, you may occasionally need to quickly reference or reuse the content of previous messages. Manually scrolling or copy-pasting can interrupt the workflow. This plugin addresses the efficiency issue in this scenario by adding arrow-key navigation and a floating history panel to the Web GUI.
Feature Positioning¶
This is a client-side plugin that automatically adds a browser-side component to each session. It registers a history dropdown that floats above the input box and registers a clock icon button in the input box toolbar.
Core Capabilities¶
- Arrow-key navigation
When the cursor is at the beginning of the input box, pressing↑opens the history list (oldest first); when the cursor is at the end of the input box, pressing↓opens the list (newest first). The list scope is read from the current session’s conversation snapshot in real time. - Interaction logic
After the list is opened, continue pressing the arrow keys to move between records. PressEnterto accept the selected record (while preserving the content in the input box), and pressEscor click outside the list to cancel and restore the draft state from before opening. Clicking a row in the list jumps directly to that message. - List display
The list supports grouping by date (today, yesterday, earlier), with a timestamp displayed on each row. Long messages are shown as a 3-line truncated preview, and hovering with the mouse reveals the full text (implemented using the browser-nativetitleattribute). Consecutive duplicate messages are collapsed, and the list retains at most the latest 500 records. - Technical implementation
The plugin is a pure client-side UI and does not involve host-side behavior, persistent storage, or network requests. It declaresdsh.bundle.patchand directly distributeslib/index.jsandlib/client.js, so no build step or additionalallowBuildspermission is required. - Compatibility
Opening the history does not interfere with the existing/or@menus in the input box. Keyboard combinations (Ctrl/Cmd/Alt) in the input box and the editing state of Chinese Input Method Editors (IME) remain unchanged before the history is triggered.
Installation and Enabling¶
This plugin depends on the DeepSeek Harness CLI tool.
dsh plugin --profile web add github:wellorbetter/dsh-input-history
After installation, restart the target profile (for example, dsh web or dsh --profile <name>) to load the plugin.
Typical Usage¶
- Focus the chat input box in any session.
- If the cursor is at the beginning of the line, press
↑; if it is at the end of the line, press↓. This opens the history panel. - Use the arrow keys or the mouse wheel to select a record, press
Enterto confirm, or click a list row to jump directly. - You can also click the clock button in the input box toolbar to open the panel.
Notes¶
- Confirm that the
dshCLI is installed locally before use. - Because the plugin declares
dsh.bundle.patch, it is automatically merged into the profile’s bundles configuration during installation. - The plugin does not provide data persistence; history records are limited to the current session’s conversation snapshot.
This plugin is suitable for developers who frequently need to review or reuse historical context in the Web GUI. For more details and the source code, refer to its GitHub repository.