
OpenAI's Codex Security CLI and TypeScript SDK for finding, validating, and fixing security vulnerabilities. npm: https://www.npmjs.com/package/@openai/codex-security
Codex Security helps you find, investigate, and fix vulnerabilities in your code.
Use its security workflows in Codex, or automate them with the
@openai/codex-security CLI and TypeScript SDK.
SECURITY.md policies and save threat models for later review.Open your repository in a Codex session with the Codex Security plugin enabled, then ask:
Run a Codex Security scan on this repository, focusing on authentication and authorization. Return the saved report, source evidence, and coverage limits.
A completed scan saves a report and findings. Read the report for source evidence and exclusions, then request a patch or ask Codex to verify an existing fix. See the agent workflow guide for setup, task selection, and recovery.
Requires Node.js 22.13.0+ within 22.x, or Node.js 24.x or 26.x, and Python 3.10+.
Python 3.10 also requires tomli.
Install the CLI globally and sign in:
npm install --global @openai/codex-security
cs login
Run your first scan from the repository directory:
cs scan .
When the scan completes, open the Markdown file at the REPORT path in the
terminal. Run cs scans show from the same repository to find its latest
completed scan again. See scan scope and follow-up work
for how to interpret exclusions in the report.
cs and codex-security run the same CLI. If the short name conflicts with
another command, use codex-security. To skip the global install, or if npm
reports an EEXIST conflict, use npx @openai/codex-security in place of
cs for both login and scanning.
For CI, set OPENAI_API_KEY or CODEX_API_KEY in the scan process's environment.
For a headless machine, see device or SSH login.
Choose a scope and scan mode:
# Scan selected paths.
cs scan . --path src --path tests
# Scan committed changes from a base revision to HEAD.
cs scan . --diff origin/main
# Run a deep scan of the repository.
cs scan . --mode deep
Use cs scan . --max-time 15 for an advisory 15-minute Standard investigation
allowance. See investigation time
for timing semantics and Deep Scan limits.
Use cs --help to browse commands, or cs scan --help
for scan options, cost limits, and patching after a scan.
For an application spread across repositories, see review one system across repositories. Use bulk scans for independent repository reviews in one resumable campaign.
Scans use existing root and component SECURITY.md guidance. To write or
revise it, see Generate SECURITY.md.
Some cybersecurity requests and protected findings require Trusted Access for Cyber. For accounts with Daybreak access, see Daybreak opt-in for the Codex toggle and Cyber access programs to select a program explicitly.
Install the package locally in your TypeScript project:
npm install @openai/codex-security
Then import it:
import { CodexSecurity } from "@openai/codex-security";
const security = new CodexSecurity();
try {
const result = await security.run("/path/to/repository");
console.log(result.reportPath);
} finally {
await security.close();
}
The SDK guide includes deep-scan configuration, validation, severity classification, owner suggestions, and result handling.
When Codex Security Cloud is available to your account, the Security plugin's
$cloud-findings skill can read findings, reports, recorded assignment and
verification, and scan status in Codex desktop or the Codex CLI. Cloud is an
optional connection; local scans work without it.
See Cloud connection setup and CLI reads for authentication requirements and a read-only example.
Use policy to draft a new SECURITY.md or update an existing one. Use --path
to select a component:
cs policy .
cs policy . --path services/api --knowledge-base architecture.md
The command saves its draft outside the repository and leaves existing files
unchanged. Review the diff and notes, edit the draft, then copy only SECURITY.md
to the displayed Policy target. Keep the saved architecture and threat-model
documents outside the repository.
Scans already use root and component SECURITY.md files. Keep your current policy
if it needs no changes. When updating it, preserve its vulnerability-reporting
instructions. If the command says the policy is already up to date, no copy is
needed.
Files at .github/SECURITY.md or docs/SECURITY.md often contain reporting
instructions. Preserve them when drafting a policy; those locations do not
automatically provide repository-wide scan guidance. See the
policy guide for policy
locations, unanswered questions, saved artifacts, and SDK usage.
Scans and policy generation save threat models with their results. Export a saved model without starting another analysis:
cs export --scan SCAN_ID --artifact threat-model --output threatmodel.md
Omit --scan to use the current repository's latest completed scan. The
export guide also covers findings,
SARIF output for CI, and the offline TypeScript API. For ServiceNow Application
Vulnerability Response, see Export findings for ServiceNow.
To run a weekly repository scan on GitHub-hosted Ubuntu: