{"name":"ui.render","slug":"ui-render","family":"setting","title":"Settings keys","noun":"settings key","description":"A plugin cannot secretly change what a question asks you; tampered prompts fall back to the original.","description_source":"entry","described_by":{"version":"2.1.242","anchor":"a-plugin-may-relabel-a-question-prompt-but-not-change-what-i"},"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.242","released_at":"2026-08-24 19:16:14","spans":5}},"aliases":[],"entries":[{"version":"2.1.317","anchor":"plugin-ui-render-component-backdrop-added","heading":"Plugins can now draw at a new Backdrop spot on screen","line":"Plugins that draw their own screens through `ui.render` gain a new place to draw, called Backdrop","released_at":"2026-11-02 23:57:53","reason":"found in this entry's text"},{"version":"2.1.310","anchor":"terminal-pane-view-for-a-plugin-gets-a-full-layout","heading":"A plugin's terminal pane now shows a full status layout, including dev server errors","line":"A plugin's terminal pane now draws a full status layout with a link and messages explaining why a dev server failed to start, replacing two plain lines","released_at":"2026-10-23 21:20:46","reason":"found in this entry's text"},{"version":"2.1.304","anchor":"uirender-hook-in-the-hooks-module-scan-list","heading":"Plugin mods are now checked for a screen-drawing hook","line":"Claude Code now looks for a `ui.render` hook in plugin mods, and drafts written into the input box can carry decorations","released_at":"2026-10-19 19:47:15","reason":"found in this entry's text, named in this entry"},{"version":"2.1.296","anchor":"plugin-hook-context-gains-isdispatching-and-renderfocus-roo","heading":"Plugin hooks get an isDispatching check and change how render and focus events pass","line":"The context passed to plugin hooks now includes `isDispatching`, and `ui.render` or `ui.focus` starting events are cleared for calls served by a pending call","released_at":"2026-10-09 16:58:10","reason":"found in this entry's text"},{"version":"2.1.296","anchor":"ui-event-filter-generalised","heading":"Plugin interface event filtering moves to a shared rule","line":"A check that treated only `ui.render` and `ui.focus` specially now asks a shared rule which starting events to treat that way","released_at":"2026-10-09 16:58:10","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"plugin-state-store-for-the-hooks-module-runtime-stateget","heading":"Plugin state store for the hooks-module runtime ($.state.get \/ state.set)","line":"Plugin hooks modules gain `$.state.get` and `$.state.set`, a versioned shared value store only a value's owner can write","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"plugin-ui-held-element-presses-can-reject-values","heading":"Plugin UI: held element presses can reject values","line":"Plugin UI elements can now refuse a value when pressed and held, and ui.render runs inside a drawing context","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.277","anchor":"uirender-hook-matcher-gets-startup-advisory-logging","heading":"ui.render hook matcher gets startup advisory logging","line":"Claude Code warns at startup if a hooks module registers a ui.render matcher with advice available","released_at":"2026-09-18 16:22:26","reason":"found in this entry's text, named in this entry"},{"version":"2.1.275","anchor":"plugin-test-engine-now-exposes-a-ui-render-client-harness","heading":"Plugin test engine now exposes a UI-render client harness ( ui.mount \/ act )","line":"Plugin test engine used by `claude plugin test` gains a UI-render test harness with mount\/act\/release methods","released_at":"2026-09-17 20:20:31","reason":"found in this entry's text"},{"version":"2.1.271","anchor":"uirender-invalidation-now-distinguishes-live-vs-steady","heading":"ui.render invalidation now distinguishes 'live' vs 'steady' pace","line":"Plugin UI re-rendering now runs at two different paces, 'live' and 'steady', instead of one fixed rate","released_at":"2026-09-14 19:45:19","reason":"found in this entry's text"}],"entries_total":19,"docs":[{"source":"claude-code","path":"changelog","title":"Claude Code changelog","documented":false},{"source":"claude-code","path":"plugins\/mods\/admin","title":"Manage mods for your organization","documented":false},{"source":"claude-code","path":"plugins\/mods\/create","title":"Create a mod","documented":false},{"source":"claude-code","path":"plugins\/mods\/events","title":"React to events with a mod","documented":false},{"source":"claude-code","path":"plugins\/mods\/gallery","title":"Interface gallery for mods","documented":false},{"source":"claude-code","path":"plugins\/mods\/interface","title":"Draw in the interface with a mod","documented":false},{"source":"claude-code","path":"plugins\/mods\/overview","title":"Mods overview","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},{"source":"claude-code","path":"plugins\/mods\/troubleshoot","title":"Troubleshoot a mod","documented":false}],"docs_total":10,"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.close","slug":"ui-close","description":"Plugins can now list, register, and run slash commands, and open or close a UI surface"},{"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"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/ui-render","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}