Introduction¶
In DSH’s chat interface, there is an action bar below each message bubble, containing buttons like Copy, Like, Dislike, Branch, timestamps, and other buttons and information injected by plugins. The native implementation only keeps this action bar permanently visible on the latest turn of messages; historical messages only appear on hover.
When troubleshooting history messages or reviewing context, hovering is an unnecessary action: you have to click through one by one to see the time or copy button. dsh-visible-action-row changes this behavior to permanently display the action bar for all messages without changing content or position.
What is it¶
A DSH (Desktop / Web) plugin by maintainer Bobnemimimmi, MIT licensed, current package version 0.2.0. The community directory categorizes it under “Client”.
It does one thing: it uses a scoped CSS visibility override to keep the action bar of every message (user messages and DSH messages) permanently visible like the latest turn. It reuses native rendering, native positioning, and native content without adding any new visible UI.
Key Capabilities¶
- Always visible: The action bars for user and DSH messages are all permanently visible, including historical messages; consistent before and after hovering.
- Native content: Buttons, timestamps, and content injected by third-party plugins into that row are displayed as-is, without regenerating or changing the format.
- Zero config: No settings, no toggles, no storage, no backend, no network requests; takes effect immediately upon installation.
- Clean uninstall: Restores native “only latest turn visible” behavior after uninstallation without leaving behind DOM/CSS/configuration.
- Minimal & safe: No DOM scanning, no MutationObserver, no polling; only adjusts
opacity, button behavior and hover effects remain unchanged.
Why it is so small: It doesn’t use DOM injection; it simply overrides the opacity of the action bar root node, which originally relied on hover to become visible.
Installation and Usage¶
The official documentation provides four installation paths, prioritize npm.
Install via npm¶
dsh plugin --profile web add dsh-visible-action-row
The npm installation gets the built artifact at release time, requiring no build authorization.
Install via DSH Desktop¶
- Open the sidebar Plugins page;
- Click the arrow next to Add plugin, select Install a third-party plugin;
- Enter
dsh-visible-action-rowto install, click Enable now after installation.
Install from GitHub¶
dsh plugin --profile web add github:Bobnemimimmi/dsh-visible-action-row
Note that this path will run the package’s own prepare build. For pnpm ≥ 10, the first add will reject and ask for authorization; add the printed allowBuilds key to the profile’s pnpm-workspace.yaml and re-run as prompted.
Install from Local Directory / tarball¶
dsh plugin --profile web add ./dsh-visible-action-row
Enable¶
After installing via CLI, restart DSH to take effect: restart the app for Desktop, restart dsh web for Web. The Desktop profile name is desktop, simply change --profile web to --profile desktop in the command above.
Uninstallation and Migration¶
Uninstall:
dsh plugin --profile web remove dsh-visible-action-row
Restores native behavior after restart.
If you were previously using the old package dsh-always-status-bar, it is recommended to remove it before installing the new package—the old package only covered timestamps, and its anchor point has changed in DSH 0.2.x, so it effectively does nothing in the new version:
dsh plugin --profile web remove dsh-always-status-bar
dsh plugin --profile web add dsh-visible-action-row
Use Cases and Notes¶
Suitable for: Developers who want to directly see the time and action buttons for every message in a long conversation, or those relying on action bar third-party plugin buttons.
Not suitable for: Scenarios where the action bar should only appear on the latest turn to reduce visual noise. This plugin has no toggle; once installed, it is globally permanently visible.
Environment requirements: DSH Desktop or dsh web (binary installation / source start both work), requires dsh CLI (or run pnpm dsh via source as per DSH docs). Verified environments in the README are Desktop 0.2.1-rc.5 (Windows 11) and Web source start 0.2.2-alpha.2 (Windows 11), both load the same frontend artifacts; macOS/Linux not tested separately, but the same client bundle has no platform branches.
Version compatibility risk: The plugin relies on three frontend anchors to locate the action bar. If the action bar is no longer permanently visible after upgrading DSH, please verify if the following anchors still exist in packages/client/ui-chat/src/client/chat/:
MessageIconActions.tsx→data-clockattribute of the action bar root nodeTurnTailNodeView.tsx→data-actions-revealChatNodeSeat.tsx→data-chat-flow-kind
The other two points should be confirmed before use: the plugin runs with the current dsh process permissions; check the source code and MIT license before installing. The repository currently has low attention (2 stars, 1 fork on GitHub), it is best to check the Issues section before upgrading DSH.
Conclusion¶
The value of this plugin is narrow: changing visibility triggered by hover to permanent visibility, at the cost of a single scoped CSS, with no configuration surface, no backend, and no uninstallation residue. If you feel that not being able to see the action bar for historical messages is a pain point, this is the minimal change solution.
Directory: https://www.skillhub.cn/plugins/Bobnemimimmi/dsh-visible-action-row
Repository: https://github.com/Bobnemimimmi/dsh-visible-action-row