Back to home@ml020

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.

light

What it changes

SlotKindWhat you get
conversation.hero.brand.marksingleLime logo tile + Manrope wordmark
conversation.hero.workspacesingle44px headline, mode pills (日常办公 / 代码开发), scene chips, composer card + workspace bar
conversation.composer.barUntouched — 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.

TokenLightDark
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