Open Sea Skin
Interactive website · 中文 · Architecture · Release guide
Before installing, preview the official website first
Open the live demo, tune the waves, sunset, and glass transparency, then install only after you like the result.
Releases ·
Need login or installation help? Leave a message in Issues and mention @d-dev0101.
A self-contained WebGPU ocean skin for 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, Harness-only 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 from npm (no Git checkout or install-time build required):
dsh plugin --profile web add [email protected]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-skinThis package is tested with DeepSeek Harness 0.1.2-alpha.3. 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 DeepSeek Harness on
127.0.0.1orlocalhost, then reload it once.
The extension does not replace Chrome or Edge's new-tab page, change the browser homepage, or interfere with an existing new-tab extension. It verifies the Harness title, root, and server-injected boot marker before changing a page, so other local development sites also remain untouched. Use the toolbar popup to disable 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.4 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 | bashThe 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/distRe-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 -- --updateRemove only Open Sea's marker and assets with:
curl -fsSL https://raw.githubusercontent.com/d-dev0101/open-sea-skin/main/install.sh | bash -s -- --uninstallThe 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 --no-frozen-lockfile
corepack pnpm run build
corepack pnpm dsh webUse 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 0.1.2-alpha.3, commit dd6322d60 (2026-08-31), 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.storage versus localStorage).
- Duplicate-render prevention across all installation methods, bilingual UI,
keyboard focus trapping, Escape close, ARIA labels, and prefers-reduced-motion support.
- 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:extensionThe full browser acceptance run requires Chrome for Testing and Playwright:
npm ci
npx playwright install chromium
npm run test:browserThe 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.

