{"version":"2.1.265","anchor":"new-pane-ui-componentsite-type","canonical_anchor":"new-plugin-host-apis-commandlist-commandregister-comman","heading":"Plugins gain slash-command and UI-pane APIs","tier":"use","area":"UI Panels","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.265\/e\/new-pane-ui-componentsite-type","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.265","markdown":"### Plugins gain slash-command and UI-pane APIs\n\nPlugins can now register\/run\/list slash commands and open persistent UI panes via new host APIs\n\n**Unclear.** What a \"Pane\" is used for or what it displays is not stated.\n\n**What**\n\n- Plugins can now register, run, list, and describe custom slash commands using new host operations `command.register`, `command.run`, `command.list`, and `command.describe`. `command.register` adds a new slash command (name, description, argument hint, immediate flag), rejecting name collisions with other plugins, built-in commands, or MCP commands, and capping how many commands one plugin can register.\n\n- `command.run` lets a plugin queue a command invocation for the current session.\n\n- `command.list` lists available commands together with where each comes from (built-in, plugin, user, or MCP).\n\n- `command.describe` lets a hook dynamically override a command's description, argument hint, or hidden state.\n\n- A plugin command with no matching `command.run` hook now replies with an explanatory stub message instead of failing silently.\n\n- Plugins can also open and close a new UI surface called a \"pane\": a persistent, titled window, using new `ui.open`\/`ui.close` operations (with id, title, and focus options). Each plugin can have at most 8 panes open at once.\n\n- Internally, the hooks event dispatch table was expanded to recognize `ui.open`, `ui.close`, `command.run`, and `command.describe` as valid events (and the old `PreToolUse` event was renamed `classic.PreToolUse` without changing its behavior).\n\n**Why**\n\nThis gives plugins much deeper integration with Claude Code: they can add slash commands that behave like built-in ones, and they can show their own persistent UI panels instead of being limited to existing surfaces.\n\n- Area: UI Panels\n- Names: `Pane`\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 3\/5\n- Present in the build but not switched on"}