dsh-thinking-quips
Playful bilingual quips for the DeepSeek Harness (DSH) running-turn indicator.
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 10, 2026
- Updated
- Sep 10, 2026
Introduction
dsh-thinking-quips
v0.1.0 · a DSH bundle (install-and-go) · web client plugin
A standalone DeepSeek Harness client plugin that rotates playful status quips
through the running-turn indicator — the line the conversation shows while the
agent is working (DSH's default Deep diving... shimmer) — and puts a chasing
dot-orbit loading icon in front of it. Stock DSH packages are not modified.

Features
-
A 3×3 dot-orbit loading icon to the left of the running-turn text. The 8 outer dots chase clockwise — each lights up and fades with a trailing tail — while the center dot stays empty. Colored to match the chosen font color (brand blue by default).
-
Rotating quips, organized by language in the settings textarea, with one Language control deciding which section shows: Follow UI (Chinese UI → Chinese quips; any non-Chinese UI → English), English only, Chinese only, or Mixed (both sections).
-
Time per quip — a number input (default 8 s) for how long each quip stays before rotating.
-
Glow strength — a number input (0–100%, default 35%) for how bright the sweeping highlight is.
-
Font color — a live preview swatch plus hex and RGB inputs and a native color wheel (
<input type="color">). The default is the DeepSeek brand-blue shimmer. -
Manage quips — a small modal with one editable textarea using
#language sections, and a Save button in the footer:# Chinese a Chinese quip another Chinese quip # English an English quip another English quipOne quip per line (
;also works inside a section). Lines before the first#header always show, in every mode.
All of it lives in Settings → General → Playful quips.
The textarea is the single source of quips: it ships pre-filled with the default
# Chinese/# Englishlists, so there is no separate hard-coded fallback. Edits persist; Reset to default restores the shipped lists.
The settings UI itself is bilingual and follows the web UI's language — this page shows the English labels; the 中文 README shows the Chinese ones you get with a Chinese UI.
How it works
While a turn runs, dsh-client-ui-conversation renders a TurnStatus element
(role="status", class ...turnStatus) at the bottom of the chat. That element
is hardcoded — not a pluggable slot — so this plugin hooks it from outside: a
MutationObserver catches it the moment it is committed (so Deep diving...
never flashes), a light poll keeps the text rotating, and only the leading text
node is swapped, leaving the trailing elapsed-clock span untouched.
Config is persisted to localStorage (dsh-thinking-quips.config) and mirrored
in a small reactive store, so the rotator, the color override and the settings row
stay in sync. When a custom color is chosen, the plugin injects a <style>
override that replaces only the background-image of the shimmer gradient — DSH's
own animated shine and text clip stay intact.
Files
dsh-thinking-quips/
├── package.json # dsh.bundle (patch) + dsh.client + exports["./client"]
├── cordis.patch.yml # bundle patch: registers this package as a client roster row
├── lib/
│ ├── client.js # browser half: rotator + orbit + settings row + modal
│ └── index.js # node half: no-op apply (so the loader can mount the row)
├── assets/screenshot-1.png
├── screenshots.json # screenshot list read by storefronts (repo-only)
└── test/ # dev-only smoke tests (excluded from the package)
Install (bundle — install and it just works)
dsh-thinking-quips is a DSH bundle: its own cordis.patch.yml registers the
client-roster row, so the only manual step is listing it in the profile's
dsh.profile.bundles.
- Install the package into the target profile's deps — from GitHub (this repo) or
a registry:
# from GitHub (git dependency) dsh plugin --profile web add github:Saknutella/dsh-thinking-quips # or from a registry dsh plugin --profile web add dsh-thinking-quips - Add it to
$DSH_HOME/profiles/web/package.json→dsh.profile.bundles:"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-thinking-quips"] } } - Restart:
dsh web
That's it: the bundle's patch inserts
{id: thinking-quips, name: 'dsh-thinking-quips'}into the browser roster, and because the package declaresdsh.client, the Web UI serves/plugins/dsh-thinking-quips/client.jsand the browser loads it. No hand-editing ofcordis.patch.yml.
Uninstall
Remove dsh-thinking-quips from dsh.profile.bundles, then
dsh plugin --profile web remove dsh-thinking-quips, and restart dsh web.
Usage
Open Settings → General and find Playful quips:
- Font color — click the swatch or the color wheel; type a
#RRGGBBhex or RGB values. The turn-status shimmer recolors in real time. Brand blue (default) restores the original shimmer. - Time per quip — seconds per quip (default 8).
- Glow strength — 0–100% (default 35). At brand blue with glow 35 the original shimmer is left untouched; changing the glow (or picking a custom color) applies a controllable highlight in that color.
- Language — one group of four: Follow UI, English only, Chinese only, Mixed. This decides which section of the quips list shows.
- Manage quips — opens the modal; Save writes the textarea back.
- Reset to default — restores the shipped defaults.
Tune
Defaults live in lib/client.js:
DEFAULT_QUIPS— the shipped quip lists (already sectioned# Chinese/# English).DEFAULT_BLUE(default#2E5BE8) — the color wheel's starting color.POLL_MS(default600) — how often the status text is re-asserted.quipMs/glow— per-quip timing and highlight strength (per-user, inDEFAULTS).
Notes / limits
- The plugin is additive: one package plus one line in
dsh.profile.bundles, and no DSH file is touched. Uninstalling restores stock DSH. - The status element is matched by the stable
turnStatusclass token first, then by the literalDeep divingtext. If a future DSH build renames both, the plugin silently stops matching — it never throws and never breaks the shell. - The color override only replaces the shimmer's gradient colors; the animated
shine and the text clip come from DSH's own
.turnStatusrule. - Config (quips, color, glow, timing) persists in
localStorageper browser profile, not in the DSH settings document. - Requires DSH's web surface (a profile bundling
@deepseek-ai/dsh-web-app) and React 18, which DSH ships.