﻿---
title: "CODEX_API_KEY 按次注入，CODEX_HOME 必须先建好"
summary: "exec / review / SDK 用行内密钥，不要写成整个 job 的 env。设了 CODEX_HOME 却没 mkdir，CLI 会直接起不来。"
category: security
level: intermediate
surfaces: [cli, ci]
tags: ["CODEX_API_KEY", "CODEX_HOME", "CI"]
canonical: /tips/api-key-inline-env/
---

# CODEX_API_KEY 按次注入，CODEX_HOME 必须先建好

exec / review / SDK 用行内密钥，不要写成整个 job 的 env。设了 CODEX_HOME 却没 mkdir，CLI 会直接起不来。

状态根目录必须已经存在：

```bash
mkdir -p "$RUNNER_TEMP/codex-home"
export CODEX_HOME="$RUNNER_TEMP/codex-home"
```

`CODEX_API_KEY` 给 `codex exec`、`codex review` 和 TypeScript SDK。仓库会跑不受信任代码时，写在这一条命令前面，不要 export 进整个 job 或 shell profile：

```bash
CODEX_API_KEY="$SECRET" codex exec --ephemeral "只跑失败的测试并总结。"
```

可信自动化若用 ChatGPT / Codex access token：

```bash
printenv CODEX_ACCESS_TOKEN | codex login --with-access-token
```

装脚本跳过提示：

```bash
curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_NON_INTERACTIVE=1 sh
```

SQLite 状态默认跟 `CODEX_HOME`；要拆开用 `CODEX_SQLITE_HOME`（配置里的 `sqlite_home` 优先）。排错可设 `RUST_LOG=codex_core=debug,codex_tui=debug`，明文 TUI 日志仍要显式 `log_dir`。

## 来源

- [OpenAI · Environment variables](https://learn.chatgpt.com/docs/config-file/environment-variables)
