AI 编程教程中文版
官方教程中文版产品入口

配置本地运行环境

Local environments 用来为 worktrees 配置 setup steps,也可以为 project 配置常用 actions。

这一篇用 8 分钟换什么:把 Codex App 的 local environment 拆成两条独立配置——setup scripts(每次新 worktree 自动跑)+ actions(top bar 一键执行的常用任务)。读完后你能写出一份可以提交到仓库给团队复用的 .codex/,而不是每次 setup 都靠口头交接。

Local environments 用来为 worktrees 配置 setup steps,也可以为 project 配置常用 actions。

配置入口在 Codex App settings pane。生成的配置文件可以提交到项目的 Git repository,方便团队共享。

flowchart LR
    Repo["📁 repo/.codex/"]
    Setup["setup scripts<br/>(自动)"]
    Actions["actions<br/>(手动 / top bar)"]
    WT["new worktree<br/>每次 thread 启动"]
    UseDev["💻 dev / build / test<br/>integrated terminal"]
    Repo --> Setup --> WT
    Repo --> Actions --> UseDev
    WT -.->|依赖就绪| UseDev

Codex 会把这份配置存放在 project root 的 .codex folder 中。如果你的 repository 包含多个 projects,打开那个包含 shared .codex folder 的 project directory。

Local environments 的重点是让 worktree 和 team members 拥有可重复的本地项目启动方式。它不是 secret 管理器,也不是 CI 配置替代品,而是 Codex App 里给 setup scripts 和 actions 提供的项目级配置。

Setup scripts

worktrees 和 local tasks 运行在不同目录里,所以新 worktree 可能还没完成 setup,也可能缺少 dependencies,或者缺少未提交到 repository 的文件。

当 Codex 在新 thread 开始时创建 new worktree,setup scripts 会自动运行。

setup script 用来执行配置环境所需的命令,例如:

  • 安装 dependencies。
  • 运行 build process。
  • 生成项目运行需要的本地文件。

TypeScript project 示例:

npm install
npm run build

如果 setup 和平台相关,可以分别为 macOS、Windows 或 Linux 定义 setup scripts,用它们覆盖 default。

setup script 写什么

适合写进 setup script:

  • 安装依赖。
  • 生成本地需要但可复现的文件。
  • 运行初始 build。
  • 初始化子模块或 workspace。
  • 检查必要工具版本。

不适合写进 setup script:

  • 写入长期 secret。
  • 修改全局系统设置。
  • 删除用户文件。
  • 启动长驻服务。
  • 做需要人工确认的发布操作。

setup script 会在 Codex 创建新 worktree 时自动运行,所以必须可重复、可失败、可排查。

多平台策略

如果项目跨 macOS、Windows、Linux,优先把公共步骤写成默认 setup,再为平台差异单独覆盖。

常见差异包括:

  • shell 语法。
  • package manager。
  • 本地路径。
  • simulator 或 browser 可用性。
  • native dependency installation。

不要在一个脚本里堆大量平台判断。如果平台差异明显,拆成 platform-specific scripts 更清晰。

Actions

Actions 用来定义项目常用任务,例如启动 app development server,或运行 test suite。

这些 actions 会显示在 Codex App top bar,方便快速启动。它们会在 App 的 integrated terminal 中运行。

Actions 的价值是减少重复输入。常见例子:

  • 触发项目 build。
  • 启动 development server。
  • 跑 test suite。

一次性 quick debugging 可以直接使用 integrated terminal。

官方截图:

Node.js project 可以创建一个名为 "Run" 的 action,脚本如下:

npm start

如果 action 的 commands 和平台相关,可以分别为 macOS、Windows 和 Linux 定义 platform-specific scripts。

为了方便识别 actions,可以为每个 action 选择一个相关 icon。

常用 actions 设计

建议至少配置这几类:

Action示例命令用途
Installpnpm install依赖初始化
Buildpnpm run build验证生产构建
Devpnpm run dev启动开发服务器
Testpnpm test跑测试
Lintpnpm run lint静态检查
Typecheckpnpm run types:check类型检查

项目不一定全都需要,但每个 action 都应该对应团队真实使用的命令。不要为了“看起来完整”配置不会跑的命令。

Monorepo 注意事项

官方文档说明:local environment configuration 必须位于 project root 的 .codex folder 中。

monorepo 常见问题是打开错目录:

repo/
  .codex/
  apps/web/
  packages/ui/

如果 .codexrepo/,就从 repo/ 打开项目;如果某个 app 有自己的 .codex,就从 app directory 打开。Codex App 只会在当前 project 对应目录查找共享配置。

和 worktrees 的关系

worktree 是新的 checkout,通常只包含 Git 跟踪文件。没有提交到仓库的依赖、缓存、生成文件、本地 .env 都不会自然出现。

local environment 的 setup scripts 用来弥补这个差异:

  1. Codex 创建 worktree。
  2. setup script 自动运行。
  3. 依赖和构建产物准备好。
  4. thread 开始执行任务。

如果 worktree 里代码跑不起来,优先检查 setup scripts,而不是直接 handoff 回 Local。

安全边界

local environment 配置可以 check into Git repo 共享,但不要把 secret 写进去。

推荐:

  • 用环境变量名占位。
  • 在凭据系统、Keychain、CI secret 或本机环境里保存真实值。
  • setup script 只检查变量是否存在,不打印变量值。
  • logs 里不输出 token、账号、私有路径。

示例:

if [ -z "${OPENAI_API_KEY:-}" ]; then
  echo "OPENAI_API_KEY is not set"
  exit 1
fi

排障

现象可能原因处理
teammate 的配置没有生效.codex 不在当前 project root重新从包含 .codex 的目录打开项目
worktree 缺依赖setup script 没安装依赖补 install/build 步骤
action 跑错目录monorepo 打开层级不对确认 project root 和 package path
setup 每次都很慢脚本做了过多工作拆成必要 setup 和手动 action
secret 泄露到日志脚本 echo 了敏感值只检查存在性,不打印值

完成标准

  • .codex 位于正确 project root。
  • setup script 可重复运行。
  • worktree 新建后能安装依赖并完成最小 build。
  • 常用 actions 覆盖 build、dev、test 或项目真实等价命令。
  • 平台差异已拆分或明确说明。
  • 配置中没有 hard-coded secret。

官方资料

接下来去哪

本页目录