/raycast
Raycast extension development. Use when working with @raycast/api imports, Raycast commands/tools, or building extensions.
$ npx -y skills add bendrucker/claude --skill raycast --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/raycast
Context preview
The summary Claude sees to decide when to auto-load this skill.
Raycast extension development. Use when working with @raycast/api imports, Raycast commands/tools, or building extensions.
SKILL.md
raycast.SKILL.mdname: raycast
description: Raycast extension development. Use when working with @raycast/api imports, Raycast commands/tools, or building extensions.
user-invocable: true
disable-model-invocation: true
Raycast
Project Structure
Commands map by name to `src/<name>.tsx`. Tools live in `src/tools/<name>.ts`. Use `.tsx` for UI commands, `.ts` for no-view commands and tools. Icons go in `assets/`. The `package.json` serves as both the npm manifest and the Raycast extension manifest.
See [references/manifest.md](references/manifest.md)
Manifest
The `package.json` is a superset of npm's format with Raycast-specific fields: `commands`, `tools`, `preferences`, `platforms`, `categories`, `icon`, and `author`. Command modes are `view` (renders UI), `no-view` (runs silently), and `menu-bar` (menu bar extra).
See [references/manifest.md](references/manifest.md)
Components
React-based UI with `@raycast/api`. Top-level views: `List`, `Grid`, `Detail`, `Form`. Wrap actions in `ActionPanel` with `Action` items. Always pass `isLoading` to top-level components. Use `List.EmptyView` for empty states.
See [references/components.md](references/components.md)
Hooks
`@raycast/utils` provides data-fetching and state hooks: `useFetch` for URL fetching, `usePromise` and `useCachedPromise` for async functions with stale-while-revalidate caching, `useForm` for form validation, `useLocalStorage` for persistent state, and `useExec` for shell commands. Use `keepPreviousData` to prevent flickering during search.
See [references/hooks.md](references/hooks.md)
AI Tools
Tools export a default async function with a typed `Input` parameter. JSDoc comments on the `Input` type teach the AI to use the tool. Export a `confirmation` function for destructive operations. Configure `ai.instructions` in `package.json` for extension-level guidance.
See [references/ai-tools.md](references/ai-tools.md)
Development
Bootstrap with `npx create-raycast-extension`. Install dependencies with `npm install`. Run `npm run dev` for development with hot reloading. Run `npm run build` to type-check and bundle. Run `npm run lint` for code style. Use npm (not yarn or pnpm) and commit `package-lock.json`.
Store
Extensions require Apple Style Title Case for names. Icons must be 512x512 PNG. Screenshots should be 2000x1250 PNG. Include a `CHANGELOG.md`. Add a `README.md` if setup is required. Run `npm run publish` to submit.
See [references/store.md](references/store.md)
Read more
name: raycast description: Raycast extension development. Use when working with @raycast/api imports, Raycast commands/tools, or building extensions. user-invocable: true disable-model-invocation: true
Raycast
Project Structure
Commands map by name to `src/<name>.tsx`. Tools live in `src/tools/<name>.ts`. Use `.tsx` for UI commands, `.ts` for no-view commands and tools. Icons go in `assets/`. The `package.json` serves as both the npm manifest and the Raycast extension manifest.
See [references/manifest.md](references/manifest.md)
Manifest
The `package.json` is a superset of npm's format with Raycast-specific fields: `commands`, `tools`, `preferences`, `platforms`, `categories`, `icon`, and `author`. Command modes are `view` (renders UI), `no-view` (runs silently), and `menu-bar` (menu bar extra).
See [references/manifest.md](references/manifest.md)
Components
React-based UI with `@raycast/api`. Top-level views: `List`, `Grid`, `Detail`, `Form`. Wrap actions in `ActionPanel` with `Action` items. Always pass `isLoading` to top-level components. Use `List.EmptyView` for empty states.
See [references/components.md](references/components.md)
Hooks
`@raycast/utils` provides data-fetching and state hooks: `useFetch` for URL fetching, `usePromise` and `useCachedPromise` for async functions with stale-while-revalidate caching, `useForm` for form validation, `useLocalStorage` for persistent state, and `useExec` for shell commands. Use `keepPreviousData` to prevent flickering during search.
See [references/hooks.md](references/hooks.md)
AI Tools
Tools export a default async function with a typed `Input` parameter. JSDoc comments on the `Input` type teach the AI to use the tool. Export a `confirmation` function for destructive operations. Configure `ai.instructions` in `package.json` for extension-level guidance.
See [references/ai-tools.md](references/ai-tools.md)
Development
Bootstrap with `npx create-raycast-extension`. Install dependencies with `npm install`. Run `npm run dev` for development with hot reloading. Run `npm run build` to type-check and bundle. Run `npm run lint` for code style. Use npm (not yarn or pnpm) and commit `package-lock.json`.
Store
Extensions require Apple Style Title Case for names. Icons must be 512x512 PNG. Screenshots should be 2000x1250 PNG. Include a `CHANGELOG.md`. Add a `README.md` if setup is required. Run `npm run publish` to submit.
See [references/store.md](references/store.md)
My personal plugin marketplace for Claude Code, Anthropic's AI coding assistant.
Repo: bendrucker/claude
Other skills on bendrucker-claude.
cleye
Type-safe CLI argument parsing with cleye, the standard parser for this repo's Bun scripts. Use when writing or editing any script that takes arguments (flags,…
activity
Report real device usage from ActivityWatch. Covers per-app time, window titles, and active vs idle spans. Use when asked "what apps did I use", "how long was…
history
Report shell history from atuin's local capture. Covers what commands ran, when, where, and how they exited. Use when asked "what commands did I run", "what…
bun
Bun runtime patterns. Use when running bun commands, working with package.json/bun.lock, writing TypeScript scripts under Bun, or developing Claude Code…
agent-team
Orchestrating Claude Code agent teams. Use when creating teams, spawning teammates, assigning tasks, configuring teammate modes, or setting up team quality…

