# DSH Model Ocean Selector English | [中文](README.zh.md) A DeepSeek Harness Web UI plugin that replaces the stock compact model menu with a vertical model list and an animated reasoning-effort control. ## Features - Displays provider-grouped models as stable vertical rows. - Uses the project fish icon as the thumb of a compact pill control. - Renders three independently seeded Three.js square-particle streams from right to left. - Keeps particle size and stream width constant while each square rotates counterclockwise, spawns at a random offset and angle, and fades without wrap flashes. - Changes animation speed only after an effort selection is confirmed; pending selections do not reset or accelerate the animation. - Uses `#e6e5e6` as the base background and hides animated fill at the provider's minimum effort. - Preserves the existing `/model`, session model selection, keyboard range input, localization, HMR disposal, and WebGL fallback behavior. ## Install Install the plugin into the Web profile from GitHub: ```sh dsh plugin --profile web add github:jiaoTaiLang404/dsh-model-ocean-selector ``` Restart `dsh web` after installation. Open the model selector in the conversation composer to use the new model list and effort control. To remove it: ```sh dsh plugin --profile web remove dsh-model-ocean-selector ``` ## Development Requires Node.js `^22.19.0 || >=24.0.0` and pnpm 11. ```sh pnpm install pnpm check ``` `pnpm build` produces the host entries and browser bundle in `lib/`. Built files are committed so DeepSeek Harness can install this repository directly from GitHub. ## Compatibility and limitations - WebGL is optional. If initialization fails, a static themed particle fallback remains visible and the range input stays usable. - The animation requires a modern browser with CSS `color-mix()` and `:has()` support for the full presentation. - Reduced-motion preference is sampled when the control mounts. - Effort order comes from the selected provider; animation speed represents that order and does not infer compute cost from effort names. - The selector is hidden for an addressed subagent session, matching the stock model selector behavior. ## License [MIT](LICENSE). See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for bundled and runtime dependencies.