Metadata header
Each line is // @key value. @id, @name, @version, @description and @api
appear exactly once; @match and @exclude-match any number of times, up to 64
patterns in total. Other keys and free-text lines are rejected. A toolbar runs on
every website unless @match lines limit it.
| Key | Rule |
|---|---|
@id | Lowercase kebab-case, at most 80 characters. Installing a script with a bundled toolbar's ID creates a local override of it. |
@name, @version, @description | At most 160, 80 and 1,000 characters. |
@match, @exclude-match | Chrome match patterns for HTTP(S) pages. Without @match, the toolbar runs everywhere (<all_urls>). Exclusions win. |
@api | 2. |
Scripts are at most 256 KiB, are parsed as TypeScript with JSX (ECMAScript 2022) and run in
strict mode. Imports are rejected: take names from the Bundleware global instead.
Parsing and compiling never execute the code, check its types, or prove it safe. The
compiled JavaScript keeps every line of the source, so error positions match what you
wrote.