* feat: rebuild plugin pages with host rendering and native settings * fix(plugins): contain host-view errors, isolate editing, and migrate fixtures * fix(plugins): migrate remaining permission fixture hosts
Plugin Starter
A minimal first-party browser plugin for learning import, settings and lifecycle.
It requests commands, settings.read, menus and views: no terminal text, host credentials,
network, files, secrets or advanced Node access. It works without OS key storage.
Permission declarations are not grants; follow the app's normal mediation.
From the repository root:
npm run build:plugin-packages
node packages/plugin-cli/dist/cli.js validate examples/plugins/starter-netcatty
node packages/plugin-cli/dist/cli.js pack examples/plugins/starter-netcatty/.package --out /tmp/starter-netcatty.ncpkg
Start the actual app normally with a fresh test profile; no development flag is
needed. Open Settings > Plugins > Open plugin manager > Installed, import the package, inspect its
permissions and enable it. Change Greeting, then find Starter: Greeting Panel (入门:问候面板)
in the command palette. Review the normal permission prompts, then click
Show greeting to see the exact preference in the sandboxed panel.
Starter: Read Greeting is also listed and refreshes an already-open panel.
The panel inserts text using textContent, never HTML. It does not write to
a terminal or connect to a host. Denied permissions remain denied.
Disable, restart and re-enable to verify the preference persists. Re-importing the same package leaves it disabled for review. Uninstall removes code and local KV; user-owned settings remain. The greeting is local only, not cloud-synced.
The separate Hello Netcatty example demonstrates terminal providers and requests terminal permissions. Use this Starter for the default no-sensitive-access demo.
Version 0.1.2 adds light/dark PNG brand icons in assets/. Displaying these
images does not activate the plugin or request permissions. This example now
requires API >=0.1.0-internal.1 <0.2.0 and metadata.brand-icon.
Older Starter 0.1.1 packages remain compatible with the new host.
See brand icon author instructions.
Current UI build
The page now uses the host-rendered contract. Run node build.mjs in this
example directory, then package .package/ with the plugin CLI. host.js
registers ordinary DOM views; view.html and view.css are bundled source
templates. Theme values are inherited from Netcatty. There is no separate page
preload or window.netcattyView API. See docs/plugin-platform/host-rendered-ui.md.