Bundle
dsh-theme-brick
Brick — a restrained, token-only theme layer for DeepSeek Harness Web. Warm plaster neutrals, mortar hairlines, one fired-clay accent, and a Settings on/off switch. 一切皆插件,每一块砖都可承重。
- Source
- ShanHaiFish
- License
- MIT
- Updated
- Updated 2 days ago
Readme
<div align="center">
# dsh-theme-brick · 砌砖 / Brick
**一切皆插件,每一块砖都可承重。*Every plugin is a brick: load-bearing, replaceable, honest.***
A restrained, **token-only** theme layer for [DeepSeek Harness](https://deepseek.com/harness/) Web — warm plaster neutrals, mortar hairlines, one fired-clay accent, and a Settings on/off switch.
[](https://www.npmjs.com/package/dsh-theme-brick)
[](https://www.npmjs.com/package/dsh-theme-brick)
[](https://github.com/ShanHaiFish/dsh-theme-brick)
[](https://github.com/ShanHaiFish/dsh-theme-brick/issues)
[](https://github.com/ShanHaiFish/dsh-theme-brick)
[](LICENSE)
</div>
---
## Why Brick
The folder name says it: **bricks**. DSH's architecture is plugs-within-plugs, a wall of bricks —
each unit load-bearing and interchangeable. So the theme follows **masonry**, not decoration:
- **面是材料** — surfaces read as limewashed plaster / paper / kiln clay, not glowing glass.
- **缝是灰缝** — borders are honest, even mortar hairlines with a warm undertone.
- **一砖一色** — a single *fired-clay / ember* accent, carried through the exact channels the product itself uses for its brand blue.
- **克制是纪律** — one `theme.overrideTokens()` call. No DOM hacking, no global CSS, no animation, no new chrome.
Design rationale: [`DESIGN.md`](DESIGN.md) · phase plans: [`PLAN-PHASE2-LAYOUT.md`](PLAN-PHASE2-LAYOUT.md)
## Features
- **84 live tokens** (verified *defined + consumed*, zero-dead gate) across five phases.
- **Warm palette, both modes** — light = plaster & paper, dark = kiln & embers.
- **Settings → General on/off switch** for statically installed bundles: toggle the theme off without uninstalling; state persists in `localStorage`.
- **Composes with any other plugin** via token layers; removing restores exactly what was covered.
- **No global CSS** — the switch is drawn entirely with theme CSS variables (auto-adapts to light/dark).
## Install
### As a dsh bundle (recommended)
```bash
# From a published release / registry:
dsh plugin --profile web add dsh-theme-brick
# Or from this repository (Windows note: a path with spaces breaks through the
# dsh.ps1 shim — put it on a space-free path first; a junction copies nothing):
# New-Item -ItemType Junction -Path $HOME\.dsh\plugins-dev\dsh-theme-brick -Target <repo path>
dsh plugin --profile web add "file:C:/Users/<you>/.dsh/plugins-dev/dsh-theme-brick"
dsh --profile web --dump-config # confirm the `brick` loader entry is composed
dsh web # restart to activate (bundle layers compose at boot)
```
The plugin loads and applies on boot (default **on**). Open **Settings → General → Brick 主题** to toggle it
off (restores the default look) or on; the choice persists across reloads. To fully uninstall:
`dsh plugin --profile web remove dsh-theme-brick`.
> **Golden triangle** for a dsh bundle: the npm `name`, the patch layer `name`, and the `client.js`
> `__ModuleLoader__.load({ id })` must all be equal. This package satisfies it (`dsh-theme-brick`
> everywhere). See the [dsh plugin install guide](https://deepseek-harness.github.io/deepseek-harness/develop/basic/publish).
### Developing locally
```bash
node scripts/build.mjs # src/client.js -> lib/client.js (__ModuleLoader__ bundle)
node scripts/verify-plugin.mjs # materialize + token gate + on/off switch logic tests
node --check lib/client.js
```
## Package layout
```
lib/client.js browser half (bundle; served at /plugins/dsh-theme-brick/client.js)
lib/index.js host half (no-op loader entry)
src/client.js readable source of truth (token map + switch); build transpiles it
cordis.patch.yml profile patch — injects the `brick` loader entry
DESIGN.md design rationale (philosophy, palette, token map, compatibility)
PLAN-PHASE*.md phase-by-phase plans
scripts/* build + verification tooling
```
## Contributing
PRs welcome. Design decisions are recorded in `DESIGN.md` and the phase plans — please read them before
changing tokens. Road rules: override only tokens actually *consumed* by the product (the
`scripts/sweep-tokens.mjs` gate enforces it); keep every change composable and reversible; add a regression
check to `scripts/verify-plugin.mjs` when behavior changes; and respect **restraint** — no DOM hacking, no
global CSS selectors, no decorative animation.
## License
[MIT](LICENSE) © [ShanHaiFish](https://github.com/ShanHaiFish)
Install
dsh plugin --profile web add github:ShanHaiFish/dsh-theme-brick#1d660510103f0f98167a2c82148c7d8f2456f6b7
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-theme-brick from the hub
- 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.