Repository navigation
Description
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
The TUI plugin manager already exists and works well, but it has no slash command, so it is effectively undiscoverable.
packages/tui/src/feature-plugins/system/plugins.tsx registers two palette commands:
plugins.list(title "Plugins") - lists built-in and external plugins,spacetoggles enable/disableplugins.install(title "Install plugin") - npm install prompt with local/global scope
Neither declares a slashName. Both default keybinds are none (packages/tui/src/config/keybind.ts:226-227). So the only way to reach plugin lifecycle management is to open the command palette and scroll, or hand-configure a keybind.
Every comparable dialog in opencode already has a slash command: /mcps (mcp.list), /agents (agent.list), /models (model.list), /skills (prompt.skills), /themes, /status, /variants, /workspaces. Plugins are the outlier.
This is also the one piece of Claude Code parity people keep asking for. /plugin is where Claude Code users expect plugin lifecycle to live, and it comes up repeatedly:
- [FEATURE]: We need an official plugin marketplace!!!We need a more user-friendly plugin management command!!! #23800 ("more user-friendly plugin management command ... something like ClaudeCode /plugin /plugins") - closed as duplicate of the marketplace megaissue [FEATURE]: Plugin/Agent/Skills/etc marketplace #28696
- [FEATURE]: add "/plugins" commands to discover Plugins, MCPs, and Skills (like Claude Code) #7716 ("add /plugins commands to discover Plugins, MCPs, and Skills (like Claude Code)") - closed
- [FEATURE]: Reopen plugin enable/disable support; PR #12490 remains unmerged #44452 asks for plugin enable/disable management surfaces
Those all got folded into #28696, which is a large marketplace/registry effort. But the underlying management UI already shipped. Only the entry point is missing, and that is a two-line fix, independent of any marketplace work.
Proposal
Add slash names to the existing commands. No new UI, no new API, no behavior change.
plugins.list->/plugins, alias/pluginplugins.install->/plugin-install
/plugins follows the existing plural convention (/mcps, /agents). /plugin as an alias gives Claude Code users the name they reach for. Neither collides with an existing slash name or alias.
Acceptance criteria
/pluginsand/pluginopen the plugin manager dialog/plugin-installopens the install prompt- Both appear in prompt slash autocomplete
- No change to existing keybinds, palette entries, or dialog behavior
Activity
eloyred commentedon Oct 16, 2026
Hi! I'd like to pick this up — clean two-line change.
Plan:
Base branch
devper CONTRIBUTING.md.Add
slashName: "plugins"andslashAliases: ["plugin"]toplugins.listinpackages/tui/src/feature-plugins/system/plugins.tsx.Add
slashName: "plugin-install"toplugins.installin the same file.Confirm
useCommandSlashesinpackages/tui/src/keymap.tsxpicks up the new fields without further changes.Add a focused test in
packages/tui/test/feature-plugins/plugins-commands.test.tsmirroring the precedent from feat(tui): expose plugin manager as /plugins slash command #47347 (closed by automated cleanup, not by rejection).Run:
Open PR against
devlinking this issue.Scope: ~50 LOC diff, doc note in
specs/tui-plugins.md, no UI or API change.Could you assign this to me, or let me know if the team is already working on it so I don't duplicate effort?
eloyred commentedon Oct 16, 2026
Update after reading the code on
dev: the API in the issue is stale for v2 — the real fields areslash: { name, aliases?, arguments? }on eachkeymapcommand (noslashName/slashAliases).plugins.listatpackages/tui/src/feature-plugins/system/plugins.tsx:334already declaresslash: { name: "plugins" }(onlyname, no alias), andplugins.installdoes not exist as a separate command — install is triggered from inside thePluginsDialogvia keymap, not via slash.So the in-scope fix is the alias on the existing slash:
One line in
plugins.tsx. Tests live inpackages/tui/test/cli/tui/plugins-dialog.test.tsx; I'll add a focused case there asserting that typing/pluginresolves to theplugins.listcommand alongside/plugins.Out of scope here (would need design review per CONTRIBUTING.md): a separate
/plugin-installslash that bypasses the dialog. I'm leaving that for now unless you want it in the same PR.Plan:
plugins-slash(renamed from my earlier branch to match the v2 branch-naming rule in AGENTS.md).plugins.tsx.plugins-dialog.test.tsx.bun testandbun typecheckfrompackages/tui, plusbun run checkfrom the repo root.devlinking#47345.Can you confirm the scope is OK before I start, or do you want
/plugin-installfolded in as well?opencodejr commentedon Oct 28, 2026
Thanks for the detailed write-up, @rsmets!
The code you're describing (
slashName, theplugins.installcommand and the keybind defaults inconfig/keybind.ts) is from OpenCode v1 (opencode-ai, versions 0.x/1.x). v1 now only gets critical fixes such as data loss, security problems or crashes, so this change is unlikely to be made there.In v2 (
@opencode/cli, versions 2.x) the plugin manager already has a slash command:/pluginsopens it and shows up in slash autocomplete. It has been there since v2.0.0. v2 has no separate install-plugin command, and there is no/pluginalias right now. If you'd like either of those in v2, please open a new issue that mentions v2.We'd recommend upgrading to v2. If you think this is critical for v1, or you see the same gap in v2, please reply here.
Related: #28696 (plugin marketplace/registry), #23800, #7716, #44452.
opencodejr commentedon Oct 29, 2026
Closing this as not planned. The request is about v1, which now only gets critical fixes, and nobody has replied since.
In v2 (
@opencode/cli),/pluginsalready opens the plugin manager. If you'd like a/pluginalias or an install-plugin command in v2, please open a new issue that mentions v2. If you think this is critical for v1, reply here and we can take another look. Thanks again, @rsmets!