# deepseek-harness-themes [English](README.md) | [简体中文](README.zh.md) [![ci](https://github.com/orxz/deepseek-harness-themes/actions/workflows/ci.yml/badge.svg)](https://github.com/orxz/deepseek-harness-themes/actions/workflows/ci.yml) [![core](https://img.shields.io/npm/v/%40dshthemes%2Fcore?label=core)](https://www.npmjs.com/package/@dshthemes/core) [![ui](https://img.shields.io/npm/v/%40dshthemes%2Fui?label=ui)](https://www.npmjs.com/package/@dshthemes/ui) A collection of UI themes for [deepseek-harness](https://github.com/deepseek-ai/deepseek-harness). > One harness. Multiple styles. Community-maintained theme collection built on the official theme extension point (`ctx.theme` from `@deepseek-ai/dsh-client-ui-theme`). It focuses only on the visual experience — colors, surfaces, states, code blocks, tool calls, terminal UI. No model changes, no agent changes, no prompt changes, no protocol changes. ## Packages | Package | Role | | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | | [`@dshthemes/core`](packages/core/README.md) | Eleven `ThemeDefinition`s, the `REQUIRED_TOKENS` contract, and `registerThemes(registry)`; zero UI | | [`@dshthemes/ui`](packages/ui/README.md) | Client plugin: registers all themes, adds a Theme picker row to Settings → General, persists third-party selection | ## Themes Every preview is generated from that theme's own tokens; the full gallery is [docs/previews.md](docs/previews.md). | Theme | Base | Preview | | ------------- | -------------------------------------- | ----------------------------------------------------------------------------------- | | DeepSeek | light — clean DeepSeek-inspired blue | DeepSeek theme preview | | OLED | dark — true black for emissive panels | OLED theme preview | | Dracula | dark — high-contrast purple/indigo | Dracula theme preview | | Catppuccin | dark — soft pastel (Mocha) | Catppuccin theme preview | | Tokyo Night | dark — midnight blue with neon accents | Tokyo Night theme preview | | GitHub Dark | dark — familiar GitHub interface | GitHub Dark theme preview | | Solarized | dark — scientific teal, yellow accent | Solarized theme preview | | Gruvbox | dark — retro warm palette, orange | Gruvbox theme preview | | Nord | dark — arctic north-blues, frost | Nord theme preview | | Synthwave '84 | dark — neon pink/cyan on deep violet | Synthwave '84 theme preview | | Cobalt2 | dark — cobalt blue, signature yellow | Cobalt2 theme preview | ## Install Two commands: one installs the dependency, adds the layer to the profile, and mounts the feature; the other starts the Web surface. ```sh dsh plugin --profile web add @dshthemes/ui dsh web ``` `web` is the shipped Web profile and initializes on first use. Pick a theme under Settings → General; the selection persists, so nothing else runs from a terminal. The Theme picker row under Settings → General Remove it just as easily: ```sh dsh plugin --profile web remove @dshthemes/ui ``` See [docs/installation.md](docs/installation.md) for the core-only shape, installing from a source checkout, the hand-written patch alternative, local development, and troubleshooting. ## Theme philosophy Themes change how deepseek-harness looks, not how it behaves. A theme is easy to install, easy to switch, easy to customize, consistent across UI states, comfortable during long coding sessions, and independent from agent logic. The token contract is [docs/theme-spec.md](docs/theme-spec.md). ## Contributing Community themes are welcome — [docs/creating-a-theme.md](docs/creating-a-theme.md) is the ordered guide. Standing orders live in [AGENTS.md](AGENTS.md). Participation follows the [Code of Conduct](CODE_OF_CONDUCT.md). Report vulnerabilities privately through the [security policy](SECURITY.md). ## License MIT