Bundle
dsh-plugin-gemini-theme
A Gemini-styled skin for the DeepSeek Harness web client: one stylesheet layered over the --dsw-* tokens, no DOM of its own
- Source
- dingyi580
- stars
- 1 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
# dsh-plugin-gemini-theme English | [中文](README.zh.md) A Gemini-styled skin for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) web client. One stylesheet, layered over the client's own `--dsw-*` design tokens. The plugin contributes no DOM, no slot occupant and no service — installing it changes how the client looks, removing it restores the stock appearance, and nothing else in the stack knows the difference.  ## Install ```sh dsh plugin --profile web add dsh-plugin-gemini-theme ``` Restart `dsh web` afterwards. Remove it the same way: ```sh dsh plugin --profile web remove dsh-plugin-gemini-theme ``` ## What it restyles The conversation ground and sidebar fill, the sidebar's capsule rows and round icon buttons, the new-chat pill, the hero greeting's scale, the composer's radius, fill and elevation, the blue backdrop glow behind it, the entrance animation when a blank session opens, and the fades at both ends of the scrolling regions. Light and dark are both covered; the sheet follows whichever the client resolves.  ## How it works The sheet mounts as a `<style>` tag under the plugin's own lifetime. Rules reach their targets through the class form CSS modules compile to — `[hash]_[local]`, so a rule is written `[class*="_local"]` — which is what lets a skin live outside the packages it restyles. It loads before every feature package's own stylesheet, so its component rules carry `!important`. That substring match is also the main hazard: `_local` matches any module that happens to name a class the same way. Rules that could reach a second component are narrowed by a tag qualifier, a `:has()` on something only the intended target contains, or an ancestor only the intended tree has. Colours and sizes were sampled per-pixel from a reference rather than estimated; the comments in the sheet record where each number came from. ## Limitations Anything needing new DOM is out of scope for a stylesheet and is not here: - The session header keeps its stock strip (title, mode chip, view tabs) rather than filing them behind one control. - The hero greeting is the client's own line, not a rotating one. - The sidebar opens in whatever state the client decides; the skin does not change its boot posture or width. - No top progress bar during a turn — that needs a DOM signal the client does not publish. ## License MIT
Install
dsh plugin --profile web add github:dingyi580/dsh-plugin-gemini-theme
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-plugin-gemini-theme from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.