Bundle
dsh-oled-care
OLED burn-in care for the DeepSeek Harness Web GUI: true-black nap screensaver, pure-black surfaces, gamma-aware text dimming with an idle/focus ladder, and slow accent-hue rotation.
- Source
- domparent
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 10 hours ago
Readme
# OLEDCare English · [中文](README.zh-CN.md) **A DeepSeek Harness plugin (#dsh-plugin) that protects OLED panels during long agent sessions.** OLED burn-in protection for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web GUI (`dsh web`). OLED panels wear where pixels stay lit for hours — exactly what a long agent session does to backgrounds, hairline borders, and bright text. OledCare pushes back on all three: - **Nap mode** — a true-black (`#000`) full-screen screensaver, so every background pixel switches fully off. It fades in smoothly after idle minutes (with an optional 30-second wind-down), or on demand from the **☾ Nap** button in the session header. A dim drifting clock (so the clock itself does not burn in) shows live agent status — *agent is working / waiting for your input / idle* — and any mouse or key input wakes the screen. - **Pure-black surfaces** — every dark-scheme background token goes to `#000000`; background pixels turn fully off instead of glowing dark gray. - **Fainter static borders** — hairline dividers sit at the same pixels all day, so their dark values go dimmer than the shipped palette. - **Gamma-aware dimming** — white text and bright accent tokens are scaled as a linear-light luminance ratio, so perceived contrast between text shades is preserved while total light output drops. - **Idle/focus ladder** — normal intensity → deep dim when idle or the window loses focus → nap. Three rungs, each configurable. - **Hue rotation** — the accent hue drifts through a ~12-hour cycle so static brand-colored icons wear every subpixel evenly. ## Requirements - DeepSeek Harness (`@deepseek-ai/dsh`) with the `web` profile (`dsh web`) - pnpm on PATH (`dsh plugin` forwards to it) ## Install From GitHub: ```sh dsh plugin --profile web add github:domparent/OLEDCare ``` From a local checkout: ```sh dsh plugin --profile web add /absolute/path/to/OledCare ``` Then restart `dsh web` and reload the browser tab. Open **Settings → OLEDCare** in the settings left nav. No build step runs on install: `client.js` ships in the harness browser-module format exactly as the browser loads it, so GitHub installs work without allowlisting a `prepare` script. ## Uninstall ```sh dsh plugin --profile web remove dsh-oled-care ``` Restart `dsh web` afterwards. ## Settings Three presets — **Off**, **Balanced** (default: black surfaces, 85% text, nap at 10 min), **Maximum** (70% text, deep dim at 3 min, nap at 5 min) — plus a Custom state that appears when you tweak any field: | Field | What it does | | --- | --- | | Pure black backgrounds | Every surface goes `#000`; background pixels turn fully off | | Fainter static borders | Dims hairline borders beyond the shipped palette | | Text/accent intensity | Linear-light scaling of white text and bright accents | | Hue rotation | ~12 h accent-hue cycle for even subpixel wear | | Deep-dim after idle | Minutes without input before the deeper intensity applies | | Deep-dim intensity | The dimmer level used while idle or unfocused | | Deep-dim when unfocused | Apply deep dim whenever the window loses focus | | Auto nap after idle | Minutes without input before the nap screen engages | | Gradual wind-down | Fades the screen to black over the 30 s before auto-nap engages | A diagnostics box at the bottom of the settings page shows the live token layer, the resolved body background, the current dim rung, and the nap/idle state. Settings persist in the browser's `localStorage` (key `dsh-oled-care:v1`), so your preset and custom mix survive `dsh web` restarts. Where storage is unavailable (private windows, blocked storage), the plugin falls back to in-memory settings for the session. ## How it works - The package is a profile **bundle**: `dsh.bundle.patch` in `package.json` points at `cordis.patch.yml`, which inserts one plugin row. The client module system scans the row's `dsh.client` declaration into the browser roster and serves `client.js` at `/plugins/dsh-oled-care/client.js`. - All visual changes go through the client **theme service** as one replaceable token-override layer — the shipped theme is never edited, and removing the plugin restores it exactly. - UI is composed through the slot system only: `shell.overlay` (nap screen), `conversation.session.header.actions` (nap button), and `settings.section` (settings page). ## Limitations - The light color scheme is left essentially untouched — OLED care targets dark UIs. - Developed against dsh `0.1.0-rc.x`. The browser module format (`window.__ModuleLoader__.load`) is an internal harness contract; pin your dsh version or check release notes when upgrading. - No network calls, no telemetry, no access to conversation content. The only storage touched is `localStorage`, and only for the plugin's own settings. ## License MIT — see [LICENSE](LICENSE).
Install
dsh plugin --profile web add github:domparent/OLEDCare#ed4bbf8dab015a6ba7961503656288a0ccadaae7
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-oled-care from the hub