Back to home@Moolmool114

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-recipes namespace, 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 (id interface-recipes).

中文版: README.zh-CN.md

Preview

Settings pagedefault vs minimal
Interface Recipes settingsdefault 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) and minimal (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

PathPurpose
src/index.tsHost half: registers the ui-recipes settings section
src/client/index.tsBrowser half: dictionaries, scope binding + body attributes, settings page
src/client/InterfaceRecipesSection.tsxSettings page component (list / editor / switches)
src/client/recipes.cssOFF variants for every switch (injected globally)
src/recipe-settings.tsData 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/, run pnpm run build:lib:client to emit lib/index.js (Host) and lib/client.js (browser);
  • As a standalone repo: this directory is ready to push; to install from npm directly, rewrite the workspace:^ deps in package.json to a published version (e.g. ^0.1.1-rc.2) and publish.

Topics

dsh-plugin, deepseek-harness, interface-recipes.

License

MIT