Skip to content
dsh.fish
Bundle

@anywhere-labs/dsh-client-theme-cyber

Cyber Sand theme for DeepSeek Harness Web: a dark cyber-city palette (from the reference images) plus a background.

Source
readfish
License
MIT
Updated
Updated 6 hours ago

Readme

# dsh-client-theme-cyber

**Cyber Sand** — a dark cyber-city theme for DeepSeek Harness Web.

赛博沙漠(Cyber Sand)主题:以深海军蓝半透明面板承载赛博城市夜景背景,青色(全息立方体辉光)作为品牌与焦点色,为 DeepSeek Harness 桌面端/网页端提供沉浸式暗色主题。

> Theme plugin (client bundle, `dsh.client.platform: "web"`) for DeepSeek Harness.
> It applies a token palette via `theme.overrideTokens` and paints the uploaded
> cyber-city artwork as a fixed full-viewport background behind the app panels.

## Features

- Dark navy glass panels (semi-transparent, so the city glows through).
- The uploaded cyber-city image as a fixed `body::before` background layer.
- Cyan holographic-cube glow as the brand/accent color (`#2ea8ff` dark / `#1d7fe0` light).
- ~30 `--dsw-alias-*` tokens overridden (backgrounds, labels, borders, states, buttons, scrollbars, markdown, sidebar), stacking as a persistent override layer that survives reconnect and theme preference sync.
- Forces the built-in dark base (`theme.setTheme("dark")`), as required so the theme stays active across `adopt()`.

## Install

```sh
dsh plugin --profile web add <this-package-or-repo>
```

After install, the theme activates immediately (no restart needed); it will also
appear in the market's Themes page once published to the catalog.

## How it works

`lib/client.js` (browser half) registers through `window.__ModuleLoader__` and exports:

- `apply(ctx)`:
  1. injects a `<style>` that sets a fixed full-viewport `body::before` layer with the
     city background (brightened JPEG, plus a light darkening gradient for text contrast);
  2. calls `theme.setTheme("dark")` (a persisted, built-in preference);
  3. calls `theme.overrideTokens("@anywhere-labs/dsh-client-theme-cyber", PAIRS)` so the
     palette survives reconnect / preference adoption.
- `inject = ["theme"]` — depends on the `theme` service provided by
  `@deepseek-ai/dsh-client-ui-theme`.

`lib/index.js` (host half) is a stub: everything lives in the browser bundle.

## Layout

```
lib/index.js        host half (stub)
lib/client.js       built browser half (data-URI background embedded)
client.template.js  source template (build via `node build.mjs`)
assets/             source images (city / cube), data-URI text + info
regen-city.mjs      regenerate/optimize the embedded city image
```

## Building

```sh
node build.mjs      # replaces __CITY_BG__ in client.template.js -> lib/client.js
node regen-city.mjs # re-derives assets/city.webp.txt (brightened JPEG) from the source image
```

## Uninstall

```sh
dsh plugin --profile web remove dsh-client-theme-cyber
```

Removing the theme restores the default DSH dark palette and no longer injects the
background layer (uninstall fully reverts).

## License

MIT — artwork in `assets/` is user-provided reference imagery for this plugin.

Install

dsh plugin --profile web add github:readfish/dsh-client-theme-cyber

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source