📌 项目地址:expo/skills | ⭐ 3,470 颗星 | 🔧 Shell | 📜 未标注
它解决什么问题
用 Cursor 或 Claude Code 写过 Expo 项目的人多半遇到过这种情况:agent 给你的代码混着 react-navigation 和 expo-router 的写法,EAS 配置文件格式过时,SDK 升级建议照着两 年前的文档来。原因不难猜,通用模型的训练数据里,Expo 生态的正确实践浓度太低,而且这个生态更新太快。
expo/skills(3470 star)就是 Expo 团队针对这个问题给出的官方答案:一组 SKILL.md 文件,把“什么时候用哪个 Expo API、常见工作流怎么搭、EAS / React Native / iOS / Android 各有什么硬约束”这类知识直接喂给 agent。
定位要说清楚:它不替代官方文档。Expo 文档、Expo CLI、EAS CLI 仍然是权威来源,这套 skills 的作用是让 agent 正确地应用它们。可以理解为 Expo 官方写的操作手册,跟着官方维护,比社区里拼凑的 prompt 靠谱。
怎么装
按你用的 agent 分两条路:Claude Code 和 Codex 走插件市场,更新由市场自动处理;Cursor、OpenCode、Copilot、Windsurf、Gemini、Cline 等其他 agent 用 skills CLI。
大多数 agent(在项目根目录运行):
npx skills@latest add expo/skills --skill '*'
--skill '*' 会装上全部 Expo skills,但不会装到所有 agent。CLI 会问你要装到哪,想跳过提问就加 --agent 指定。装完记得重启或刷新 agent 会话,不然它发现不了新装的 SKILL.md。
Claude Code:
claude plugin install expo@claude-plugins-official
也可以在 Claude Code 里执行 /plugin install expo@claude-plugins-official。
Codex:
codex plugin add expo@openai-curated
或者在 Codex 里打开 /plugins,从 OpenAI-curated 市场装 expo。
更新方面,插件装法由各自市场负责;CLI 装法用 npx skills@latest update,只想更新某一个就带上名字,比如 npx skills@latest update expo-router。
装完先问这四个问题
README 给了四个可以直接拿来验证效果的提问:
- “Build a native-feeling Expo Router screen with tabs, modals, and animations.”
- “Create an EAS workflow that builds previews on pull requests.”
- “Help me upgrade this app to the latest Expo SDK.”
- “Check whether this EAS Update rollout is healthy.”
你不用手动指定用哪个 skill,agent 会根据任务上下文和每个 skill 自带的描述自己选。
内部结构:免费和付费划得很清楚
Skills 分两组,分组的目的就是划清免费和付费的边界。每个 skill 的描述带相同的标签,涉及付费服务的 skill 开头都有一段成本和套餐限制说明。这一点做得比较少见:大多数同类项目对“哪些功能要花钱”含糊其辞,这里直接写进 skill 文件本身,agent 在给出方案前就能感知到。
入口是一个叫 expo-overview 的 skill,里面放了 Router 结构和通用配置规则。任何 Expo/EAS 任务都先加载它,再路由到具体 skill。当你的需求比较模糊时,agent 也会从这个入口开始。
我的判断
判断要不要装很简单:你用 AI agent 写 Expo / React Native 项目,就装,一条命令的事;你写原生 iOS / Android 或 Flutter,这个项目跟你没关系。
多说一句趋势。framework 团队直接维护自家 agent skills 这件事,2025 年开始多了起来,Expo 是其中动作较快的一个。这背后的逻辑是:与其等模型训练数据追上框架迭代速度,不如把正确实践以 skill 形式实时下发。对快速迭代的框架来说,这可能比等下一次模型发布更实际。