Skip to content
dsh.fish
Bundle

dsh-dracula

A third-party Dracula dark theme for the DeepSeek Harness web UI

Source
lzylyd
stars
2 stars
License
MIT
Updated
Updated 11 days ago

Readme

# dsh-dracula

A third-party [Dracula](https://draculatheme.com/) dark theme for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) web UI. Dark-only, covers the full `--dsw-alias-*` layer plus `--shiki-*` syntax highlighting, and ships a "Themes" settings page for switching.

## Quick read (for agents)

- **What it is**: a DSH **bundle** npm package that registers a third-party theme (`dracula`) through the client theme service `ctx.theme.register(...)`, recolouring the whole web UI by overriding `--dsw-alias-*` and `--shiki-*` CSS tokens.
- **Shape**: one package is both the bundle and the client plugin — `package.json` declares `dsh.bundle.patch` (→ `cordis.patch.yml`) **and** `dsh.client` (→ `./client`).
- **Files**: `src/client.tsx` (theme registration + settings page + persistence), `src/index.ts` (empty host half), `cordis.patch.yml` (one self-referential row `dsh-dracula`).
- **Persistence**: `localStorage` key `dsh.dracula-theme.preference` mirrors every `theme/change`; restores on startup, defaults to `dracula` on first run. Guarded against quota/privacy/parse failures.
- **Build**: `pnpm install && pnpm build` (tsdown → `lib/client.js`, `lib/index.js`).
- **Install on another DSH**: `dsh plugin --profile web add dsh-dracula`.

## Install / use

```sh
dsh plugin --profile web add dsh-dracula
dsh web
```

Then open Settings → Themes to switch between Light / Dark / System / Dracula.

## Develop

```sh
pnpm install
pnpm build      # or: pnpm watch
```

## Publish

Tag a `v*` release; GitHub Actions runs `pnpm install && pnpm build && pnpm publish` using the `NPM_TOKEN` secret.

## Design record

See `../doc/CONTEXT.md` (glossary) and `../doc/adr/0001-dracula-theme-persistence.md` (persistence decision).

Install

dsh plugin --profile web add github:lzylyd/dsh-dracula#d03495118b21019a9e45f63044985faf6962e5f6

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
Source