Introduction¶
When DeepSeek Harness (DSH) processes long-form agent output, the default follow-scroll logic can sometimes scroll too quickly, causing content to fly past before it has time to be read. The chat-pace plugin addresses this pain point by providing multiple configurable scrolling modes and fine-grained controls, letting users regain control of the reading pace and prevent content from “flying past” the screen.
Plugin Overview¶
This is a plugin designed for the DeepSeek Harness Web UI and maintained by TheGoodMorty. It addresses the problem of agents outputting text too quickly. By providing five scrolling modes, global hotkeys, and session position memory, it works in coordination with DSH’s built-in follow logic.
Installation and Enabling¶
Run the following command in the terminal to install the plugin:
dsh plugin add TheGoodMorty/chat-pace
After installation, you must restart the DSH server and refresh the page for the plugin configuration to take effect. Controls will appear in the tool row, dock bar, session header, and settings page.
Core Features¶
Scrolling Modes¶
The plugin provides five scrolling modes:
- Follow: The default DSH behavior; jumps to the latest output.
- Smooth: Keeps the latest output visible and scrolls smoothly at a configurable pixels-per-second speed.
- Paced: Sectioned reading. It scrolls to settled text sections, pauses for a period (calculated as
sectionHeight / screenHeight × seconds-per-screen), and then continues. The pause duration is constrained between a configurable minimum and maximum (up to 80 seconds). - Step: Manual scrolling; each press (button or hotkey) scrolls by one section.
- Hold: Locks the view; new output does not move the view.
Controls and Hotkeys¶
- UI Controls: Located in the tool row, dock bar, session header, and settings page.
- Global Hotkeys:
F9: Pause/ResumeCtrl+ArrowDown: Next sectionCtrl+ArrowUp: Previous sectionCtrl+End: Jump to latest
Session Memory¶
- Settings Page: Configure where a session opens (top, bottom, or last position).
- Position Storage: The remembered reading position for a session is stored in
dsh-chat-pace-scrollpos-v1withinlocalStorage, independent of the session open position setting. - Restoration Logic: If “last position” is selected, the system attempts to restore that position. The restoration process lasts about 12 seconds. If the user touches the view during this period, restoration is immediately interrupted and the current position is locked.
Persistent Settings¶
All configuration options are saved in dsh-chat-pace-settings-v1 within localStorage and remain effective after refreshing the page.
Coordination Principles¶
The plugin works in coordination with DSH’s built-in follow logic rather than replacing it.
- When the built-in logic tries to force a jump to the bottom, the plugin identifies these jumps and restores the user’s reading anchor.
- The plugin implements its scrolling behavior through scrollTop values, avoiding conflicts with the built-in logic within the same frame.
- The plugin tracks user intent by listening for wheel, touch, and key events. Once manual scrolling is detected, the automatic scrolling mode immediately yields control.
Debugging and Maintenance¶
In the browser console, debug information can be accessed through window.__chatPaceDebug, including engine state, live settings (via getSettings()), and the recent scrolling decision log (scrollLog) for troubleshooting abnormal plugin behavior.
Applicability and Notes¶
This plugin is suitable for developers and users who need fine-grained control over the reading pace. Because the plugin runs directly on the browser side, it is recommended to review the source code and license (MIT) before installation.