{"version":"2.1.314","anchor":"plugin-function-hooks-new-place-op-and-placed-slot","canonical_anchor":"plugin-function-hooks-new-place-op-and-placed-slot","heading":"Plugins can place UI rows with ui.place","tier":"internal","area":"Plugins","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.314\/e\/plugin-function-hooks-new-place-op-and-placed-slot","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.314","markdown":"### Plugins can place UI rows with ui.place\n\nPlugins gain a ui.place function and a Placed slot for adding rows to the interface, with a new ui_placed message to send them to other screens\n\n**Unclear.** What placing something does for a plugin author, and how it differs from the existing pane spot.\n\n**What**\n\nPlugins (add-ons that extend Claude Code) get a new way to add rows to the interface.\n\n- A new `ui.place` entry is added to the functions a plugin can call, with a matching hook name `plugin_function_hooks_place`.\n\n- A new interface slot, `Placed`, is added. It maps to the same value as the existing `Pane` slot.\n\n- A new internal system message type, `ui_placed`, sends rows a plugin places with `$.ui.place` from a headless session (one running without its own screen) to connected apps. It is sent once with no reply expected. An app that does not know this message type drops it, and the rows are not drawn there.\n\n**Why**\n\nThis extends what plugins can show on screen. Because the message is marked internal and older apps ignore it, rows placed by a plugin may not appear on every screen you use.\n\n- Area: Plugins\n- Names: `ui.place`\n- Tier: Under the hood\n- Useful: 4\/5\n- Signal: 4\/5\n- Scope: individual\n- Heads-up: no"}