Ein Plugin veröffentlichen
Der Marktplatz funktioniert wie Raycasts Erweiterungs-Repository: Dein Plugin lebt im öffentlichen Repository readaware-plugins und kommt per Pull Request hinein. Nach dem Merge erscheint es in der App unter Einstellungen → Plugins → Marktplatz und installiert sich mit einem Klick.
In TypeScript schreiben
TypeScript ist der empfohlene Weg. Das Repository bringt ein template/ mit, in dem die getypte API (types/plugin-api.d.ts) bereits verdrahtet ist — kopiere es, schreibe src/main.ts und baue ein einzelnes, in sich geschlossenes Modul:
bun build src/main.ts --outfile main.js --format esmWas ausgeliefert wird, ist immer die gebaute main.js; committe src/ mit, damit Reviewer den echten Code lesen können. Pures JavaScript ist genauso willkommen. Die offiziellen Plugins in plugins/ sind so geschrieben — nimm sie als lebende Beispiele.
Einreichen
- Forke das Repository.
- Kopiere
template/nachplugins/<your-plugin-id>/mit mindestensmanifest.jsonundmain.js. Der Ordnername muss deridim Manifest entsprechen. - Füge den passenden Eintrag in
registry.jsonhinzu und halte das Array nach id sortiert. - Führe dieselben Prüfungen aus, die CI laufen lässt:
node scripts/validate.mjs npx tsc --noEmit - Öffne eine Pull Request, die beschreibt, was das Plugin tut und warum es jede deklarierte Berechtigung braucht.
CI erzwingt die Konsistenz von Registry und Manifest, die Form der id, die Berechtigungs-Whitelist und die Existenz der Dateien — und type-checkt jedes TypeScript-Plugin.
Updates
Derselbe Ablauf: Erhöhe version in manifest.json und registry.json in einer Pull Request. Beachte, dass die App die Registry über ein CDN liest — ein gemergtes Update kann also einen Moment brauchen, bis es im Marktplatz-Tab erscheint.
Erwartungen der Review
- Deklariere nur die minimalen Berechtigungen. Pull Requests, die mehr verlangen, als der Code nutzt, gehen zurück — siehe die Berechtigungstabelle.
main.jsmuss lesbar sein oder zusammen mit dem Quellcode kommen, aus dem gebündelt wurde.- Kein verschleierter Code, keine Analytics oder Trackings, kein Nachladen von Code aus dem Netz.
Plugins laufen innerhalb der App mit demselben Zugriff wie die App selbst. Die Installation ist eine Vertrauensentscheidung, die Nutzer pro Plugin treffen, und diese Review ist die erste Verteidigungslinie der Community — schreibe Plugins, die du selbst bedenkenlos bei einem Fremden installieren würdest.