mcpField
R
raycast-extensions

raycast-extensions

github.com/nweiiDevelopment1051 installsUpdated 4d ago
Repository

About raycast-extensions

raycast-extensions is a skill for building Raycast extensions with React, TypeScript, and Node.js. It helps extension developers choose UI components, use common patterns, and consult runnable examples and reference documents.

Key features

  1. 01Guides Raycast extension setup
  2. 02Maps interface needs to components
  3. 03Covers list and action-panel patterns
  4. 04Includes data-fetching and form patterns
  5. 05Provides runnable examples and references

Use cases

  1. 01Create a Raycast extension
  2. 02Choose a layout for searchable items
  3. 03Build a form or detailed-content view
  4. 04Consult data-fetching and AI examples

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nweii/agent-stuff --skill raycast-extensions

After installing, type/raycast-extensionsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

examples/
ai-integration.tsx
data-fetching.tsx
detail-with-metadata.tsx
form-with-validation.tsx
grid-with-images.tsx
list-with-actions.tsx
list-with-detail.tsx
menubar-extra.tsx
references/
ai-api.md
hooks-utilities.md
package-structure.md
ui-components.md

Details

From the project README

Raycast Extension Development

Build Raycast extensions using React, TypeScript, and Node.js.

Quick Start

  1. Create extension: Run "Create Extension" command in Raycast
  2. Install & develop: npm install && npm run dev
  3. Edit: Modify src/index.tsx, changes hot-reload automatically
  4. Test: Extension appears at top of Raycast root search

Choosing a UI Primitive

NeedComponent
Searchable list of itemsList
Image gallery/gridGrid
User input collectionForm
Rich content displayDetail
Status bar presenceMenuBarExtra
Decision Tree
  1. Displaying items the user searches/filters?

    • Text-focused → List
    • Image-focused → Grid
  2. Collecting user input? → Form

  3. Showing detailed content? → Detail (supports markdown + metadata)

  4. Always-visible status bar? → MenuBarExtra

Core Patterns

List with ActionPanel
import { ActionPanel, Action, List } from "@raycast/api";

export default function Command() {
  return (
    <List>
      <List.Item
        title="Item"
        actions={
          <ActionPanel>
            <Action.CopyToClipboard content="Copied!" />
            <Action.OpenInBrowser url="https://raycast.com" />
          </ActionPanel>
        }
      />
    </List>
  );
}
Data Fetching
import { List } from "@raycast/api";
import { useFetch } from "@raycast/utils";

export default function Command() {
  const { data, isLoading } = useFetch<Item[]>("https://api.example.com/items");
  
  return (
    <List isLoading={isLoading}>
      {data?.map((item) => <List.Item key={item.id} title={item.name} />)}
    </List>
  );
}
AI Integration
import { AI, Clipboard } from "@raycast/api";

export default async function Command() {
  const answer = await AI.ask("Summarize this text");
  await Clipboard.copy(answer);
}

Note

AI requires Raycast Pro. Check access with environment.canAccess(AI).

References

For detailed documentation, see:

Examples

Runnable examples in examples/:

FilePattern
list-with-actions.tsxList + ActionPanel basics
list-with-detail.tsxList with detail panel
form-with-validation.tsxForm + useForm validation
detail-with-metadata.tsxDetail markdown + metadata
grid-with-images.tsxGrid layout
data-fetching.tsxuseFetch patterns
ai-integration.tsxAI.ask with streaming
menubar-extra.tsxMenuBarExtra interactions

Comments

Markdown supported