Skip to content
dsh.fish
Bundle

dsh-model-ocean-selector

A DeepSeek Harness plugin with a vertical model list and an animated Three.js particle reasoning-effort control.

Source
jiaoTaiLang404
License
MIT
Updated
Updated 2 days ago

Readme

# 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.

Install

dsh plugin --profile web add github:jiaoTaiLang404/dsh-model-ocean-selector

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source