Preface¶
By default, the empty-session hero area of DeepSeek Harness (DSH) provides only a basic brand mark and a workspace selection entry. dsh-workbuddy injects Wordless-style visual styling into these two areas, while keeping DSH’s native editor and selector chips unchanged.
Plugin Overview¶
This is a theme-style plugin maintained by the developer ml020 and licensed under the MIT License. It rewrites the styling of specific slots to replace the default empty-session interface with a Lime gradient brand mark and a Wordless-style menu that better align with the Wordless design language.
Installation¶
Use the following command to install the plugin:
dsh plugin add ml020/dsh-workbuddy
Core Features¶
The plugin mainly overrides two DSH hero-area slots:
-
Brand Mark Override
Replaces theconversation.hero.brand.markslot with a Lime gradient brand block containing the letter “W”. This slot does not support a custom welcome headline because the host-sidehero.headlineis hard-coded. -
Workspace Menu Override
Replaces theconversation.hero.workspaceslot with a Wordless-style menu. The menu isposition: fixed, positioned relative to the anchored trigger chip, and automatically flips upward when there is insufficient space below. The menu supports full keyboard navigation. -
Native Components Preserved
The native DSH web editor (dialog box) and native selector chips remain completely untouched. -
Keyboard Navigation
The menu supports the following keyboard operations:↑/↓: Move the cursor in the list, with wrap-around at both ends.Home/End: Jump to the first or last row.Enter/Space: Select the current row where the cursor is.Esc: Close the menu and return focus to the host chip.Tab/Shift+Tab: Close the menu and return focus.- Printable characters: Supports typing characters to quickly jump to matching workspace names.
-
Workspace Creation Flow
By declaring theconversation.hero.workspace.directoryFlowsub-slot, the plugin supplies the create callback that the host does not provide. This allows users to create a new workspace normally through the “Add workspace…” menu action, and this action behaves consistently with the native directory picker.
Notes¶
- Injection Mechanism: The plugin uses
ctx.slots.injectto override default slots instead of adding extra slots. Each slot is injected independently, so their lifecycles are decoupled. - Focus Management: Keyboard navigation requires that the row containing the cursor already has focus when the menu is open. If there is no cursor row when the menu opens, the first key press will skip directly over the first row. In addition, the menu renders the selected state based on the currently selected ID and keeps the cursor row visible on refresh.
- Create Callback: Because the host-side
renderSlotcall does not include a create callback, the plugin must handle workspace creation logic by itself. If creation is rejected, a retryable dialog is shown instead of failing silently.
Conclusion¶
For users who want to adjust the visual style of the DSH interface without touching the native editor, dsh-workbuddy provides a lightweight solution. It achieves Wordless-style customization by overriding slots, while fully preserving the interaction logic for workspace management and creation.
Plugin directory: https://www.skillhub.cn/plugins/ml020/dsh-workbuddy
GitHub repository: https://github.com/ml020/dsh-workbuddy