Skip to main content

openai-codex-security

OpenAI Codex Security CLI and SDK for AI-powered vulnerability scanning, validation, and automated security fixes in codebases

跳到安装

来源信息

仓库
reason-machines/security-skills
最近来源活动
2026年7月30日 00:34
检测到的 SKILL.md 语言
英语
星标
12
分支
1

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
openai-codex-security
description
OpenAI Codex Security CLI and SDK for AI-powered vulnerability scanning, validation, and automated security fixes in codebases
triggers
["scan my code for security vulnerabilities","run a codex security scan","find security issues with openai codex","use codex security to check for vulnerabilities","analyze my codebase for security flaws","run openai security scanner on this project","detect and fix security vulnerabilities with codex","perform an ai-powered security audit"]
# OpenAI Codex Security > Skill by [ara.so](https://ara.so) — Security Skills collection OpenAI Codex Security is an AI-powered CLI and TypeScript SDK that finds, validates, and fixes security vulnerabilities in your codebase. It leverages OpenAI's models to perform intelligent code scanning, vulnerability detection, and automated security remediation. ## Installation Requires Node.js 22.13.0+ (22.x), 24.x, or 26.x; Python 3.10+; and access to Codex Security. ```bash npm install @openai/codex-security ``` For global CLI access: ```bash npm install -g @openai/codex-security ``` ## Authentication ### Interactive Login (Local Development) ```bash npx @openai/codex-security login ``` This stores credentials in Codex's credential home or system keyring for persistent access. ### API Key (CI/CD) Set environment variables instead of interactive login: ```bash export OPENAI_API_KEY=your_key_here # or export CODEX_API_KEY=your_key_here ``` Environment API keys take precedence in non-interactive environments and are never persisted. ### Credential Selection If both ChatGPT sign-in and API key are available: ```bash # Use ChatGPT credentials npx @openai/codex-security scan . --auth chatgpt # Use API key npx @openai/codex-security scan . --auth api-key ``` To make ChatGPT sign-in the default: ```bash unset OPENAI_API_KEY CODEX_API_KEY ``` ## CLI Commands ### Basic Scan Scan current directory: ```bash npx @openai/codex-security scan . ``` Scan specific directory: ```bash npx @openai/codex-security scan /path/to/project ``` ### Advanced Scanning Options Use specific model with higher effort: ```bash npx @openai/codex-security scan . --model gpt-5.6-terra --effort high ``` Available effort levels: - `low` - Quick scan, fewer checks - `medium` - Balanced (default) - `high` - Thorough scan, maximum coverage ### Scan Output Scan history is stored in the Codex Security workbench state directory. If the directory is not writable, configure an alternative: ```bash export CODEX_SECURITY_STATE_DIR=/path/to/writable/dir npx @openai/codex-security scan . ``` ## TypeScript SDK ### Basic Usage ```typescript import { CodexSecurity } from "@openai/codex-security"; const security = new CodexSecurity(); const result = await security.run("."); console.log(`Scan complete. Report: ${result.reportPath}`); console.log(`Vulnerabilities found: ${result.vulnerabilities.length}`); await security.close(); ``` ### Scan with Options ```typescript import { CodexSecurity } from "@openai/codex-security"; const security = new CodexSecurity({ model: "gpt-5.6-terra", effort: "high", auth: "api-key" }); const result = await security.run("/path/to/project"); // Process vulnerabilities for (const vuln of result.vulnerabilities) { console.log(`${vuln.severity}: ${vuln.title}`); console.log(` File: ${vuln.file}:${vuln.line}`); console.log(` Description: ${vuln.description}`); } await security.close(); ``` ### Scan Specific Files ```typescript import { CodexSecurity } from "@openai/codex-security"; const security = new CodexSecurity(); const result = await security.run(".", { files: [ "src/auth.ts", "src/api/users.ts", "lib/db.ts" ] }); console.log(`Scanned ${result.filesScanned} files`); await security.close(); ``` ### Using Environment Variables for Authentication ```typescript import { CodexSecurity } from "@openai/codex-security"; // Ensure OPENAI_API_KEY or CODEX_API_KEY is set if (!process.env.OPENAI_API_KEY && !process.env.CODEX_API_KEY) { throw new Error("API key required"); } const security = new CodexSecurity({ auth: "api-key" }); const result = await security.run("."); await security.close(); ``` ### Handling Scan Results ```typescript import { CodexSecurity } from "@openai/codex-security"; import fs from "fs/promises"; const security = new CodexSecurity(); const result = await security.run("."); // Filter by severity const critical = result.vulnerabilities.filter(v => v.severity === "critical"); const high = result.vulnerabilities.filter(v => v.severity === "high"); console.log(`Critical: ${critical.length}, High: ${high.length}`); // Export to JSON await fs.writeFile( "security-report.json", JSON.stringify(result, null, 2) ); // Check if scan passed if (result.vulnerabilities.length === 0) { console.log("✅ No vulnerabilities found"); } else { console.error(`❌ Found ${result.vulnerabilities.length} vulnerabilities`); process.exit(1); } await security.close(); ``` ## CI/CD Integration ### GitHub Actions ```yaml name: Security Scan on: push: branches: [main] pull_request: branches: [main] jobs: security: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.10' - name: Run Codex Security Scan env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} run: | npx @openai/codex-security scan . --model gpt-5.6-terra ``` ### GitLab CI ```yaml security_scan: image: node:22 before_script: - apt-get update && apt-get install -y python3 script: - npx @openai/codex-security scan . --effort high variables: OPENAI_API_KEY: $OPENAI_API_KEY only: - main - merge_requests ``` ### CircleCI ```yaml version: 2.1 jobs: security_scan: docker: - image: cimg/node:22.13 steps: - checkout - run: name: Install Python command: sudo apt-get update && sudo apt-get install -y python3 - run: name: Run Security Scan command: npx @openai/codex-security scan . environment: OPENAI_API_KEY: ${OPENAI_API_KEY} workflows: version: 2 scan: jobs: - security_scan ``` ## Common Patterns ### Pre-commit Hook Create `.husky/pre-commit`: ```bash #!/bin/sh npx @openai/codex-security scan . --effort low --auth chatgpt ``` ### Integration with Testing ```typescript import { CodexSecurity } from "@openai/codex-security"; import { describe, it, expect, afterAll } from "@jest/globals"; describe("Security Checks", () => { const security = new CodexSecurity(); afterAll(async () => { await security.close(); }); it("should have no critical vulnerabilities", async () => { const result = await security.run("."); const critical = result.vulnerabilities.filter( v => v.severity === "critical" ); expect(critical).toHaveLength(0); }, 300000); // 5 min timeout it("should have no high severity SQL injection issues", async () => { const result = await security.run("."); const sqlInjection = result.vulnerabilities.filter( v => v.type.includes("sql-injection") && v.severity === "high" ); expect(sqlInjection).toHaveLength(0); }, 300000); }); ``` ### Automated Fix Workflow ```typescript import { CodexSecurity } from "@openai/codex-security"; import { exec } from "child_process"; import { promisify } from "util"; const execAsync = promisify(exec); const security = new CodexSecurity({ model: "gpt-5.6-terra" }); async function scanAndFix() { console.log("Running security scan..."); const result = await security.run("."); if (result.fixableVulnerabilities > 0) { console.log(`Found ${result.fixableVulnerabilities} auto-fixable issues`); // Apply fixes (hypothetical API) // await security.fix(result); // Verify fixes with another scan const verifyResult = await security.run("."); console.log(`Remaining issues: ${verifyResult.vulnerabilities.length}`); } await security.close(); } scanAndFix().catch(console.error); ``` ## Environment Variables - `OPENAI_API_KEY` - OpenAI API key for authentication - `CODEX_API_KEY` - Alternative API key variable - `CODEX_SECURITY_STATE_DIR` - Custom directory for scan history (default: system-specific state directory) ## Troubleshooting ### Node.js Version Issues Ensure you're using a compatible Node.js version: ```bash node --version # Should be 22.13.0+, 24.x, or 26.x ``` Use `nvm` to switch versions: ```bash nvm install 22 nvm use 22 ``` ### Python Not Found Install Python 3.10 or later: ```bash # Ubuntu/Debian sudo apt-get install python3.10 # macOS brew install python@3.10 # Verify python3 --version ``` ### Credential Issues If credentials aren't persisting: ```bash # Check current credentials npx @openai/codex-security login --status # Re-login npx @openai/codex-security logout npx @openai/codex-security login ``` For CI environments, always use environment variables instead of login. ### State Directory Not Writable Set a custom state directory: ```bash export CODEX_SECURITY_STATE_DIR="${HOME}/.codex-security-state" mkdir -p "${CODEX_SECURITY_STATE_DIR}" npx @openai/codex-security scan . ``` ### Scan Timeout For large codebases, increase effort level or scan specific directories: ```bash # Lower effort for faster scans npx @openai/codex-security scan . --effort low # Scan specific subdirectories npx @openai/codex-security scan ./src ``` ### API Rate Limits If you encounter rate limits, consider: 1. Reducing scan frequency 2. Using lower effort levels 3. Scanning only changed files in CI 4. Requesting higher rate limits from OpenAI ### Access Denied Ensure your account has access to Codex Security. For best results, verify your account for [Trusted Access](https://chatgpt.com/cyber).
在 GitHub 查看