diff --git a/extensions/index.html b/extensions/index.html
index 6c57240..04d72d6 100644
--- a/extensions/index.html
+++ b/extensions/index.html
@@ -283,9 +283,12 @@
cannot substitute code under a trusted name.
- Trust, stated plainly. A community extension runs with the same access as any add-on —
- treat one like an unsigned executable from that publisher. The signature proves who published it,
- not that it is safe.
+ Trust, stated plainly. The signature proves who published an extension, not that it
+ is safe. A community extension runs in its own sandboxed process: it can read only its own folder, cannot start
+ other programs, and cannot see your vault, your wallet or the browser's memory. It reaches Theseus only through
+ the capabilities its manifest declares, and it can use the network. Its panel and anything it injects
+ into pages still do what those capabilities allow, so read the capability list before installing. Older Theseus
+ builds ran extensions inside the browser itself — keep Theseus up to date.
@@ -306,6 +309,14 @@
The bundled Notepad
is the smallest complete example; addons-host.js
is the full API. id is [a-z0-9._-], 2–64 chars, and belongs to the first name that publishes it.
+ Mind the sandbox. Your main script runs in its own process, not inside the browser:
+
+ - It can read its own folder and write to
api.dataDir, nothing else on disk. No child processes, workers or native modules.
+ - Calls into Theseus return promises,
api.tabs.active() included. api.storage.get stays synchronous.
+ api.require and api.import are not available: bundle the modules you need in the package.
+ - Request filters and site routes are for built-in add-ons. The vault is reachable only as
api.vault.derive under your own id and api.vault.requestUnlock, where Theseus draws the prompt.
+ api.features.sandboxed is true when this applies.
+
Test it locally. Settings › Extensions › Open extensions folder, drop the folder in, Reload.
Package it. tar -czf my-ext-1.0.0.tar.gz -C my-ext . (max 8 MB; addon.json at the root or in a single top folder).
Publish it. Open Publish an extension →