raycast-extension-dev
Raycast extension development
A Raycast extension is a manifest (package.json) plus React components, bundled
by esbuild and run inside Raycast's own Node 22 process — which launchd starts,
so it has none of your shell environment. The API surface is well documented at
https://developers.raycast.com. Read that for what List and Form accept.
This skill is the other 20%: what the toolchain does not check, what the
runtime does not provide, and what the store checks that the linter does not.
Every claim here was paid for once in a shipped extension; the ## Gotchas
section is the compressed bill.
macOS is the default, not the premise. Raycast ships on Windows too, and
platforms in the manifest decides who can see your extension. The UI layer is
100% shared and domain logic nearly so; only an OS adapter at the bottom differs.
Declare both platforms and subtract, rather than defaulting to macOS by silence —
references/cross-platform.md. The launchd, Homebrew-prefix, and sips material
below is genuinely macOS-scoped and labelled as such.