Skip to main content
T1 (local dev) vs T2 (public sandbox) — which capability works where: The host-brokered capabilities that work on the T1 host today are key.display (title / image / state / success/error) and settings.get/patch. The others (storage, network.fetch, secret, oauth, clipboard, profile, system, input, action.invoke) are for T2.T1 is sandboxless Node, so it does not need host-brokered versions of these — use platform APIs directly: fetch() for the network, node:fs for files/persistence, and handle your own token/OAuth management directly. The host-brokered versions exist to make your code portable to T2 (once public upload opens). Details: Trust tiers.

Key display

A static image uses a manifest-hash verified assetId; a dynamic image uses a bounded PNG/JPEG/WebP raster descriptor. Raw paths or external URLs are not accepted.

Credential lifecycle and authenticated fetch

A credential reference is only of the form {kind:'secret',name} or {kind:'oauth',provider}. The host decrypts the secret from its own encrypted vault and injects it into the permitted HTTPS request; the raw credential never enters the plugin request/response. The host still enforces the permission host/method/header/request/response limits.
Do not put a raw token in normal settings, a manifest default, a log or a network.fetch header.