Skip to content
Back to skills

Raycast

ASecurity

Raycast extension development. Use when working with @raycast/api imports, Raycast commands/tools, or building extensions.

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
developmentgoshellreactapi

Works with

  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 6 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add bendrucker/claude --skill raycast --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Raycast?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Raycast
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bendrucker-raycast/badge)](https://www.skillsdirectory.com/skills/bendrucker-raycast)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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 how 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)

Files in this skill

  • SKILL.md2.4 KB
  • references/ai-tools.md2.4 KB
  • references/components.md5.4 KB
  • references/hooks.md3.7 KB
  • references/manifest.md3.5 KB
  • references/store.md2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.