DSH Eye-care Theme
August 17, 2026 · View on GitHub
English | 简体中文
A customizable eye-care palette plugin for DeepSeek Harness Web. It uses the supported DSH Theme Service and public --dsw-* tokens; it does not query product DOM nodes or depend on product CSS selectors.
Keywords: DeepSeek Harness · DSH · DeepSeek · harness plugin · Cordis plugin · web UI theme · eye-care · color scheme · accessibility
Verified with DeepSeek Harness 0.1.0-rc.6.
Features
- 11 coordinated palettes: 4 light and 7 dark.
- Instant palette switching with browser-local persistence.
- Common controls for surfaces, text, borders, status colors, Markdown, message bubbles, and scrollbars.
- Advanced JSON editor for arbitrary public
--dsw-*token overrides. - Enable, disable, and reset controls.
- Automatic cleanup through the Theme Service disposer.
Palettes
| Light | Dark |
|---|---|
| Soft Light / 柔和亮色 | Soft Dark / 柔和深色 |
| Frost / 霜白青 | Low Blue / 低蓝光深色 |
| Paper Gray / 纸张灰 | Deep Teal / 深海青 |
| Mist Blue / 雾蓝 | Forest Night / 森林夜 |
| Midnight Ink / 午夜墨蓝 | |
| Sakura Ink / 樱墨 | |
| Graphite / 石墨灰 |
Each palette coordinates the page background, layered surfaces, sidebar, input, primary and secondary text, borders, accent and status colors, code blocks, message bubbles, and scrollbars.
Requirements
- DeepSeek Harness with the
webprofile. dshandpnpmavailable onPATH.- GitHub access from the machine running DSH.
Install
Install the latest version from GitHub:
dsh plugin --profile web add "github:Cocowwy/dsh-plugin-eyecare-theme"
Equivalent explicit Git URL:
dsh plugin --profile web add "git+https://github.com/Cocowwy/dsh-plugin-eyecare-theme.git"
For a reproducible install, pin a release tag:
dsh plugin --profile web add "github:Cocowwy/dsh-plugin-eyecare-theme#v0.2.0"
After installation:
- Stop the currently running
dsh webprocess. - Start
dsh webagain from your workspace. - Refresh the existing Web GUI.
- Open Settings > 护眼主题.
A browser refresh alone does not reload the Web profile's plugin set.
Update
For an unpinned GitHub installation:
dsh plugin --profile web update dsh-plugin-eyecare-theme
Then restart dsh web and refresh the page. If installed from a tag or commit, remove it and install the desired new ref explicitly.
Uninstall
Remove the package by its manifest name:
dsh plugin --profile web remove dsh-plugin-eyecare-theme
Restart dsh web and refresh the page. The Theme Service override is removed automatically when the plugin is unloaded.
The saved browser preference is intentionally retained, so reinstalling on the same DSH origin restores the previous palette. For complete cleanup, delete this browser storage key:
dsh-plugin-eyecare-theme.config.v1
Advanced Token Overrides
The advanced editor adds custom values on top of the selected preset. Keys must be public DSH theme tokens beginning with --dsw-, and values must be CSS strings:
{
"--dsw-alias-bg-base": "#1b1e1f",
"--dsw-alias-label-primary": "rgb(215, 220, 216)",
"--dsw-alias-border-l2": "rgba(209, 221, 214, 0.12)"
}
Precedence is:
DSH built-in theme -> selected preset -> advanced overrides
Use 重置覆盖 to discard advanced and common-field overrides while keeping the selected preset.
Persistence
Configuration is stored in origin-scoped browser localStorage under:
dsh-plugin-eyecare-theme.config.v1
It is specific to the browser profile and exact DSH origin. Changing the browser, hostname, protocol, or port creates a separate preference store.
DSH 0.1.0-rc.6 exposes a fixed Host settings namespace allowlist. Third-party plugins cannot add their own writable namespace, so this plugin intentionally uses browser storage instead of the Host settings API.
How It Works
The Client plugin calls:
ctx.theme.overrideTokens('dsh-plugin-eyecare-theme', overrides)
Every token supplies both light and dark values. Replacing a palette disposes the previous override layer first, and plugin teardown invokes the final disposer. The product UI remains responsible for rendering the resulting Theme Snapshot.
Troubleshooting
The settings page is missing
Confirm the plugin is installed in the Web profile:
dsh plugin --profile web why dsh-plugin-eyecare-theme
Then restart dsh web and refresh the page.
Git installation reports a blocked build
Follow the exact allowBuilds instruction printed by pnpm in the Web profile's pnpm-workspace.yaml, then rerun the same install command. This plugin has no build or prepare script, but transitive tooling policies can vary.
The palette does not persist
Confirm that browser privacy settings allow localStorage and that the page still uses the same origin.
The old palette remains after uninstall
Restart dsh web and refresh the page. Delete the storage key above only if the saved preference should also be removed.
License
MIT