Skip to main content

dsh-theme-plugin

19Stars1Forks0Issues0Watchers

Provides 98 Chinese traditional color themes (49 anchor colors × light/dark variants) for DeepSeek Harness, featuring a settings panel and deep link switching, all passing WCAG AA contrast requirements.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
JavaScript
License
MIT
Branch
main
dsh-plugindsh-plugin-marketdsh-plugins

Install

cmdweb profile
$ dsh plugin --profile web add dsh-theme-plugin

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin nevertoday/dsh-theme-plugin for me: review the repository at https://github.com/nevertoday/dsh-theme-plugin first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Positioning

Provides a skinning solution for DeepSeek Harness Web with Chinese traditional colors as anchor colors: 49 anchor colors each generate light/dark variants, totaling 98 themes, covering color selection in the settings panel and #theme= deep link switching, as well as theming code block syntax highlighting.

Core Capabilities

  • Register 98 themes to the host (49 anchor colors × light/dark), each filled with 98 design tokens (89 --dsw-* + 9 shiki syntax slots), all passing WCAG AA contrast thresholds
  • Provide four ways to find themes in "Settings → Traditional Color Theme" panel: browse, filter by status, search by pinyin/color name, view featured only, with WYSIWYG (the color card in each row shows the actual paper, curtain, focus for that theme)
  • Support #theme=<id> deep link jump, e.g., http://127.0.0.1:3080/#theme=zhuqing-light opens directly as Bamboo Green·Light
  • Automatically decide which panel tab to open first based on whether the current page is light or dark, avoiding repeated flickering during switches
  • Store user's last selected theme in browser localStorage, auto-restore after refresh; selecting a new theme clears the theme= parameter in hash to prevent deep link and memory conflicts

Technical Implementation

  • Language: TypeScript (ESM)
  • Key Dependencies: @deepseek-ai/cordis (host framework), @deepseek-ai/dsh-client-runtime (client context), @deepseek-ai/dsh-client-ui-theme (theme registration service) — all three are optional peer
  • Architecture Pattern: Plugin split into "host half" and "client half" two entry points. src/index.ts does one thing: inserts the theme-zhongguo line into the composition tree via cordis.patch.yml, with apply() intentionally left empty; the real work happens in src/client/index.ts which calls ctx.theme.register() to register themes, listens to theme/change, writes DOM tokens, and mounts the settings panel in the browser
  • Entry Files: src/client/index.ts (browser side, registers and applies themes), src/index.ts (host side, only declares plugin name); build artifact lib/client.js is the actual package loaded by the browser

Use Cases

Developers/designers who have DSH Web client installed and stare at screens for long periods, wanting to replace the default light/dark blue color scheme to make the interface more aligned with personal aesthetics or work rhythm; especially suitable for users who care about code block readability but also want a cohesive culturally-themed skinning solution rather than random color pairings.

Prerequisites & Compatibility

DependencyMinimum VersionDescription
Node.js>=20Declared in package.json#engines.node, [email protected] is the recommended paired version
DSH Web Client0.1.x (peerDependencies marked *)Only effective under web profile, requires host to expose theme / slots / locale three client services
PlatformCross-platformNo os / cpu restrictions, runs on browser side
Native ModulesNoneDoes not depend on node-pty / node:sqlite or other native modules

Installation

dsh plugin --profile web add github:nevertoday/dsh-theme-plugin

Configuration

This plugin requires no additional configuration.

FAQ

Q: How to confirm the plugin is active after installation?

A: After opening DSH Web, check the browser console; seeing registered 98/98 themes (49 light / 49 dark) indicates all 98 themes have been successfully registered.

Q: Where is the theme selection saved, does it sync with the account?

A: The remembered theme is stored in browser's localStorage (key dsh:theme-zhongguo:theme), not written to settings.yaml, so it won't follow when switching devices or browsers.

Q: Do I need additional configuration after installation?

A: No configuration needed. This plugin intentionally exposes no configuration items; DSH 0.1's client startup manifest doesn't carry host plugin configurations yet, so all interactions go through the settings panel or #theme= deep link.

Q: How to switch themes?

A: Two methods: click to select in "Settings → Traditional Color Theme" panel, or directly open a deep link like http://127.0.0.1:3080/#theme=zhuqing-light; after selection, the theme= parameter in hash will be automatically cleared.

Q: How to uninstall?

A: Run dsh plugin --profile web remove dsh-theme-plugin; next time DSH starts, the "Traditional Color Theme" entry in the panel will disappear.

Q: What are the 49 anchor colors?

A: 49 Chinese traditional colors (such as Bamboo Green, Vermilion, Ultramarine, Gamboge, Crimson Purple, etc.), each anchor color derives light/dark theme variants, totaling 98 themes, of which 12 are marked as "Featured" and placed at the top of the panel.

Q: Do themes affect code block syntax highlighting?

A: Yes. Each theme fills 9 shiki --shiki-token-* slots; the five color slots retain programmer-familiar hue intuition, while comments and punctuation are downgraded to ink color rather than colorful, ensuring readability.

Difficulty Level

Beginner — install and use, no configuration changes needed; to locally modify colors or regenerate themes, understanding of OKLab color space and pnpm workspace is required.

Known Issues & Limitations

  • Browser-side bundle is large: main build ~640 KB + 934 KB sourcemap, esbuild fallback slightly larger; CI budgets 680 KB / 1020 KB to cap both (README.md:179)
  • Local development must use pnpm ≥ 9 and keep the repo's .npmrc (auto-install-peers=false), otherwise it will try to pull an unpublished @deepseek-ai/* peer dependency from npm and fail to install (README.md:177)
  • Local link installation (dsh plugin add -w .) requires pnpm build after code changes to take effect, because the host reads lib/client.js from the working copy (README.md:172-176)
  • No TODO/FIXME/HACK markers found in source; no host-side cordis configuration schema declared (src/index.ts:5-17), DSH 0.1 client startup manifest doesn't carry host plugin configurations yet, so there's nowhere to configure

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/nevertoday/dsh-theme-plugin)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory