{"version":"2.1.268","anchor":"new-virtual-plugin-surface-bundlingruntime-scheme","canonical_anchor":"new-virtual-plugin-surface-bundlingruntime-scheme","heading":"New virtual plugin \"surface\" bundling\/runtime scheme","tier":"internal","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.268\/e\/new-virtual-plugin-surface-bundlingruntime-scheme","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.268","markdown":"### New virtual plugin \"surface\" bundling\/runtime scheme\n\nA new \"surface\" virtual-module system lets plugin desktop UI code import from special surface:\/\/\/ and claude: URIs\n\n**Unclear.** What plugin authors can now build with this that they couldn't before is not detailed.\n\n**What**\n\nClaude Code now has a new module-loading scheme for plugin desktop UI components. Plugin source code can import from virtual addresses like `surface:\/\/\/...`, `surface-unlinked:\/\/\/computed#...`, and virtual modules named `claude:hooks-types` and `claude:surface-runtime`. Import statements in plugin source are rewritten to these virtual forms before the plugin code runs inside its sandboxed virtual machine.\n\n**Why**\n\nThis is infrastructure for building plugin UI components, giving plugin code a controlled set of virtual modules to import from rather than reaching into the real filesystem or module system, which fits with running plugin code in a sandbox.\n\n- Area: Plugins\n- Names: `surface:\/\/\/`, `claude:hooks-types`, `claude:surface-runtime`\n- Tier: Under the hood\n- Useful: 3\/5\n- Signal: 4\/5"}