Communitygithub.com

Codex Phone Lab

在真实手机上通过 Expo/React Native 实时预览构建和迭代移动应用。当 Codex 需要创建手机应用、原型 iPhone/Android 应用、在物理手机上运行应用、展示 Expo Go 二维码、设置移动开发工作流,或从提示词直接生成可运行的应用而无需 Xcode/TestFlight/App Store 分发时使用。

Codex Phone Lab 是什么?

Codex Phone Lab 是一个 AI Agent 技能,专为快速将产品提示转化为可在物理手机上通过 Expo Go 打开的 React Native/Expo 应用而设计。它优化了“提示 → 应用 → 手机”的快速循环,优先使用 Expo Go 进行实时预览,避免 Xcode、TestFlight 或 App Store 分发的摩擦。该技能支持自动检测现有 Expo 项目、创建新项目(默认为 SDK 54 模板)、通过 LAN 或隧道模式启动手机预览,并在编辑时保持开发服务器运行以实时查看变化。它还指导用户构建移动友好的界面,包括安全区域、实际交互和状态处理,并根据用户需求推荐最轻量的分发路径(Expo Go QR、开发构建、TestFlight 或应用商店)。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Kappaemme-git/codex-phone-lab/tree/HEAD/skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Codex Phone Lab 是做什么的?

使用此技能将产品提示转换为 React Native/Expo 应用,用户可以通过 Expo Go 在物理手机上打开。优先考虑快速的“提示 → 应用 → 手机”循环,然后再考虑模拟器、原生构建、TestFlight 或应用商店分发。

运行模式

除非用户明确需要原生 iOS/Android 模块,否则优先选择此路径:

  1. 使用 scripts/doctor.sh 检查本地先决条件。
  2. 如果没有移动端项目,使用 scripts/new-expo-app.sh <app-name> 创建一个 Expo 应用。默认使用 expo-template-default@sdk-54,以确保在此工作流中使用的当前 Expo Go 版本中打开。
  3. 快速构建第一个可用的屏幕;不要创建登录页面。
  4. 使用 scripts/start-phone-preview.sh [lan|tunnel|local] 启动手机预览。
  5. 在编辑时保持开发服务器运行。使用 Metro/Expo 日志修复运行时错误。
  6. 告诉用户安装 Expo Go,扫描二维码,并保持手机与 LAN 模式在同一个网络中。
  7. 以小的可见变化迭代:编辑、观察日志、重新加载、修复。

项目检测

在创建新应用之前,检查当前目录:

  • 包含 expo 依赖的 package.json:视为现有 Expo 应用。
  • 包含 app.json、app.config.*、app/ 或 expo-router:视为 Expo 应用,即使需要安装依赖。
  • 包含 ios/ 和 android/ 但没有 Expo:仅询问用户是否需要 Expo 迁移;否则保留现有栈。
  • 空目录:使用 SDK 54 模板创建一个新的 Expo 应用。

手机预览

对于首次“惊叹”演示,使用 Expo Go,因为它避免了 App Store/TestFlight 的摩擦。

默认使用 SDK 54。当前工作流中的 Expo Go 拒绝 SDK 55 项目,提示“项目与此版本的 Expo Go 不兼容”。仅当已知用户的 Expo Go 支持更新的 SDK 时,才覆盖设置:

CODEX_PHONE_LAB_EXPO_TEMPLATE=expo-template-default@sdk-55 <skill-dir>/scripts/new-expo-app.sh my-app

运行:

<skill-dir>/scripts/start-phone-preview.sh lan

当手机不在同一 Wi-Fi 或 LAN 模式无法连接时,使用 tunnel。隧道模式可能要求 Expo 安装隧道依赖。

用户工作流:

  1. 在手机上安装 Expo Go。
  2. 运行预览命令。
  3. 从 Expo Go 或手机相机扫描二维码。
  4. 保持终端打开;应用编辑会实时刷新。

应用构建指导

使第一个屏幕感觉像一个真正的应用:

  • 使用安全区域和移动端尺寸布局。
  • 构建实际交互:表单、列表、导航、开关、计时器、模拟数据或状态。
  • 当工作流程暗示时,包含加载、空状态和错误状态。
  • 保持排版紧凑以适应移动端。
  • 避免网页登录页面模式、过大的英雄区域、嵌套卡片和解释性应用内文字。
  • 当模板已包含 Expo Router 时,优先使用它来构建多屏幕应用。

分发决策

选择与用户目标最匹配的最轻量路径:

  • 在用户手机上快速原型:Expo Go 二维码。
  • 包含自定义原生模块的应用:Expo 开发构建。
  • iPhone 上的测试用户:通过 EAS/Apple Developer 账户的 TestFlight。
  • 公开发布:App Store / Play Store 提交。

不要暗示 Expo Go 是生产环境分发。它只是实时开发预览。

参考

在决定使用 Expo Go、开发构建、TestFlight 还是应用商店发布时,阅读 references/expo-phone-workflow.md。

相关技能