dsh-workbuddy
Wordless-styled WorkBuddy hero for DSH: replaces the blank-session brand mark and workspace picker while keeping the native composer.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 28, 2026
- Updated
- Aug 28, 2026
Introduction
dsh-workbuddy
Wordless-style landing view for DeepSeek Harness (dsh).
Replaces the blank-session hero — the brand mark and the welcome workspace — with a warm, minimal landing panel modeled 1:1 on Wordless. The native dsh web composer (the dialog box) is never touched.
What it changes
| Slot | Kind | What you get |
|---|---|---|
conversation.hero.brand.mark | single | Lime logo tile + Manrope wordmark |
conversation.hero.workspace | single | 44px headline, mode pills (日常办公 / 代码开发), scene chips, composer card + workspace bar |
conversation.composer.bar | — | Untouched — the original dsh dialog stays |
Both target slots are kind: 'single', so the plugin uses ctx.slots.inject to supersede the shipped occupants rather than adding alongside them. Each slot is injected independently — inject waits for its slot to be declared, so chaining would couple the workspace occupant to the brand-mark slot's lifetime.
Install
dsh plugin add Austin-Patrician/dsh-workbuddy
Design
Tokens live in src/client/styles/tokens.module.css, scoped under .root with a --wb-* prefix so they never collide with dsh's own --dsw-* theme variables. Light and dark follow prefers-color-scheme.
| Token | Light | Dark |
|---|---|---|
| Workspace | #fbfbfa | #1c1c1a |
| Sidebar | #f1f1ee | #262624 |
| Accent | #ccf257 | #ccf257 |
| Chip selected bg | #eef4dc | #2b3316 |
Type is Manrope for headlines/UI and DM Mono for meta. Category glyphs are the original Wordless SVG paths, copied verbatim.
Layout
src/
index.ts host loader (no-op, browser-only plugin)
invariant.ts package-owned invariant companion
client/
index.ts slot registration
BrandMark.tsx conversation.hero.brand.mark
HeroWorkspace.tsx conversation.hero.workspace
SceneChips.tsx mode-scoped entry chips
locales.ts zh / en dictionaries (namespace `workbuddy`)
icons.tsx inline SVG
styles/ CSS Modules + design tokens
tests/
browser-plugin.client.spec.tsx
invariant.client.spec.ts
Development
npm install
npm run typecheck
npm run test
npm run lint
License
MIT