mcpField
R
raycast-extensions

raycast-extensions

github.com/nweii開発1051 回インストール4 日前に更新
リポジトリ

raycast-extensions について

raycast-extensions は、React、TypeScript、Node.js で Raycast 拡張を開発するためのスキルです。拡張開発者向けに UI コンポーネントの選び方や実装パターンを示し、実行可能な例とリファレンスを提供します。

主な機能

  1. 01Raycast 拡張の開発手順を案内
  2. 02画面要件に応じたコンポーネント選択
  3. 03リストとアクションパネルのパターン
  4. 04データ取得とフォームのパターン
  5. 05実行可能な例とリファレンス

活用シーン

  1. 01Raycast 拡張の新規作成
  2. 02検索項目に適したレイアウト選択
  3. 03フォームや詳細画面の実装
  4. 04データ取得や AI の例を参照

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/raycast-extensionsを入力して読み込まれたか確認します。

同梱ファイル

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

詳細

Raycast 拡張機能の開発

React、TypeScript、Node.js を使用して Raycast 拡張機能を構築します。

クイックスタート

  1. 拡張機能を作成:「Create Extension」コマンドを Raycast で実行します
  2. インストールして開発:npm install && npm run dev
  3. 編集:src/index.tsx を変更すると、変更が自動的にホットリロードされます
  4. テスト:拡張機能が Raycast のルート検索の一番上に表示されます

UI プリミティブの選び方

必要な機能コンポーネント
検索可能な項目のリストList
画像ギャラリー/グリッドGrid
ユーザー入力の収集Form
リッチコンテンツの表示Detail
ステータスバーへの表示MenuBarExtra
判断ツリー
  1. ユーザーが検索/フィルターする項目を表示しますか?

    • テキスト中心 → List
    • 画像中心 → Grid
  2. ユーザー入力を収集しますか? → Form

  3. 詳細なコンテンツを表示しますか? → Detail(Markdown とメタデータをサポート)

  4. 常に表示されるステータスバーが必要ですか? → MenuBarExtra

基本パターン

ActionPanel を使った List
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>
  );
}
データ取得
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 の統合
import { AI, Clipboard } from "@raycast/api";

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

メモ

AI の利用には Raycast Pro が必要です。environment.canAccess(AI) でアクセス権を確認してください。

リファレンス

詳しいドキュメントについては、以下を参照してください。

例

examples/ に実行可能な例があります。

ファイルパターン
list-with-actions.tsxList と ActionPanel の基本
list-with-detail.tsx詳細パネル付き List
form-with-validation.tsxForm と useForm による検証
detail-with-metadata.tsxDetail の Markdown とメタデータ
grid-with-images.tsxGrid レイアウト
data-fetching.tsxuseFetch のパターン
ai-integration.tsxストリーミングを使った AI.ask
menubar-extra.tsxMenuBarExtra の操作

コメント