Realtime WebGPU ocean skin with quick controls for waves, daylight, glass opacity, and an automatic day cycle.
Install
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/d-dev0101/open-sea-skin/releases/download/v1.2.0/open-sea-skin-1.2.0.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:d-dev0101/open-sea-skin
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
中文 · Architecture · Release guide
A self-contained WebGPU ocean for new tabs and DeepSeek Harness. It keeps the original five-wave Gerstner/TSL look, adds a translucent Harness theme, and is available as a one-line DSH plugin, Chrome/Edge extension, one-command static installer, or native Harness source integration.

Recommended — install as a DSH plugin
Install the complete local-only ocean runtime and lower-left quick controls directly from GitHub:
dsh plugin --profile web add 'github:d-dev0101/open-sea-skin#v1.2.0'
Restart dsh web, then use Skin settings at the lower left to adjust wave
size, daylight, 40% glass opacity, and the automatic day/night cycle. Remove it
with:
dsh plugin --profile web remove open-sea-skin
This package is tested with DeepSeek Harness 0.1.0-rc.6. Use the source
integration below only when you also want the controls embedded inside the
native General settings page. See the DSH installation and troubleshooting
guide for verification and recovery details.
Gallery
Every animation below is recorded from the native DeepSeek Harness integration at 40% glass opacity. The overview baseline is wave size 56 and daylight Afternoon (55).
1 — Dark Harness overview

2 — Light Harness overview

3 — Adjusting wave size
Daylight stays at Afternoon (55) while the wave control moves from moderate to calm, through high sea, and back to the baseline of 56.

4 — Daylight to sunset
Wave size stays at 56 while daylight moves smoothly from Midday to Dusk.

Install option 1 — Chrome or Edge extension
- Download and unzip the latest
open-sea-skin-extension-*.ziprelease, or clone this repository. - Open
chrome://extensions(Edge:edge://extensions) and enable Developer mode. - Select Load unpacked and choose this repository's
extension/folder. - Open a new tab for the full ocean. Open Harness on
127.0.0.1orlocalhostfor the glass background skin.
Use the toolbar popup to disable only the Harness skin. The lower-left wave
button opens sea-state, daylight, and glass-opacity controls. Values are saved
with chrome.storage.sync.
Install option 2 — Harness static build (no source compilation)
Run this from any directory. It downloads the pinned v1.2.0 source archive
to a temporary directory, runs the installer, and removes the download when it
finishes. Stop Harness before running it, then start dsh web again, keep
that terminal process running, and reload the browser:
curl -fsSL https://raw.githubusercontent.com/d-dev0101/open-sea-skin/main/install.sh | bash
The script finds a built/installed Harness frontend, makes a local backup, copies the self-contained assets, and injects one marked loader block. If automatic detection cannot find the frontend, pass it explicitly:
curl -fsSL https://raw.githubusercontent.com/d-dev0101/open-sea-skin/main/install.sh | bash -s -- --dist /absolute/path/to/apps/web/dist
Re-run the bootstrap with --update after every Harness upgrade:
curl -fsSL https://raw.githubusercontent.com/d-dev0101/open-sea-skin/main/install.sh | bash -s -- --update
Remove only Open Sea's marker and assets with:
curl -fsSL https://raw.githubusercontent.com/d-dev0101/open-sea-skin/main/install.sh | bash -s -- --uninstall
The command is safe to copy while your terminal is in ~; it does not assume
that this repository already exists locally. You can inspect the bootstrap
script before running it. See
native-dist/README.md for clone-based installation,
detection, and recovery details.
If the browser says Failed to load plugins immediately after installation
or removal, first confirm that dsh web is still running. The static installer
changes files only; it does not start or keep the Harness server alive.
Native Harness source plugin
For a first-class General-settings row and layout slot, integrate the package into a Harness source checkout:
git clone https://github.com/deepseek-ai/deepseek-harness.git
bash harness-plugin/install-into-harness.sh /absolute/path/to/deepseek-harness
cd /absolute/path/to/deepseek-harness
corepack pnpm install
corepack pnpm run build
corepack pnpm dsh web
Use the native Skin settings action at the lower left for fast adjustments,
or open Settings → General → Open Sea Skin for every option. Both surfaces
use Harness settings, locale, slots, and reversible theme-token APIs; neither
depends on CSS-module hashes. The integration is tested against Harness commit
47f943859bef (2026-08-13) and deliberately stops if upstream anchors have
changed. More details are in harness-plugin/README.md.
What is included
- WebGPU + three.js 0.178.0 + TSL, five Gerstner waves, analytic normals, FBM detail, Fresnel sky reflection, sun glitter, foam, fog, sky/cloud band, bloom, and ACES tone mapping.
- A local-only runtime: three.js and Geist are vendored; the extension and installers make no CDN or analytics requests.
- 256×256 mesh (160×160 in low/reduced-motion mode), DPR cap 1.5, adaptive render scale 0.5–1.0, 60/30/20 FPS caps, hidden-tab pause, distance-based shader work skips, reduced skin bloom, and automatic low-end detection.
- Twelve-minute daylight cycle; manual daylight adjustment pins the selected time until automatic cycling is re-enabled.
- Shared host controller for the extension and static installer, with only the
persistence adapter changing (
chrome.storageversuslocalStorage). - Duplicate-render prevention across all installation methods, bilingual UI,
keyboard focus trapping, Escape close, ARIA labels, and
prefers-reduced-motionsupport. - A corrected layout stacking model: Settings stays above the conversation composer at wide aspect ratios, while the ocean remains behind every column.
site/ preserves the original CDN-backed showcase byte-for-byte. The optimized
self-contained runtime has its canonical source in shared/; npm run build
produces the three installable copies.
Development and verification
Node.js 20+ is required for repository checks:
npm run build
npm run check
npm run package:extension
The full browser acceptance run requires Chrome for Testing and Playwright:
npm ci
npx playwright install chromium
npm run test:browser
The launcher uses a persistent profile, --load-extension, and
ignoreDefaultArgs: ['--disable-extensions'], which is required because branded
Chrome 137+ removed the old extension-loading path. The four full-width README
GIFs are regenerated from a running native Harness with npm run capture;
FFmpeg is required for palette-optimized output.
Privacy and permissions
Open Sea Skin collects, transmits, sells, or shares no data. The extension
requests only storage plus access to http://127.0.0.1/* and
http://localhost/* so it can skin a local Harness page. It has no remote host
permission. See docs/privacy.md.
License
Project code is MIT licensed. three.js 0.178.0 remains under MIT; the self-hosted Geist fonts remain under SIL OFL 1.1. See THIRD_PARTY_NOTICES.md and the vendored license copies.
Links
More in this category
Small-tailqwq/dsh-deep-whale#maid-atelier★ 1224
Whale-girl skin series for the DSH Web UI (maid-atelier).
GGBond2424648901/deep-whale-day-night-theme★ 80
Day/night whale-girl skin: a crystal workshop by day and a moon-tide observatory by night, with paired scenes, chibi companions, ornaments, and lightweight bubble and star ambience.
kingOfSoySauce/dsh-liang-skin★ 78
Adaptive reasoning slider skin that maps each model's available reasoning efforts onto a 0–30 visual intensity scale, with synchronized portraits, background, and interface colors.
RevolutionLA/dsh-dream-skin★ 45
One-command skin plugin: 8 original themes, translucent wallpaper with opacity/blur, per-user accent, and shareable theme-pack import/export, favorites and surprise-me — purely native on DSH's token system.
KinGao294/dsh-skin★ 18
Codex-style skin switcher plus a custom wallpaper layer with opacity and blur controls.
Tommy00748/dsh-theme-cyberpunk2077★ 12
Cyberpunk 2077 / Night City theme: NC yellow and neon cyan identity, CRT scanlines, Kiroshi hover lock-on, combat-state HUD, synthesized typewriter and message SFX, and hidden easter eggs (relic / johnny).