跳转到内容

Codex 安全 CLI 快速入门

身份 非官方简体中文镜像
翻译状态 AI 翻译
来源版本 官方未提供
同步日期 2026-07-31
官方原文 learn.chatgpt.com

如需完整文档索引,请参阅 llms.txt。文档页面的 Markdown 版本可通过在页面后追加 .md 来获取 URL。

Codex Security 可帮助安全和工程团队查找、确认并修复 漏洞。使用它的命令行界面(CLI)来扫描 你拥有或有权评估的代码库,持续审查发现项, 并在变更落地前进行检查。

@openai/codex-security 包是公开的。运行扫描需要 Codex Security 访问权限。若要在 Codex中进行交互式扫描,请从 Codex Security 插件快速入门开始。对于已连接的 GitHub 代码库,请参阅 Codex Security 云端设置

该 CLI 要求 Node.js 22 或更高版本。运行扫描或导出发现项还 需要 Python 3.10 或更高版本。更多详情,请参阅 身份验证和 先决条件

安装已发布的包:

Terminal window
npm install @openai/codex-security

检查已安装的版本:

Terminal window
npx @openai/codex-security --version

列出可用命令:

Terminal window
npx @openai/codex-security --help

使用 npx @openai/codex-security scan --helpnpx @openai/codex-security export --help 查看完整命令帮助。 CLI 参考 涵盖每个参数、输出 格式和退出码。

本地使用时,请使用你的 ChatGPT 账户登录:

Terminal window
npx @openai/codex-security login

在远程或无头机器上,请使用设备身份验证:

Terminal window
npx @openai/codex-security login --device-auth

对于 CI 和其他自动化工作流,请设置一个 OpenAI API 密钥:

Terminal window
export OPENAI_API_KEY="<your-api-key>"

将 API 密钥保存在你的 shell 或密钥管理器中。 Codex Security 也可以复用 现有的基于文件的 Codex 登录。当同时有已存储的 ChatGPT 登录和 环境 API 密钥可用时,带文本输出的交互式扫描会询问 使用哪一个。 CI、 JSON 和 JSONL 扫描以及其他无人值守扫描默认使用 API 密钥。

当同时设置了 ChatGPT 密钥时,如需使用你的 API 登录,请显式选择它:

Terminal window
npx @openai/codex-security scan . --auth chatgpt

如需要求使用环境 API 密钥,请选择 API-key 身份验证:

Terminal window
npx @openai/codex-security scan . --auth api-key

如需将已存储的登录设为自动默认值,请取消设置两个环境 API 密钥:

Terminal window
unset OPENAI_API_KEY CODEX_API_KEY

根据你的账户和代码库,完整代码库扫描可能还 需要 Trusted Access for Cyber。登录或 设置 API 密钥并不会授予该访问权限。

选择要扫描的代码库和用于写入结果的目录。

Terminal window
REPOSITORY=/path/to/repository
SCAN_DIR=/path/outside/repository/codex-security-results

如果省略 --output-dir, Codex Security 会将结果保存在自己的持久 状态目录中。结果可能包含源码摘录和漏洞详情, 因此请选择私有位置和合适的保留策略。

如果默认状态目录不可写,请选择一个位于所扫描代码库 之外的可写目录:

Terminal window
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-state

开始扫描前,请检查代码库、目标和输出目录:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --dry-run

试运行会检查本地输入,而不会启动 Codex、加载凭据, 或探测插件的 Python 解释器。

运行标准扫描,并将结果保存在所选目录中:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR"

默认情况下, CLI 会将扫描进度和完成摘要写入 stderr。 它不会将完整扫描结果打印到 stdout。完成的扫描会打印类似如下的 摘要:

codex-security: Findings: 2 (1 high, 1 medium). Coverage: complete.
codex-security: Elapsed: 42s.
codex-security: Report: /path/outside/repository/codex-security-results/report.md
codex-security: Results: /path/outside/repository/codex-security-results

可用时会显示 Token 用量和估算成本。如需以机器可读的 形式打印完整 JSON结果,请显式请求结构化输出:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --json

扫描默认仅生成报告,因此发现项仍可供本地 审查。当你准备好在 中运行扫描时,可能需要添加严重性阈值 CI

扫描默认使用 gpt-5.6-sol 并采用 xhigh 推理强度。当任务需要时,请选择 其他模型和强度:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" \
--model gpt-5.6-terra \
--effort high

支持的强度级别包括 minimallowmediumhighxhigh

打开 report.md 查看可读结果。扫描目录还包含自动化使用的 结构化文件:

codex-security-results/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif # when produced
  • scan-manifest.json 记录目标、范围、生成方和已封存的 工件。
  • findings.json 记录每个发现项的严重性、置信度、位置、证据和 修复措施。
  • coverage.json 记录已审查的表面、排除项、延期工作、未决 问题和覆盖完整性。

覆盖范围可以是 completepartialunknown。在将扫描视为审查证据前,请阅读任何延期区域或 未决问题。 该 CLI 参考 描述了 完整工件和输出契约。

当代码库包含独立服务或包时,请使用路径扫描:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" \
--path services/billing \
--path packages/auth

审查基础修订版本与 HEAD之间已提交的变更:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" --diff origin/main --head HEAD

审查相对于 HEAD的已暂存和未暂存变更:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" --working-tree --base HEAD

Diff 和工作树扫描要求代码库参数是 Git 工作树根目录。开始 diff 扫描前,请获取所选修订版本。

当代码库或路径需要更广泛审查时,请使用深度模式:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" --mode deep

深度模式支持代码库和路径目标,不支持 diff 或工作树扫描。

提供架构文档、威胁模型或安全策略作为扫描 上下文。这有助于 Codex Security 根据你的系统 实际运行方式评估发现项:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policies

使用 --max-cost 在估算模型成本超过 中的限制时停止扫描 USD:

Terminal window
npx @openai/codex-security scan "$REPOSITORY" --max-cost 5

已在进行中的请求可能会在超过限制后完成。 Codex Security 会保留 扫描停止时已有的结果。

为你的代码库安装 Git pre-commit 安全检查:

Terminal window
npx @openai/codex-security install-hook

该检查会在每次提交前扫描已暂存和未暂存的变更。它会阻止 高严重性发现项和扫描错误,且不会替换现有的 pre-commit 脚本。

在发现代码库前,请登录 GitHub :

Terminal window
gh auth login

从你的 GitHub 账户或组织中发现并选择代码库:

Terminal window
npx @openai/codex-security bulk-scan

交互式流程会排除已归档的代码库和 fork。它会要求你 在扫描前确认所选代码库。

如需扫描已准备好的代码库列表,请提供 CSV 和输出目录:

Terminal window
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4

再次运行同一命令可恢复现有批量扫描。已完成且结果工件完整的 代码库不会再次扫描。若要重试临时代码库或扫描错误,请添加 --max-attempts 3

关于 GitHub 发现、 CSV 准备、活动结果和 Docker 设置,请参阅 运行批量安全扫描

如果你的访问权限包含 Codex Security Docker 镜像,请在 Linux Docker 主机上使用提供的 加固 Compose 配置和安全配置文件。 主机必须支持非特权用户命名空间创建。提供一个代码库 CSV,将结果和登录状态保存在持久挂载目录中,并 通过你的环境或密钥管理器提供凭据:

Terminal window
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4

容器会在无提示的情况下运行批量扫描。当 CLI 你想要交互式发现代码库时,请在 Docker 外部使用 。对于私有代码库, 请通过你的环境或密钥 GH_TOKEN 管理器提供 GITHUB_TOKEN 或 。该 登录要求(包括账户和代码库 访问权限)也适用于容器化扫描。

列出你的代码库中已保存的扫描:

Terminal window
npx @openai/codex-security scans list "$REPOSITORY"

从结果中复制一个扫描 ID 以检查其发现项和配置:

Terminal window
npx @openai/codex-security scans show SCAN_ID

若要将已审查的发现项标记为误报,请解释该发现为何不 适用:

Terminal window
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The route already checks permissions"

后续扫描会考虑该解释,但仍会重新检查当前代码。

使用原始配置,对当前检出运行同一扫描:

Terminal window
npx @openai/codex-security scans rerun SCAN_ID

若要比较两次扫描,请先匹配具有相同根本原因的发现项:

Terminal window
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_ID

然后检查哪些发现项是新增、持续存在、重新打开、已解决或未知:

Terminal window
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

关于批量扫描 CSV 格式、扫描历史筛选器和命令选项,请参阅 该 CLI 参考

继续使用符合你目标的工作流:

  • 运行批量安全扫描 以发现 GitHub 代码库或扫描固定的 CSV 清单。
  • 阅读 CLI FAQ 以获取有关扫描历史、 误报反馈、覆盖范围和修复验证的答案。
  • 在 CI 中运行扫描,以审查拉取请求、保留 结果并设置严重性策略。
  • 使用 CLI 参考 来检查每个标志、 输出格式、工件和退出码。
  • 集成 TypeScript SDK 以从 应用程序或开发者工具运行扫描。