Labsco
openai logo

codex-expo-run-actions

✓ Official4,081

by openai · part of openai/plugins

Wire Expo projects into the Codex app with project-local run scripts and .codex/environments/environment.toml actions. Use when the user wants the Codex app Run button, build/run actions, action buttons, or a stable Expo start/run workflow from Codex.

🧩 One of 7 skills in the openai/plugins package — works on its own, and pairs well with its siblings.

This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.

Codex Run Actions for Expo

Use this skill to connect an Expo project to the Codex app action bar.

The goal is one project-local script plus .codex/environments/environment.toml, so the user can press Run in the Codex app and see the Expo CLI / Metro logs in an action terminal.

Workflow

  1. Confirm the current workspace is an Expo app.

    • Look for package.json.
    • Look for app.json, app.config.js, app.config.ts, or expo in package.json.
    • Do not wire the Codex action at a monorepo root if the Expo app is in a child package.
  2. Discover the package runner.

    • Prefer the package manager declared in packageManager.
    • Otherwise infer from lockfiles.
    • The generated run script should still have a safe fallback to npx expo.
  3. Create or update script/build_and_run.sh.

    • Use the reference file for the script shape.
    • Default no-argument mode starts the Expo dev server: expo start.
    • Keep the dev server in the foreground so the Codex action terminal owns logs and Ctrl-C behavior.
    • Support optional modes for direct buttons:
      • --ios starts Expo and opens iOS simulator.
      • --android starts Expo and opens Android.
      • --web starts Expo for web.
      • --dev-client starts in dev-client mode.
      • --tunnel starts a tunnel.
      • --export-web exports web.
  4. Write .codex/environments/environment.toml.

    • Always add or update one primary action named Run.
    • Wire Run to ./script/build_and_run.sh.
    • Add direct Run iOS, Run Android, Run Web, or Run Dev Client actions only when the user asks for those buttons or the project clearly needs them.
    • If the environment file already exists, update the existing matching action instead of duplicating it.
  5. Use the action script as the default local run path.

    • After wiring, run ./script/build_and_run.sh --help or a short non-server mode if you need to sanity-check syntax.
    • Do not start a long-lived Metro server during a setup-only task unless the user asked you to run the app.

References

  • references/expo-run-button-bootstrap.md: canonical Expo script/build_and_run.sh and Codex environment action examples.

Guardrails

  • Try Expo Go / expo start first; do not default the Codex Run button to expo run:ios, expo run:android, prebuild, or EAS Build.
  • Do not wire cloud actions such as eas build, eas submit, or store deployment into Codex buttons unless the user explicitly asks and accepts the auth / time / cost tradeoff.
  • Do not create a nested git repo.
  • Do not put secrets in .codex/environments/environment.toml or in the run script.
  • Do not background Metro from the run script; the action terminal should show the active server logs.
  • Do not hard-code npm if the project uses pnpm, yarn, or bun.

Output Expectations

When setup changes are made, summarize:

  • the Expo app root you wired
  • the run script path
  • the Codex environment file path
  • the actions added or updated
  • how to launch the same path from shell