Publicar un plugin
El Mercado funciona como el repositorio de extensiones de Raycast: tu plugin vive en el repositorio público readaware-plugins y llega vía pull request. Una vez fusionado, aparece en la aplicación bajo Ajustes → Plugins → Mercado y se instala con un clic.
Escribe en TypeScript
TypeScript es la ruta recomendada. El repositorio incluye una template/ con la API tipada (types/plugin-api.d.ts) conectada — cópiala, escribe src/main.ts, y compila un módulo autocontenido único:
bun build src/main.ts --outfile main.js --format esmLo que se envía es siempre el main.js compilado; no dejes de hacer commit de src/ para que los revisores puedan leer el código real. JavaScript simple es igualmente aceptado. Los plugins oficiales en plugins/ están escritos de esta manera — úsalos como ejemplos vivos.
Envío
- Haz fork del repositorio.
- Copia
template/aplugins/<your-plugin-id>/, conteniendo al menosmanifest.jsonymain.js. El nombre de la carpeta debe igualar eliddel manifest. - Agrega una entrada coincidente a
registry.json, manteniendo el array ordenado por id. - Ejecuta las mismas comprobaciones que ejecutará el CI:
node scripts/validate.mjs npx tsc --noEmit - Abre un pull request describiendo qué hace el plugin y por qué necesita cada permiso que declara.
El CI refuerza la consistencia registro–manifest, la forma del id, la lista blanca de permisos y la existencia de archivos, y verifica el tipo de cada plugin TypeScript.
Actualizaciones
Mismo flujo: incrementa version tanto en manifest.json como en registry.json en un pull request. Ten en cuenta que la aplicación lee el registro a través de un CDN, por lo que una actualización fusionada puede tardar un poco en aparecer en la pestaña del Mercado.
Expectativas de revisión
- Declara los permisos mínimos. Los pull requests que soliciten más de lo que el código usa serán devueltos — ver la tabla de permisos.
main.jsdebe ser legible, o acompañado por la fuente de la que fue empaquetado.- Sin código ofuscado, sin análisis o rastreo, sin carga remota de código.
Los plugins se ejecutan dentro de la aplicación con el mismo acceso que la aplicación misma. La instalación es una decisión de confianza que los usuarios toman por plugin, y esta revisión es la primera línea de defensa de la comunidad — escribe plugins que estarías cómodo instalando de un extraño.