{"version":"2.1.285","anchor":"plugin-hooks-engine-gains-a-remote-surface-wire-protocol-ui","canonical_anchor":"plugin-hooks-engine-gains-a-remote-surface-wire-protocol-ui","heading":"New protocol lets Desktop, mobile and VS Code draw plugin UI, plus list_directory","tier":"use","area":"Plugins","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.285\/e\/plugin-hooks-engine-gains-a-remote-surface-wire-protocol-ui","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.285","markdown":"### New protocol lets Desktop, mobile and VS Code draw plugin UI, plus list_directory\n\nNew ui_* messages let desktop, mobile and VS Code surfaces attach to a session and draw plugin UI, and a gated list_directory request is added\n\n**Unclear.** It is not settled whether all of these messages are new or whether the feature is switched on for anyone.\n\n**What**\n\nClaude Code gained a new set of messages that let outside apps, called surfaces, connect to a running session and show user interface drawn by plugins. The surfaces named are desktop, mobile and vscode. The message schemas are part of the plugin hooks engine, the part of Claude Code that runs plugin code in response to events.\n\n- Attaching and leaving: `ui_attach`, `ui_detach`\n\n- Drawing and interaction: `ui_render`, `ui_press`, `ui_input`, `ui_select`, `ui_scroll`, `ui_focus`, `ui_close`, `ui_copy`, `ui_message`\n\n- Panes: `ui_panes`, `ui_pane_show`, `ui_pane_focus`\n\n- Surface-side modules: `ui_client_module`, `ui_client_press`\n\n- The prompt box: `ui_prompt_read`, `ui_prompt_fill`, `ui_prompt_suggest`, `ui_prompt_edit`\n\n- Building blocks a plugin can draw with: Box, Text, Button, Input, Select, Link, Code, Markdown, Client and Svg\n\nThe headless control handler, which answers requests from a connected app when there is no terminal screen, now handles these `ui_*` requests and a new `list_directory` request. Before, it handled only `read_file` and `get_workspace_diff`. `list_directory` runs only when `CLAUDE_CODE_REMOTE` is set, on Linux, and with the remote switch `tengu_gentle_hummingbird` on. Nothing has been read about that switch.\n\n**Why**\n\nThis defines how plugins could show buttons, inputs, panes and other controls inside Claude Desktop, the mobile app and VS Code, not only in the terminal. It also lets a connected app ask a remote session to list a folder's contents.\n\n- Area: Plugins\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 5\/5"}