DeepSeek Harness Plugin

Lzh3070/dsh-model-visibility

Stars ★ 2 Downloads (30d) 1,574 Category Usage & Billing Added 2026-08-28 npm dsh-model-visibility

Model visibility manager for DeepSeek Harness: hide or show any model in the conversation model selector from a dedicated settings page. Per-model switches, search, provider-level batch actions, reset-all. Zero intrusion - writes only its own hidden list, never the provider config; hiding a model in use never interrupts a running session.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-model-visibility

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:Lzh3070/dsh-model-visibility

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 — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

English · 中文

Model visibility for DeepSeek Harness: control which models appear in the conversation model selector.

Installs a dedicated Model visibility settings section (right after 模型 / Models in the left nav):

  • 🔍 Search — live filter by model name / id / provider
  • 🎚️ Per-model switches — hide a model and it disappears from the selector instantly; flip back to restore
  • 📦 Provider-level batch — hide or show every model of one provider in one click
  • ♻️ Reset all — clear the hidden list
  • 🛡️ Zero intrusion — writes only the plugin's own hidden list, never your provider config; hiding a model a session already uses never interrupts that session
  • 🆕 New models visible by default — the plugin remembers what to hide, not what to show

Preview

Model visibility section

Requirements

  • DeepSeek Harness ≥ 0.2.0-rc.1 (0.2.0 rebuilt settings on volatile configuration and configForms; use plugin 0.1.2 on 0.1.x hosts)
  • Node.js 22+

Install

dsh plugin --profile web add dsh-model-visibility

Restart dsh web to activate.

How it works

  • Host half (lib/index.js): declares the hidden field .volatile(), so a settings-form write commits the new value into the same stable reference through the Loader (no plugin restart), and wraps ctx.llm.listModels at its source — both the conversation selector and the settings page receive the filtered catalog. Catalog membership is advisory in the harness, so hiding a model a session already uses never breaks that session's dispatch.
  • Browser half (lib/client.js): registers a settings.section page; durable state rides 0.2.0's shared ctx.configForms form, the catalog arrives through ctx.remote.session.modelCatalog() and refreshes on llm/adapters-updated, and page state is the union of the filtered catalog and the hidden entries, each hidden entry labeled by the display-name snapshot captured when it was hidden.

Uninstall

dsh plugin --profile web remove dsh-model-visibility

Uninstalling restores everything: the plugin never writes provider config, and the hidden list dies with the package.

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.