关于 raycast-extensions
用于使用 React、TypeScript 和 Raycast API 构建 Raycast 扩展的技能,涵盖 API 参考、界面模式、数据处理及受限 API 的访问检查。
主要功能
- 01React 和 TypeScript 实现指导
- 02查阅 Raycast API 参考
- 03List、Grid、Detail 和 Form 模式
- 04Cache 与 LocalStorage 使用指导
- 05受限 API 访问检查
适用场景
- 01构建可搜索的扩展界面
- 02添加表单和详情视图
- 03为临时或持久数据选择存储方式
- 04通过访问检查实现 AI 或浏览器功能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alexi-build/ raycast-extensions-skill --skill raycast-extensions安装后在 Claude Code 中输入/raycast-extensions确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples.mdreferences/api/alert.mdclipboard.mdcommand-related-utilities.mdactions.mdaction-panel.mdbrowser-extension.mdcaching.mdcolors.mdai.mddetail.mdenvironment.mdkeyboard.mdfeedback.mdhud.mdgrid.mdnavigation.mdpikachu-1.mdpikachu-3.mdpikachu-2.mdform.mdmenu-bar-commands.mdicons-images.mdoauth.mdlist.mdpikachu-4.mdpreferences.mdpikachu.mdsystem-utilities.mdstorage.md详细介绍
Raycast 扩展技能
使用 React、TypeScript 和 Raycast API 构建强大的扩展。
仓库约定
- 更新 Raycast 扩展仓库的
CHANGELOG.md时,始终使用{PR_MERGE_DATE}作为日期占位符。 - 切勿在
CHANGELOG.md中填写具体日历日期。
快速入门(Agent 工作流)
实现或修复 Raycast 功能时,请按以下步骤操作:
- 确定核心组件:判断 UI 是否需要
List、Grid、Detail或Form。 - 查阅参考文档:打开并阅读
references/api/中对应的文件(例如references/api/list.md)。 - 使用默认方案:
- 反馈:加载中、成功或失败时使用
showToast。仅在快速的后台任务完成时使用showHUD。 - 数据:频繁变化或临时数据使用
Cache,持久化的用户数据使用LocalStorage。 - 访问权限:使用前始终检查
environment.canAccess(AI)或environment.canAccess(BrowserExtension)。 - 更新日志:更新 Raycast 扩展仓库的
CHANGELOG.md时,始终使用{PR_MERGE_DATE}作为日期占位符。切勿填写具体日历日期。
- 反馈:加载中、成功或失败时使用
- 实现:使用
@raycast/api组件提供简洁的实现。 - 注明出处:链接到你使用的具体
references/api/*.md文件。
实用模式
1. List 和 Grid(可搜索的 UI)
文本较多的数据使用 List,图片较多的数据使用 Grid。
<List isLoading={isLoading} searchBarPlaceholder="Search items..." throttle>
<List.Item
title="Item Title"
subtitle="Subtitle"
accessories={[{ text: "Tag" }]}
actions={
<ActionPanel>
<Action.Push title="View Details" target={<Detail markdown="# Details" />} />
<Action.CopyToClipboard title="Copy" content="value" />
</ActionPanel>
}
/>
</List>
2. Detail(富文本 Markdown)
用于展示长篇内容或项目详情。
<Detail
isLoading={isLoading}
markdown="# Heading\nContent here."
metadata={
<Detail.Metadata>
<Detail.Metadata.Label title="Status" text="Active" icon={Icon.Checkmark} />
</Detail.Metadata>
}
/>
3. Form(用户输入)
始终包含 SubmitForm 操作。
<Form
actions={
<ActionPanel>
<Action.SubmitForm onSubmit={(values) => console.log(values)} />
</ActionPanel>
}
>
<Form.TextField id="title" title="Title" placeholder="Enter title" />
<Form.TextArea id="description" title="Description" />
</Form>
4. 反馈与交互
大多数情况下优先使用 showToast 提供反馈。
// Success/Failure
await showToast({ style: Toast.Style.Success, title: "Success!" });
// HUD (Overlay)
await showHUD("Done!");
5. 数据持久化
使用 Cache 提升性能,使用 LocalStorage 实现持久化。
// Cache (Sync/Transient)
const cache = new Cache();
cache.set("key", "value");
// LocalStorage (Async/Persistent)
await LocalStorage.setItem("key", "value");
6. AI 与浏览器扩展(受限 API)
始终使用 environment.canAccess 检查进行保护。
if (environment.canAccess(AI)) {
const result = await AI.ask("Prompt");
}
if (environment.canAccess(BrowserExtension)) {
const tabs = await BrowserExtension.getTabs();
}
更多资源
API 参考目录
- UI 组件
- 交互
- 实用工具与服务
- 数据与配置
- 高级
示例
如需查看结合多个组件和 API 的端到端示例,请参阅 examples.md。
评论
支持 Markdown