{"name":"ui.close","slug":"ui-close","family":"setting","title":"Settings keys","noun":"settings key","description":"Plugins can now list, register, and run slash commands, and open or close a UI surface","description_source":"entry","described_by":{"version":"2.1.265","anchor":"new-plugin-host-apis-commandlist-commandregister-comman"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.319","builds":0,"mined_builds":159,"first_cited":{"version":"2.1.265","released_at":"2026-09-08 19:05:16","spans":1}},"aliases":[],"entries":[{"version":"2.1.280","anchor":"new-uicopy-capability-added-to-the-pluginhooks-permissio","heading":"New ui.copy capability added to the plugin\/hooks permission surface","line":"New ui.copy capability added to the permission list plugins and hooks can request","released_at":"2026-09-22 15:44:39","reason":"found in this entry's text"},{"version":"2.1.280","anchor":"uiclose-hook-chain-now-fires-plugin-ask-dismissal-even-with","heading":"ui.close hook chain now fires plugin-ask dismissal even with no handlers","line":"Closing a plugin UI panel now also dismisses any pending 'ask' prompt for it, even with no close handlers set up","released_at":"2026-09-22 15:44:39","reason":"found in this entry's text"},{"version":"2.1.275","anchor":"new-plugin-api-method-uipanes-with-no-permission-check-wir","heading":"New plugin API method ui.panes with no permission check, wired end-to-end but never called by anything else in the bundle","line":"New plugin API method ui.panes lets plugins list their own UI panels, with no permission check","released_at":"2026-09-17 20:20:31","reason":"found in this entry's text"},{"version":"2.1.268","anchor":"ui-closerender-engine-adds-cross-instance-requestid-guard","heading":"UI-close\/render engine adds cross-instance requestId guard","line":"UI rendering now rejects events with a requestId from a different session instance","released_at":"2026-09-10 18:41:11","reason":"found in this entry's text"},{"version":"2.1.265","anchor":"new-plugin-host-apis-commandlist-commandregister-comman","heading":"New plugin host APIs: command.list, command.register, command.run, ui.open, ui.close","line":"Plugins can now list, register, and run slash commands, and open or close a UI surface","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text, named in this entry"},{"version":"2.1.265","anchor":"new-pane-management-system-for-plugin-ui-panels","heading":"New pane-management system for plugin UI panels","line":"Plugins can now open UI panels, capped per plugin, with a hook that can veto closing one","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text, named in this entry"},{"version":"2.1.265","anchor":"functionhooks-event-registry-expands-uiopenuiclose-comm","heading":"Functionhooks event registry expands: ui.open\/ui.close, command.run\/command.describe, classic.PreToolUse","line":"Hooks system adds ui.open\/ui.close and command.run\/command.describe event types, and renames PreToolUse internally","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text, named in this entry"},{"version":"2.1.265","anchor":"plugin-runtime-api-gains-command-hooks-and-ui-window-control","heading":"Plugin runtime API gains command hooks and UI window controls","line":"Plugins can now register and run their own commands and open or close their own UI windows","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text"},{"version":"2.1.265","anchor":"new-panes-plugin-ui-surface-added-wired-to-uiopenuiclo","heading":"New \"Panes\" plugin UI surface added, wired to ui.open\/ui.close hooks","line":"A new 'Panes' UI system renders the windowed panes plugins open via ui.open\/ui.close","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text, named in this entry"},{"version":"2.1.265","anchor":"plugin-sdk-gains-a-windowed-uiopenuiclose-surface-ca","heading":"Plugin SDK gains a windowed ui.open \/ ui.close surface, capped at 8 panes per plugin \u2014 no renderer found for the 'currently shown' selector","line":"Plugins can now open persistent UI panes via ui.open\/ui.close, capped at 8 panes per plugin","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text, named in this entry"}],"entries_total":10,"docs":[{"source":"claude-code","path":"plugins\/mods\/interface","title":"Draw in the interface with a mod","documented":false},{"source":"claude-code","path":"plugins\/mods\/reference","title":"Mods reference","documented":false},{"source":"claude-code","path":"plugins\/mods\/test","title":"Test a mod","documented":false}],"docs_total":3,"gates":[],"related":[{"name":"ui.backdrop","slug":"ui-backdrop","description":"Several small internal additions, including a backdrop UI action and extra effort and auto mode details, with no visible feature yet"},{"name":"ui.blit","slug":"ui-blit","description":"Plugins can now request keyboard focus and control scrolling in UI regions they drew"},{"name":"ui.copy","slug":"ui-copy","description":"New ui.copy capability added to the permission list plugins and hooks can request"},{"name":"ui.focus","slug":"ui-focus","description":"Plugins can now request keyboard focus and control scrolling in UI regions they drew"},{"name":"ui.input","slug":"ui-input","description":"Plugins gain validated Input, Select, and Link UI components."},{"name":"ui.invalidate","slug":"ui-invalidate","description":"Plugins can now invalidate prompt.context specifically through ui.invalidate, alongside ui.render and prompt.section."},{"name":"ui.log","slug":"ui-log","description":"Plugins can install code that intercepts tool calls and repaints parts of the terminal interface."},{"name":"ui.message","slug":"ui-message","description":"Plugins can now draw their own interactive UI elements ('Clients') directly in the terminal"},{"name":"ui.mount","slug":"ui-mount","description":"Plugin test engine used by `claude plugin test` gains a UI-render test harness with mount\/act\/release methods"},{"name":"ui.notify","slug":"ui-notify","description":"Plugins gain a `ui.notify` operation for posting notifications, and each notification's screen time is now budgeted and saved"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/ui-close","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}