Model Hide
OpenCode plugin: hide models from the picker with an in-TUI selector
0
925
709 in 7 days
38.2
Multi-signal model
5 days ago
2026-09-29
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@franiboy/opencode-model-hide@0.1.6"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@franiboy/opencode-model-hide@0.1.6"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D @franiboy/opencode-model-hideOpenCode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
OpenCode plugin that lets you hide models from the model picker — managed entirely from the terminal UI with a picker-style selection dialog, no config editing required.
/model-hide(orCtrl+Shift+h): open the model list grouped by provider, arrow-key through it, and press Enter to toggle the highlighted model.🟢marks visible models,🔴marks hidden models, and⭐marks the default model. PressCtrl+Ain the same dialog to toggle the highlighted model as the persisted plugin default. Changes are applied in one batch to avoid rebuilding the model catalog for every toggle. The persisted favorite is prioritized for new TUI sessions at startup; an explicitly selected model in an existing session remains unchanged.- Server side, hidden models are removed from the active model catalog, so they
disappear from
opencode models,/models, and every OpenCode instance for the user account — across restarts and catalog refreshes. - Everything else (other providers, other models) is left untouched.
Install
npm install @franiboy/opencode-model-hide
Install it globally with OpenCode:
opencode plugin add @franiboy/opencode-model-hide
The package exposes both its server plugin and ./tui entrypoint. OpenCode automatically loads the TUI entrypoint
from the active server plugin, so no duplicate cli.json entry is required.
Bridge file
Hidden models are stored in ~/.config/opencode/model-hide.json:
{
"hidden": ["opencode-go/kimi-k2.6", "opencode-go/grok-4.6"],
"favorite": "opencode-go/space-bunny-free"
}
- Changes are picked up automatically (debounced watch,
ctx.model.reload()). MODEL_HIDE_BRIDGE_FILEcan move the file location.
Contributing
Every change needs an entry under ## [Unreleased] in
CHANGELOG.md, in the same pull request that makes the
change. Write it when you change something, not when you remember it at
release time.
This is not enforced by a script. npm run release copies that section verbatim
into the new version, and nothing checks whether it describes what actually
changed: a change that touches src/ without an entry is released with no entry
and no warning. Keeping the section current is the author's job.
CHANGELOG.md and this file are the only documentation here, so a behaviour
change that nobody could discover by reading src/ deserves a sentence in the
Unreleased section.
Development
npm ci
npm run check # format:check + typecheck + test
npm run format # prettier --write .
npm run release # suggest a version from the changelog, then release
CI runs the same checks on Node 22 and 24 and asserts that the npm tarball
contains nothing outside src/, README.md, LICENSE and package.json.
Because the package ships raw TypeScript and its entire type surface comes
from @opencode/plugin, the typecheck in CI runs against the resolved plugin
version. A breaking plugin release therefore shows up as a red check on the
Dependabot PR instead of as a bug report.
Releasing goes through npm run release, not a hand-written npm publish. It
suggests a version from the Unreleased section, bumps package.json and
package-lock.json together, commits and tags locally, publishes, and only
then pushes. If the publish fails it resets main to the commit it started from
and deletes the tag, so nothing is ever left with a release that does not exist
on npm. It refuses to run anywhere but main, and publishing needs the npm
one-time password, so the confirmation happens in a browser.
License
MIT
Similar plugins
Models Presets
opencode-models-presets
Provider-agnostic OpenCode TUI plugin for assigning models, variants, and presets to agents.
Session Recap
@kitlangton/opencode-session-recap
Transient session recaps for the OpenCode V2 TUI
Quotes Tui
opencode-quotes-tui
OpenCode TUI plugin that replaces the home screen tips with a random quote