Back to directory

dsh-eye-care

anionex/dsh-eye-care

Warm light, warm dark, and system-aware eye-care themes for DSH Web

2

stars

0

forks

MIT

License

2026-08-13

Created

2026-08-14

Last push

README

DSH Eye Care

English | 中文

Warm Light, Warm Dark, System-Aware.

A DeepSeek Harness Web profile bundle that replaces cool white interface colors with six warm semantic themes while leaving the native Appearance preference intact.

DSH Eye Care settings row in warm light mode with Day and Warm selected DSH Eye Care settings row in warm dark mode with Auto and Warm selected

What it does

DSH Web's built-in Light and Dark themes are cool-toned. Eye care adds a warm light palette, a warm dark palette, and an automatic scheme without a global sepia filter or image transform.

  • Four operating modes: off, auto, light, and dark.
  • Three warmth levels: soft, balanced, and warm.
  • Six concrete themes registered through the official ThemeService.
  • Real semantic tokens for backgrounds, text, borders, buttons, sidebar, bubbles, inputs, code blocks, scrollbars, and Shiki colors.
  • Native Appearance stays authoritative: choosing Light, Dark, or System turns eye care off and keeps that newly selected theme.
  • Loopback persistence stores the selection in Host settings; remote browsers keep the selection in the current process.

Preview

The screenshots above show the General settings row in warm day mode and warm night mode. Day and Night are explicit; Auto follows prefers-color-scheme at the selected warmth. The row also renders an aria-live status and keyboard-visible focus states.

Install

Install the public npm package into the Web profile:

dsh plugin --profile web add @anionex/dsh-eye-care

For local development, replace the package name with the checkout's absolute path or a locally packed tarball. DSH_HOME defaults to ~/.dsh; point it at a temporary directory to try the bundle without changing your main profiles.

Restart or start the Web UI:

dsh web

Open Settings → General → Eye care and choose a mode and warmth.

Theme matrix

Scheme Soft Balanced Warm
Light eye-care-light-soft eye-care-light-balanced eye-care-light-warm
Dark eye-care-dark-soft eye-care-dark-balanced eye-care-dark-warm

How it works

The Host half registers the eye-care Settings namespace and exposes a loopback-only Connection RPC channel /eye-care. Writes are serialized and fenced by expectedRevision; a conflict re-reads the Host snapshot and retries the latest intent.

The browser half registers the six themes, injects the General-settings row, and owns the controller lifecycle. The controller subscribes to theme/change and prefers-color-scheme, restores the pre-eye-care theme on disable or unload, and unregisters every theme on dispose. Remote browsers do not inject the Host RPC and therefore stay process-local.

Compatibility and limitations

  • Requires a DeepSeek Harness Web profile with the standard settings, connection, locale, slots, and theme services.
  • A native Appearance change is treated as an explicit opt-out by design.
  • Remote browser sessions do not persist eye care back to the Host.
  • There is no global color filter; all colors come from named semantic tokens.
  • The package is pre-release and follows the profile bundle format; its generated theme ids are stable while the bundle is installed.

Development

cd dsh-eye-care
pnpm install --frozen-lockfile
pnpm run check
pnpm run test
pnpm run build

Run the optional clean-profile installation test:

DSH_EYE_CARE_PROFILE_E2E=1 pnpm exec vitest run tests/profile-install.e2e.spec.ts

License

MIT

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.