dsh-client-ui-recipes
Interface Recipes — a DeepSeek Harness dsh.client plugin: user-defined, switchable chat-surface display schemes (timeline, result panel, process groups, catalog, dimming).
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 23, 2026
- Updated
- Aug 23, 2026
Introduction
dsh-client-ui-recipes
Interface Recipes — a DeepSeek Harness dsh.client plugin: users define switchable display schemes (recipes) for the chat surface — create, edit, apply and delete them; each recipe controls a set of visual switches (round timeline, result panel, process groups, dimmed thinking, bubble tone, dimmed context, right-edge catalog panel).
- State persists in the Host settings document (
ui-recipesnamespace, registered by this package's Host half); - The active recipe drives
body[data-ui-recipe-*]attributes; every switch's OFF variant CSS ships with this plugin, so the stock UI is untouched until a recipe turns a feature off; - The settings page mounts on
settings.section(idinterface-recipes).
中文版: README.zh-CN.md
Preview
| Settings page | default vs minimal |
|---|---|
Features
- Named recipes: keep as many schemes as you like; apply, edit, delete, switch instantly (no reload);
- Seven switches per recipe: round timeline, result panel, process groups, dimmed thinking, bubble tone, dimmed context, catalog panel;
- Ships
default(full UI) andminimal(plain) out of the box; - Theme-aware (light/dark), locale-aware (zh/en), and fully reversible — remove the plugin and the host UI is unchanged.
Files
| Path | Purpose |
|---|---|
src/index.ts | Host half: registers the ui-recipes settings section |
src/client/index.ts | Browser half: dictionaries, scope binding + body attributes, settings page |
src/client/InterfaceRecipesSection.tsx | Settings page component (list / editor / switches) |
src/client/recipes.css | OFF variants for every switch (injected globally) |
src/recipe-settings.ts | Data model + schemastery schema for both halves |
Installation
Add it to your host composition like any other dsh.client plugin (e.g. dsh-web-app's cordis.patch.yml):
- id: ui-recipes
name: '@deepseek-ai/dsh-client-ui-recipes'
Runtime dependencies
peer: @deepseek-ai/cordis, dsh-client-connection, dsh-client-runtime, dsh-client-locale, dsh-client-ui-settings, dsh-settings, schemastery.
inject: slots, locale, connection, remote, settingsScope.
Build & publish
- Inside the DSH monorepo: place it at
packages/client/ui-recipes/, runpnpm run build:lib:clientto emitlib/index.js(Host) andlib/client.js(browser); - As a standalone repo: this directory is ready to push; to install from npm directly, rewrite the
workspace:^deps inpackage.jsonto a published version (e.g.^0.1.1-rc.2) and publish.
Topics
dsh-plugin, deepseek-harness, interface-recipes.
License
MIT