Tham chiếu CLI Codex Security
Các đối số, định dạng đầu ra, tạo tác quét, nhà cung cấp và mã thoát của CLI Codex Security.
Sử dụng tài liệu tham chiếu này để kiểm tra các lệnh codex-security được hỗ trợ, cờ,
định dạng đầu ra và hành vi thoát. Để thực hiện lần quét đầu tiên theo hướng dẫn, hãy bắt đầu với
hướng dẫn bắt đầu nhanh về CLI.
Chạy CLI bằng npx @openai/codex-security.
Tổng quan về lệnh
usage: codex-security [--version] <command> [options]CLI cung cấp các lệnh sau:
| Lệnh | Mục đích |
|---|---|
codex-security scan |
Chạy một lần quét Codex Security. |
codex-security install-hook |
Cài đặt quy trình quét bảo mật Git trước khi commit. |
codex-security bulk-scan |
Khám phá kho lưu trữ và chạy quét hàng loạt có thể tiếp tục. |
codex-security scans |
Liệt kê, kiểm tra, so sánh và truy xuất nhật ký quét đã lưu. |
codex-security findings |
Xem xét và cập nhật các phát hiện bảo mật đã lưu. |
codex-security export |
Xuất các phát hiện đã hoàn tất dưới dạng CSV, JSON hoặc SARIF. |
codex-security publish |
Đăng các phát hiện từ lần quét đã hoàn tất lên Linear. |
codex-security validate |
Kiểm tra một hoặc nhiều phát hiện bảo mật ứng viên. |
codex-security patch |
Vá một hoặc nhiều vấn đề bảo mật. |
codex-security login |
Đăng nhập, lưu thông tin xác thực hoặc kiểm tra trạng thái đăng nhập. |
codex-security logout |
Xóa thông tin đăng nhập đã lưu. |
codex-security info |
Hiển thị siêu dữ liệu chỉ đọc của SDK và plugin đi kèm. |
CLI cũng cung cấp các lệnh tích hợp sau:
| Lệnh | Mục đích |
|---|---|
codex-security completions |
Tạo tập lệnh hoàn thành lệnh cho shell. |
codex-security mcp |
Đăng ký CLI làm máy chủ MCP. |
codex-security skills |
Đồng bộ kỹ năng Codex Security với tác nhân. |
Liệt kê tất cả lệnh có sẵn:
npx @openai/codex-security --helpThêm --help vào một lệnh để xem các đối số và tùy chọn của lệnh đó:
npx @openai/codex-security scan --helpcodex-security --version in phiên bản đã cài đặt rồi thoát.
codex-security info --json báo cáo phiên bản SDK và plugin đi kèm.
Cả hai lệnh đều không yêu cầu Python.
Khám phá lệnh và kết nối tác nhân
In bản kê khai lệnh mà tác nhân có thể đọc:
npx @openai/codex-security --llmsKiểm tra lược đồ đối số quét dưới dạng JSON:
npx @openai/codex-security scan --schema --format jsonTạo phần hoàn thành lệnh shell cho Bash:
npx @openai/codex-security completions bashThay bash bằng zsh hoặc fish cho các shell tương ứng.
Kết quả quét hỗ trợ --format toon|json|yaml|jsonl và --full-output. --format ở
cấp framework này tách biệt với --export-format, tùy chọn dùng để chọn
định dạng của tạo tác được xuất từ một lần quét đã hoàn tất. Phần trợ giúp lệnh toàn cục
cũng liệt kê md, nhưng kết quả quét không hỗ trợ đầu ra Markdown.
Đăng ký CLI làm máy chủ MCP:
npx @openai/codex-security mcp addĐồng bộ kỹ năng Codex Security với các tác nhân của bạn:
npx @openai/codex-security skills addMCP chỉ cung cấp lệnh siêu dữ liệu chỉ đọc info. Việc quét, xuất,
xác thực, kiểm định và vá vẫn chỉ thực hiện được qua CLI.
codex-security scan
Chạy quét đối với một kho lưu trữ, các đường dẫn đã chọn, thay đổi đã commit hoặc cây làm việc.
usage: codex-security scan [-h] [--auth {auto,chatgpt,api-key}]
[--provider {openai,openrouter,fireworks,amazon-bedrock}]
[--path PATH | --diff BASE | --working-tree]
[--head HEAD] [--base BASE]
[--knowledge-base PATH] [--scan-prompt-file FILE]
[--post-scan-prompt-file FILE]
[--mode {standard,deep}] [--workers N]
[--subagents N] [--stop-after-no-new N]
[--max-discovery-runs N] [--max-time-hours HOURS]
[--model MODEL]
[--effort {minimal,low,medium,high,xhigh,max}]
[--output-dir DIR]
[--archive-existing]
[--plugin-path PATH] [--python PATH]
[--codex KEY=VALUE] [--fail-on-severity LEVEL]
[--patch] [--patch-severity {critical,high,medium,low}]
[--create-pr]
[--max-cost USD] [--dry-run] [--headless] [--verbose]
[--json] [--format {toon,json,yaml,jsonl}]
[--full-output] [repository]repository mặc định là thư mục hiện tại.
Chọn phương thức xác thực khi quét
Sử dụng --auth auto, tùy chọn mặc định, để tự động chọn thông tin xác thực. Khi có cả
phiên đăng nhập ChatGPT và OPENAI_API_KEY hoặc CODEX_API_KEY,
các lần quét tương tác với đầu ra văn bản sẽ hỏi nên dùng thông tin xác thực nào. Các lần quét CI, JSON và
JSONL, cùng những lần quét khác không có terminal tương tác, sẽ dùng
API key từ môi trường. Chạy thử không nhắc hỏi hoặc tải thông tin xác thực.
Để dùng thông tin xác thực đã lưu, hãy truyền --auth chatgpt:
npx @openai/codex-security scan . --auth chatgptĐể dùng API key từ môi trường, hãy truyền --auth api-key:
npx @openai/codex-security scan . --auth api-keyĐể đặt thông tin xác thực đã lưu làm lựa chọn tự động mặc định, hãy chạy
unset OPENAI_API_KEY CODEX_API_KEY.
Sử dụng OpenRouter hoặc Fireworks
Chọn OpenRouter bằng API key của dịch vụ này và một mô hình được chỉ định rõ:
export OPENROUTER_API_KEY="your-openrouter-api-key"
npx @openai/codex-security scan . \
--provider openrouter \
--model anthropic/claude-sonnet-4.5Chọn Fireworks bằng API key của dịch vụ này và một mô hình được chỉ định rõ:
export FIREWORKS_API_KEY="your-fireworks-api-key"
npx @openai/codex-security scan . \
--provider fireworks \
--model accounts/fireworks/models/qwen3-235b-a22bCả hai nhà cung cấp cũng hỗ trợ bulk-scan.
Sử dụng Amazon Bedrock
Chọn Amazon Bedrock bằng --provider amazon-bedrock và chỉ định rõ
mô hình Bedrock bằng --model:
npx @openai/codex-security scan . \
--provider amazon-bedrock \
--model openai.gpt-5.6-solĐặt AWS_REGION và xác thực bằng AWS_BEARER_TOKEN_BEDROCK, khóa truy cập AWS tiêu chuẩn,
hồ sơ AWS, danh tính web, thông tin xác thực vùng chứa hoặc
chuỗi thông tin xác thực AWS mặc định. Các lần quét Bedrock dùng thông tin xác thực AWS thay cho
--auth, phiên đăng nhập ChatGPT hoặc OpenAI API key. Cả scan và bulk-scan
đều hỗ trợ --provider.
Chọn mục tiêu quét
Chọn một loại mục tiêu cho mỗi lần quét.
| Đối số | Mô tả |
|---|---|
--path PATH |
Quét đường dẫn tương đối với kho lưu trữ. Lặp lại cờ để thêm đường dẫn. |
--diff BASE |
Quét các thay đổi đã commit từ BASE đến --head. Head mặc định là HEAD. |
--head HEAD |
Đặt bản sửa đổi head cho --diff. |
--working-tree |
Quét các thay đổi đã và chưa stage so với --base. Base mặc định là HEAD. |
--base BASE |
Đặt bản sửa đổi base cho --working-tree. |
--mode {standard,deep} |
Chọn chế độ quét. Mặc định là standard. |
--path, --diff và --working-tree loại trừ lẫn nhau. --head
yêu cầu --diff, còn --base yêu cầu --working-tree. Chế độ quét sâu hỗ trợ
mục tiêu là kho lưu trữ và đường dẫn.
Các lần quét diff và cây làm việc yêu cầu đối số kho lưu trữ phải là thư mục gốc của Git worktree. Các ref được chọn phải tồn tại trong checkout đó.
Quét toàn bộ kho lưu trữ:
npx @openai/codex-security scan .Quét các đường dẫn đã chọn:
npx @openai/codex-security scan . --path src --path testsQuét các thay đổi đã commit:
npx @openai/codex-security scan . --diff origin/main --head HEADQuét các thay đổi đã và chưa stage:
npx @openai/codex-security scan . --working-tree --base HEADThực hiện đánh giá sâu hơn đối với kho lưu trữ:
npx @openai/codex-security scan . --mode deepCấu hình quét sâu
Sử dụng các tùy chọn này với --mode deep để kiểm soát số worker chạy đồng thời và thời gian chạy:
| Đối số | Mô tả |
|---|---|
--workers N |
Giới hạn số worker quét tiêu chuẩn độc lập chạy đồng thời. Mặc định là 4. |
--subagents N |
Số tác nhân phụ dành cho mỗi worker. Mặc định là 3. |
--stop-after-no-new N |
Dừng sau khi N lần quét worker liên tiếp đã hoàn tất không tìm thấy vấn đề mới. Mặc định là 4. |
--max-discovery-runs N |
Giới hạn tổng số lượt quét tiêu chuẩn độc lập. Mặc định là 40. |
--max-time-hours HOURS |
Giới hạn thời gian thực thi của worker, tính bằng giờ. Mặc định là 96; chấp nhận số thập phân. |
--subagents chấp nhận số 0 hoặc số nguyên dương. --max-time-hours chấp nhận một
số dương không lớn hơn 96. Các tùy chọn còn lại yêu cầu số nguyên dương.
Những tùy chọn này không dùng được cho quét tiêu chuẩn.
Ví dụ: dùng hai worker, cho phép tối đa mười lượt chạy và dừng thực thi worker sau 1,5 giờ:
npx @openai/codex-security scan . \
--mode deep \
--workers 2 \
--subagents 0 \
--stop-after-no-new 3 \
--max-discovery-runs 10 \
--max-time-hours 1.5Khi hết thời gian, quá trình quét sẽ dừng các worker chưa hoàn tất, giữ lại kết quả
quét đã hoàn tất và tổng hợp chúng vào báo cáo cuối cùng. Nếu không worker nào hoàn tất
việc xem xét mã nguồn, lần quét sẽ ghi nhận phạm vi bao phủ một phần và trả về mã thoát 2.
Đặt giá trị mặc định lâu dài trong ~/.codex/codex-security/config.toml, hoặc trong
$CODEX_HOME/codex-security/config.toml khi bạn đặt CODEX_HOME:
[deep_scan]
workers = 2
subagents = 0
stop_after_no_new = 3
max_discovery_runs = 10
max_time_hours = 1.5Các tùy chọn dòng lệnh ghi đè những giá trị mặc định này. scan --workers kiểm soát
các worker quét tiêu chuẩn độc lập trong một lần quét sâu; bulk-scan --workers
kiểm soát các lần quét kho lưu trữ chạy đồng thời. Chỉ đặt stop_after_consecutive_errors
trong tệp TOML; giá trị mặc định là 3.
Thêm ngữ cảnh bảo mật
Sử dụng --knowledge-base PATH để cung cấp tài liệu kiến trúc, mô hình mối đe dọa
hoặc chính sách bảo mật. Lặp lại tùy chọn để thêm tệp hoặc thư mục:
npx @openai/codex-security scan . \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policiesCác tài liệu được hỗ trợ gồm tệp .md, .markdown, .txt, .pdf và .docx.
CLI tìm kiếm đệ quy trong thư mục, từ chối đường dẫn đầu vào là liên kết,
bỏ qua các mục thư mục là liên kết và giữ nội dung tài liệu đã trích xuất
bên ngoài kết quả quét đã lưu.
Thêm hướng dẫn quét
Để thêm hướng dẫn quét, hãy cung cấp tệp văn bản hoặc Markdown bằng
--scan-prompt-file. Sử dụng --post-scan-prompt-file để chạy các hướng dẫn tiếp theo
trong cùng phiên đã xác thực sau các lần quét thành công và các lần quét
có phạm vi bao phủ không đầy đủ hoặc có lỗi:
npx @openai/codex-security scan . \
--scan-prompt-file security-focus.md \
--post-scan-prompt-file follow-up.mdVí dụ: dùng lời nhắc quét để tập trung vào ranh giới ủy quyền và yêu cầu
bước tiếp theo ghi một post-scan-summary.md mới trong thư mục quét.
Nếu bước tiếp theo thất bại, CLI sẽ báo cảnh báo và giữ lại lần quét đã hoàn tất.
Bước tiếp theo không chạy sau khi hủy hoặc khi lần quét đạt giới hạn chi phí.
Đặt tùy chọn đầu ra và chính sách
Sử dụng các tùy chọn này để giữ lại tạo tác, bảo toàn kết quả trước đó hoặc tạo kết quả mà máy có thể đọc.
| Đối số | Mô tả |
|---|---|
--output-dir DIR |
Ghi tạo tác quét vào thư mục riêng tư bên ngoài Git worktree bao quanh. Mặc định dùng trạng thái Codex Security lâu dài. |
--archive-existing |
Di chuyển kết quả hiện có sang DIR.previous-<timestamp>-<id> và bắt đầu với thư mục đầu ra trống. Yêu cầu --output-dir. |
--fail-on-severity LEVEL |
Trả về mã thoát 1 khi lần quét hoàn tất báo cáo phát hiện có mức độ từ critical, high, medium hoặc low trở lên. |
--patch |
Sửa và xác minh các phát hiện đã chọn sau một lần quét hoàn chỉnh. |
--patch-severity LEVEL |
Vá các phát hiện có mức độ từ critical, high, medium hoặc low trở lên. Mặc định là low. |
--create-pr |
Commit các tệp vá đã xác minh và mở pull request trên GitHub. Yêu cầu --patch. |
--max-cost USD |
Dừng lần quét khi chi phí mô hình ước tính vượt quá số tiền USD đã chỉ định. |
--dry-run |
Kiểm tra kho lưu trữ, mục tiêu, cơ sở tri thức, thư mục đầu ra và cấu hình Codex mà không bắt đầu quét. |
--headless |
Hiển thị tiến trình dạng văn bản thuần thay cho bảng điều khiển quét tương tác. |
--verbose |
In chẩn đoán đã che thông tin nhạy cảm về vòng đời, xác thực, tiến trình và chi phí ra stderr. |
--json |
In bản kê khai, phát hiện, phạm vi bao phủ, đường dẫn và siêu dữ liệu lượt chạy dưới dạng một tài liệu JSON. |
--format FORMAT |
In kết quả quét đầy đủ dưới dạng toon, json, yaml hoặc jsonl. |
--full-output |
In kết quả đầy đủ bằng định dạng đầu ra có cấu trúc mặc định. |
Giới hạn chi phí là ước tính, không phải mức trần chi tiêu cứng. Các yêu cầu đang
xử lý có thể hoàn tất với chi phí nhỉnh hơn giới hạn. Nếu một lần quét sâu đạt giới hạn
sau khi Codex Security tổng hợp kết quả của các worker đã hoàn tất, CLI sẽ niêm phong
kết quả hiện có, đánh dấu phạm vi bao phủ là partial và trả về mã thoát 2.
Nếu không, CLI trả về 2 và để lại mọi đầu ra một phần hiện có trên ổ đĩa.
Khi bạn bỏ qua --output-dir, kết quả được lưu lâu dài trong
$CODEX_HOME/state/plugins/codex-security/scans/<repository>. CODEX_HOME
mặc định là ~/.codex. Đặt CODEX_SECURITY_STATE_DIR để thay vào đó giữ kết quả trong
$CODEX_SECURITY_STATE_DIR/scans/<repository>. Các thư mục này có thể
chứa đoạn trích mã nguồn và chi tiết lỗ hổng, vì vậy hãy quản lý quyền truy cập
và thời gian lưu giữ cho phù hợp.
Workbench lưu lịch sử quét trong
$CODEX_HOME/state/plugins/codex-security/workbench.sqlite3. Việc đặt
CODEX_SECURITY_STATE_DIR cũng di chuyển cơ sở dữ liệu workbench.
Thư mục đầu ra phải nằm ngoài thư mục được quét và mọi
Git worktree bao quanh. Một lần quét có thể thay thế thư mục kết quả hiện có bằng
--archive-existing.
Để bảo toàn kết quả trước đó trước khi tái sử dụng thư mục đầu ra:
npx @openai/codex-security scan . \
--output-dir /path/outside/repository/results \
--archive-existingTheo mặc định, các lần quét chỉ tạo báo cáo. Thêm --fail-on-severity để đánh giá
chính sách mức độ nghiêm trọng trong CI:
npx @openai/codex-security scan . \
--diff origin/main \
--output-dir /path/outside/repository/results \
--json \
--fail-on-severity high \
> /path/outside/repository/codex-security.jsonChạy thử kiểm tra đầu vào cục bộ, bao gồm tài liệu cơ sở tri thức, mà không tải thông tin xác thực, khởi động Codex hoặc thăm dò trình thông dịch Python của plugin:
npx @openai/codex-security scan . \
--output-dir /path/outside/repository/results \
--dry-runCấu hình runtime
Sử dụng các tùy chọn runtime khi bạn cần chỉ định rõ mô hình, trình thông dịch, plugin hoặc giá trị cấu hình Codex.
| Đối số | Mô tả |
|---|---|
--auth {auto,chatgpt,api-key} |
Chọn thông tin xác thực khi quét. Mặc định là auto. |
--provider {openai,openrouter,fireworks,amazon-bedrock} |
Chọn nhà cung cấp suy luận. Mặc định là openai. |
--model MODEL |
Chọn mô hình. Mặc định là gpt-5.6-sol. Bắt buộc với OpenRouter, Fireworks và Amazon Bedrock. |
--effort {minimal,low,medium,high,xhigh,max} |
Chọn mức độ suy luận của mô hình. Mặc định là xhigh. |
--plugin-path PATH |
Dùng thư mục hoặc ZIP plugin Codex Security để ghi đè plugin đi kèm. |
--python PATH |
Chọn trình thông dịch Python cho runtime của plugin. |
--codex KEY=VALUE |
Ghi đè một giá trị cấu hình Codex biệt lập. Giá trị dùng cú pháp TOML. Lặp lại cờ để thêm giá trị. |
Để chọn mô hình và mức độ suy luận khác mà không ghi TOML:
npx @openai/codex-security scan . --model gpt-5.6-terra --effort highĐặt giá trị chuỗi được truyền qua --codex trong dấu ngoặc kép để trình phân tích TOML nhận được
một chuỗi:
npx @openai/codex-security scan . --codex 'model="gpt-5.6-terra"'codex-security install-hook
Cài đặt quy trình kiểm tra bảo mật Git trước khi commit cho kho lưu trữ hiện tại:
npx @openai/codex-security install-hookQuy trình kiểm tra sẽ quét các thay đổi đã và chưa stage trước mỗi commit, đồng thời chặn
các phát hiện mức độ nghiêm trọng cao hoặc lỗi quét. Quy trình này tôn trọng core.hooksPath và không
thay thế tập lệnh pre-commit hiện có. Hãy đặt ngưỡng mức độ nghiêm trọng khác
khi cần:
npx @openai/codex-security install-hook . --fail-on-severity mediumcodex-security bulk-scan
Khám phá và quét các kho lưu trữ GitHub hoặc chạy một lần quét có thể tiếp tục từ CSV kho lưu trữ:
Để xem hướng dẫn đầy đủ về khám phá GitHub, danh mục CSV, kết quả chiến dịch và quét trong vùng chứa, hãy xem Chạy quét bảo mật hàng loạt.
usage: codex-security bulk-scan [input] [--output-dir DIR]
[--workers N] [--mode {standard,deep}]
[--provider {openai,openrouter,fireworks,amazon-bedrock}]
[--model MODEL]
[--effort {minimal,low,medium,high,xhigh,max}]
[--knowledge-base PATH]
[--scan-prompt-file FILE]
[--post-scan-prompt-file FILE]
[--max-attempts N] [--plugin-path PATH]
[--python PATH] [--codex KEY=VALUE]Chạy npx @openai/codex-security bulk-scan không có đối số để chọn
kho lưu trữ theo cách tương tác. Luồng này yêu cầu đăng nhập GitHub CLI.
Để chọn mô hình và mức độ suy luận trong quá trình khám phá tương tác:
npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort highĐối với danh sách kho lưu trữ đã chuẩn bị, hãy cung cấp một CSV và --output-dir:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4CSV yêu cầu các cột id, repository và revision. Bản sửa đổi phải là
hash commit đầy đủ. Các cột tùy chọn scope, mode và prompt cấu hình
từng kho lưu trữ:
id,repository,revision,scope,mode,prompt
service,https://github.com/example/service.git,0123456789abcdef0123456789abcdef01234567,src,standard,Review authorization boundaries.Sử dụng --knowledge-base PATH để chia sẻ tài liệu bảo mật cho mọi
kho lưu trữ. Sử dụng --scan-prompt-file FILE để thêm hướng dẫn quét dùng chung; cột
CSV prompt sẽ thêm hướng dẫn riêng cho từng kho lưu trữ sau lời nhắc dùng chung đó.
--post-scan-prompt-file FILE chạy hướng dẫn tiếp theo sau mỗi
lần quét, kể cả các lần quét có phạm vi bao phủ không đầy đủ hoặc có lỗi. Tùy chọn này không chạy sau khi
hủy hoặc khi lần quét đạt giới hạn chi phí.
--workers giới hạn số lần quét kho lưu trữ đồng thời và mặc định là 4. --mode
mặc định là standard, còn --max-attempts mặc định là 1. Đặt
--max-attempts để thử lại lỗi kho lưu trữ hoặc lỗi quét. Các lần quét đã hoàn tất nhưng
có phạm vi bao phủ không đầy đủ sẽ không được thử lại. Kết quả của chúng vẫn khả dụng và
lệnh trả về mã thoát 2.
Chạy lại cùng lệnh để tiếp tục từ thư mục đầu ra hiện có. CLI bỏ qua các lần quét đã hoàn tất, kể cả những lần có phạm vi bao phủ không đầy đủ.
Đối với chiến dịch trong vùng chứa, hãy xem Chạy quét hàng loạt trong Docker.
codex-security scans
Tìm các lần quét đã lưu
Liệt kê các lần quét đã lưu cho thư mục hiện tại:
npx @openai/codex-security scansLiệt kê các lần quét cho kho lưu trữ khác:
npx @openai/codex-security scans list /path/to/repositoryTìm các lần quét được lưu trong một thư mục đầu ra cụ thể:
npx @openai/codex-security scans list --scan-root /path/outside/repository/resultsKiểm tra hoặc lặp lại một lần quét
Hiển thị kết quả và cấu hình của một lần quét đã lưu:
npx @openai/codex-security scans show SCAN_IDThêm --show-linked-findings để bao gồm liên kết phát hiện từ các lần quét trước.
Chạy lại lần quét đối với checkout hiện tại bằng cấu hình ban đầu:
npx @openai/codex-security scans rerun SCAN_IDViệc chạy lại yêu cầu phiên bản plugin được lần quét ban đầu ghi nhận. Nếu phiên bản đã cài đặt khác, lệnh sẽ dừng thay vì chạy với plugin khác.
Kiểm tra nhật ký quét đã lưu
Đọc toàn bộ sự kiện phiên đã lưu cho một lần quét và các worker của nó. Những nhật ký này không được che thông tin nhạy cảm và có thể chứa mã nguồn hoặc thông tin xác thực, vì vậy hãy xem xét trước khi chia sẻ:
npx @openai/codex-security scans logs SCAN_IDThêm --json để nhận kết quả có định dạng máy chứa đầy đủ thông tin.
Ghép khớp và so sánh các phát hiện
So sánh hai lần quét để tìm các phát hiện mới, còn tồn tại, xuất hiện lại, đã giải quyết và không xác định:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDQuá trình so sánh tự động ghép khớp các phát hiện có cùng nguyên nhân gốc
và tái sử dụng các kết quả ghép đã lưu. Để lưu rõ ràng các kết quả ghép, hãy dùng scans match:
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_IDMột phát hiện được coi là không xác định khi lần quét sau có phạm vi bao phủ không đầy đủ hoặc không
bao phủ vị trí ban đầu của phát hiện. Thêm --force vào match khi bạn cần
tính lại một kết quả ghép hiện có.
Để ghép khớp tất cả lần quét đã hoàn tất cho kho lưu trữ hiện tại, kể cả các lần quét từ checkout khác:
npx @openai/codex-security scans match --allKết quả quét có thể khác nhau ngay cả khi bạn chạy lại cùng cấu hình. Việc ghép khớp và
so sánh giúp theo dõi thay đổi; chúng không làm cho kết quả mang tính tất định hoặc chứng minh rằng
một lỗ hổng không còn tồn tại. Sử dụng validate để kiểm tra lại một phát hiện
quan trọng về bảo mật đối với mã hiện tại.
codex-security findings
Liệt kê các phát hiện đang mở trong những lần quét của kho lưu trữ hiện tại:
npx @openai/codex-security findings listTruyền đường dẫn kho lưu trữ để kiểm tra checkout khác:
npx @openai/codex-security findings list /path/to/repositoryThêm --json để nhận đầu ra có cấu trúc. Danh sách xác định các phát hiện xuất hiện trong
lần quét mới nhất và những phát hiện trước đó chưa được xác nhận trong lần quét đó.
Lưu ý rằng các phát hiện trước đó vẫn ở trạng thái mở cho đến khi được giải quyết hoặc loại bỏ (việc không xuất hiện trong lần quét mới nhất không được xem là bằng chứng rằng vấn đề đã được khắc phục).
Để ghi nhận một phát hiện đã xem xét là dương tính giả:
usage: codex-security findings false-positive OCCURRENCE_ID
--reason REASONKiểm tra lần quét đã lưu để xác định lần xuất hiện của phát hiện:
npx @openai/codex-security scans show SCAN_IDGhi lại lời giải thích cụ thể cho trường hợp dương tính giả:
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The framework escapes this input before it reaches the query"Lý do không được để trống. Codex Security lưu quyết định cho kho lưu trữ và cung cấp quyết định đó làm ngữ cảnh cho các lần quét trong tương lai. Mỗi lần quét sẽ độc lập kiểm tra lại mã nguồn, biện pháp kiểm soát và khả năng truy cập hiện tại. Quyết định trước đó không vô hiệu hóa một quy tắc, đường dẫn hoặc loại lỗ hổng.
codex-security export
Xuất CSV, JSON hoặc SARIF từ một lần quét đã hoàn tất và được niêm phong. Thao tác xuất xác thực các tạo tác quét trước khi ghi đầu ra và không tác động đến runtime Codex cũng như thông tin xác thực.
usage: codex-security export [--export-format {csv,json,sarif}]
[--output FILE|-] [--source-root PATH]
[--python PATH] scan_dirscan_dir là thư mục của lần quét đã hoàn tất.
| Đối số | Mô tả |
|---|---|
--export-format {csv,json,sarif} |
Chọn định dạng xuất. Mặc định là sarif. |
--output FILE|- |
Ghi định dạng đã chọn vào tệp hoặc stdout. Mặc định là một tệp trong thư mục hiện tại. |
--source-root PATH |
Thêm dấu vân tay dòng mã nguồn vào SARIF bằng một checkout kho lưu trữ. |
--python PATH |
Chọn trình thông dịch Python cho trình xuất đi kèm. |
--source-root chỉ hoạt động với --export-format sarif. JSON bảo toàn
tài liệu phát hiện đã niêm phong. CSV chứa các cột phát hiện có tính di động và không
bao gồm trạng thái phân loại cục bộ của workbench.
Nếu không có --output, CLI ghi SARIF vào results.sarif, JSON vào
findings.json và CSV vào findings.csv trong thư mục làm việc hiện tại.
Tệp xuất có thể chứa đoạn trích mã nguồn và chi tiết lỗ hổng. Hãy chạy lệnh
bên ngoài kho lưu trữ hoặc truyền --output với một đường dẫn riêng tư bên ngoài
checkout được quét.
Ghi SARIF vào một tệp:
npx @openai/codex-security export /path/to/scan \
--export-format sarif \
--source-root /path/to/repository \
--output /path/outside/repository/exports/results.sarifGhi SARIF vào stdout:
npx @openai/codex-security export /path/to/scan \
--export-format sarif \
--source-root . \
--output -Xuất các phát hiện dưới dạng JSON:
npx @openai/codex-security export /path/to/scan \
--export-format json \
--output /path/outside/repository/exports/findings.jsonXuất các phát hiện dưới dạng CSV:
npx @openai/codex-security export /path/to/scan \
--export-format csv \
--output /path/outside/repository/exports/findings.csvcodex-security publish scan
Đăng mọi phát hiện từ một lần quét đã hoàn tất lên Linear:
usage: codex-security publish scan [SCAN_DIR] --to linear
[--linear-team TEAM_ID]
[--project PROJECT_ID]
[--linear-api-key KEY]
[--linear-assignee EMAIL_OR_USER_ID]
[--dry-run] [--json]SCAN_DIR phải chứa một lần quét đã hoàn tất và được niêm phong. Bỏ qua đối số này trong terminal
tương tác để chọn một lần quét đã hoàn tất từ lịch sử quét cục bộ. Việc tạo issue
cũng yêu cầu lần quét và các phát hiện của nó tồn tại trong lịch sử quét cục bộ. Chạy thử
xác thực các tạo tác đã niêm phong mà không kiểm tra tính lưu trữ lâu dài này.
| Đối số | Mô tả |
|---|---|
--to linear |
Đăng lên Linear. Đối số này là bắt buộc. |
--linear-team TEAM_ID |
Chọn team Linear. Dùng CODEX_SECURITY_LINEAR_TEAM khi bị bỏ qua; bắt buộc phải có một trong hai. |
--project PROJECT_ID |
Chọn một project Linear. Dùng CODEX_SECURITY_LINEAR_PROJECT khi bị bỏ qua. Nếu cả hai đều không được đặt, issue được tạo trực tiếp trong team. |
--linear-api-key KEY |
Dùng API key cá nhân của Linear để đăng trực tiếp. Dùng CODEX_SECURITY_LINEAR_API_KEY khi bị bỏ qua. |
--linear-assignee EMAIL_OR_USER_ID |
Gán issue đã tạo theo địa chỉ email hoặc ID người dùng Linear. Yêu cầu --linear-api-key hoặc CODEX_SECURITY_LINEAR_API_KEY. Issue sẽ không được gán nếu bỏ qua. |
--dry-run |
Chuẩn bị payload issue mà không khởi động Codex, liên hệ Linear, tạo issue hoặc ghi trạng thái đăng. |
--json |
Ghi kết quả đăng có cấu trúc vào stdout. Tiến trình vẫn ở stderr. |
Mỗi lần gọi không phải chạy thử sẽ cố tạo một issue mới cho mọi phát hiện.
Việc đăng lại cùng một lần quét sẽ không ghép khớp, cập nhật hoặc tái sử dụng issue hiện có.
Nếu một số phát hiện thất bại, lệnh sẽ giữ lại các issue đã tạo thành công và
trả về mã thoát 2.
Với --json, hãy xem xét kết quả created và failed trước khi thử lại để
tránh trùng lặp.
Xem trước payload của issue trước khi đăng:
npx @openai/codex-security publish scan /path/to/completed-scan \
--to linear \
--linear-team TEAM_ID \
--dry-run \
--jsonĐăng bằng ứng dụng Linear đã kết nối
Khi không có Linear API key, lệnh sẽ khởi động Codex bằng cấu hình hiện có và ứng dụng Linear đã kết nối của bạn. Hãy đăng nhập và kết nối Linear với tài khoản Codex trước khi đăng:
npx @openai/codex-security login
npx @openai/codex-security publish scan /path/to/completed-scan \
--to linear \
--linear-team TEAM_ID \
--project PROJECT_IDĐăng bằng Linear API key
Việc cung cấp --linear-api-key hoặc CODEX_SECURITY_LINEAR_API_KEY sẽ đăng
trực tiếp qua Linear API và không khởi động Codex. Khi đăng trực tiếp,
issue sẽ không được gán trừ khi bạn chọn người được giao:
export CODEX_SECURITY_LINEAR_API_KEY=YOUR_LINEAR_PERSONAL_API_KEY
npx @openai/codex-security publish scan /path/to/completed-scan \
--to linear \
--linear-team TEAM_ID \
--linear-assignee teammate@example.comGiá trị dòng lệnh ghi đè biến môi trường tương ứng. Đối với API
key, hãy ưu tiên CODEX_SECURITY_LINEAR_API_KEY hơn --linear-api-key vì
đối số dòng lệnh có thể xuất hiện trong lịch sử shell và danh sách tiến trình.
codex-security validate và codex-security patch
Kiểm tra một phát hiện ứng viên có hợp lệ hay không:
npx @openai/codex-security validate findings.json \
"Possible SQL injection in src/query.ts:42"Tạo bản sửa lỗi bằng kỹ năng khắc phục đi kèm:
npx @openai/codex-security patch findings.json \
"Missing authorization check in src/routes.ts:18"Mỗi đối số vị trí chấp nhận văn bản trực tiếp hoặc đường dẫn tệp. Các đầu vào này sử dụng
thư mục hiện tại. Sử dụng validate để kiểm tra lại một phát hiện sau khi sửa hoặc khi
lần quét sau không còn báo cáo phát hiện đó. Chỉ so sánh các lần quét không chứng minh được rằng bản sửa lỗi
đã có hiệu quả.
Sử dụng --effort để chọn mức độ suy luận cho một trong hai lệnh:
npx @openai/codex-security validate "Possible SQL injection" --effort highVá các phát hiện sau khi quét
Sử dụng scan --patch để sửa các phát hiện sau một lần quét hoàn chỉnh. Tính năng này yêu cầu
@openai/codex-security 0.1.15 trở lên. Ngưỡng mức độ nghiêm trọng mặc định là
low. Lệnh này chọn các phát hiện mức cao và nghiêm trọng:
npx @openai/codex-security scan . --patch --patch-severity high --jsonCác phát hiện đã được xác minh và đã sửa không kích hoạt --fail-on-severity.
Vá các phát hiện đã lưu
Truyền ID phát hiện hoặc ID lần xuất hiện để vá kho lưu trữ ban đầu của phát hiện đó, hoặc chọn các phát hiện từ một lần quét đã lưu:
npx @openai/codex-security patch OCCURRENCE_ID
npx @openai/codex-security patch --scan SCAN_ID --severity high --json
npx @openai/codex-security patch --scan latest --severity medium--scan latest chọn lần quét đã hoàn tất gần nhất cho kho lưu trữ hiện tại.
Các lệnh phát hiện đã lưu hỗ trợ --json; văn bản trực tiếp và đầu vào tệp thì không.
Thêm --create-pr để chỉ commit các tệp vá đã xác minh và mở pull request
bằng GitHub CLI:
npx @openai/codex-security patch --scan SCAN_ID --severity high --create-prNếu thao tác push hoặc pull request thất bại, hãy chạy lệnh patch --resume-pr BRANCH được in ra
từ cùng kho lưu trữ để thử lại.
Vá các issue Linear
Đặt CODEX_SECURITY_LINEAR_API_KEY hoặc LINEAR_API_KEY cho API key cá nhân,
hoặc LINEAR_ACCESS_TOKEN cho token OAuth. Ưu tiên dùng biến môi trường thay vì
--linear-api-key KEY để không lưu key trong lịch sử shell.
Nhập issue bằng ID hoặc URL. Lặp lại --linear-issue để chọn nhiều hơn một
issue:
npx @openai/codex-security patch --linear-issue SEC-123 --linear-issue SEC-124Sử dụng --linear-project để chọn các issue đang mở của một project. Thêm --linear-filter
để thu hẹp lựa chọn:
npx @openai/codex-security patch --linear-project "Security backlog" \
--linear-filter '{"labels":{"name":{"eq":"security"}}}'CLI loại trừ các issue đã hoàn tất và đã hủy, trừ khi bộ lọc đặt state.
CLI không thay đổi các issue Linear.
codex-security login, logout và info
Đăng nhập theo cách tương tác:
npx @openai/codex-security loginSử dụng xác thực thiết bị trên máy từ xa hoặc không có giao diện:
npx @openai/codex-security login --device-authKiểm tra phiên đăng nhập hiện tại:
npx @openai/codex-security login statusXóa phiên đăng nhập đã lưu:
npx @openai/codex-security logoutLưu API key bằng cách truyền qua stdin:
printenv OPENAI_API_KEY | npx @openai/codex-security login --with-api-keyLưu token truy cập doanh nghiệp:
printenv CODEX_ACCESS_TOKEN | npx @openai/codex-security login --with-access-tokenKiểm tra siêu dữ liệu chỉ đọc của SDK và plugin đi kèm:
npx @openai/codex-security info --jsonKhi bạn cung cấp CLI dưới dạng máy chủ MCP, info là lệnh duy nhất khả dụng.
Việc quét, xuất, đăng, đăng nhập, kiểm định và vá vẫn chỉ thực hiện được qua CLI.
Đọc đầu ra quét
Theo mặc định, các lần quét gửi tiến trình, bản tóm tắt hoàn tất và lỗi tới stderr
mà không ghi kết quả quét đầy đủ vào stdout. Yêu cầu --json,
--format hoặc --full-output để gửi kết quả quét có cấu trúc tới stdout.
Terminal tương tác hiển thị bảng điều khiển trực tiếp với giai đoạn quét hiện tại,
các tệp đã xem xét, hoạt động, mức sử dụng token và chi phí ước tính. CI và đầu ra
được chuyển hướng sử dụng tiến trình dạng văn bản thuần. Thêm --headless để dùng tiến trình dạng văn bản thuần trong
terminal tương tác:
npx @openai/codex-security scan . --headlessBảng điều khiển cũng hiển thị chi tiết phiên trực tiếp. Những chi tiết này không được che thông tin nhạy cảm và có thể chứa mã nguồn hoặc thông tin xác thực. Hãy xem xét trước khi chia sẻ.
Chẩn đoán chi tiết
Thêm --verbose để in chẩn đoán đã che thông tin nhạy cảm về vòng đời, xác thực, tiến trình và chi phí
ra stderr:
npx @openai/codex-security scan . --verboseĐặt CODEX_SECURITY_LOG_LEVEL=debug để bật cùng loại chẩn đoán mà không cần
cờ. LOG_LEVEL=debug cũng bật chẩn đoán khi
CODEX_SECURITY_LOG_LEVEL chưa được đặt.
Tóm tắt hoàn tất
Một lần quét đã hoàn tất ghi số lượng phát hiện đang mở của kho lưu trữ, phân tích theo mức độ nghiêm trọng, phạm vi bao phủ, thời gian đã trôi qua, đường dẫn báo cáo và thư mục kết quả ra stderr. Bản tóm tắt bao gồm mức sử dụng token và chi phí ước tính khi có:
REPORT /path/to/scan/report.md
FINDINGS 4 (3 confirmed this scan; 1 previously found; 1 critical, 2 high, 1 informational)
COVERAGE complete
ELAPSED 1s
TOKENS 1,250 input, 200 cached, 30 output
RESULTS /path/to/scanCác phát hiện cung cấp thông tin được tính vào tổng số trong bản tóm tắt. Chính sách mức độ nghiêm trọng
chỉ đánh giá các phát hiện critical, high, medium và low từ lần quét hiện tại,
không phải các phát hiện trước đó hiển thị trong tổng số của kho lưu trữ.
Đầu ra JSON
scan --json ghi một tài liệu JSON hoàn chỉnh vào stdout. Cấu trúc cấp cao nhất
của tài liệu là:
manifest
repositoryFindings
findings
coverage
scanDir
threadId
reportPath
artifactsDir
sarifPath
cost
turn
id
status
durationMs
finalResponse
usageKhi vá lỗi, đầu ra JSON cũng bao gồm kết quả vá và mọi pull request đã tạo.
Tiến trình, bản tóm tắt hoàn tất, thông báo lưu trữ và lỗi vẫn ở stderr.
Một lần quét đã hoàn tất vẫn in toàn bộ kết quả JSON khi chính sách mức độ nghiêm trọng
trả về mã thoát 1 hoặc phạm vi bao phủ không đầy đủ trả về mã thoát 2.
Tạo tác quét
Một lần quét đã hoàn tất giữ báo cáo dễ đọc và các tạo tác có cấu trúc cùng nhau:
<scan-directory>/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif # when producedCác tệp có cấu trúc phục vụ những mục đích khác nhau:
| Tệp | Nội dung |
|---|---|
scan-manifest.json |
Danh tính, trạng thái, mục tiêu, phạm vi, trình tạo của lần quét và bản ghi tạo tác đã niêm phong. |
findings.json |
Mã định danh phát hiện, mức độ nghiêm trọng, độ tin cậy, phân loại, vị trí, bằng chứng, kiểm định, luồng dữ liệu, khả năng truy cập và biện pháp khắc phục. |
coverage.json |
Các bề mặt đã xem xét, nội dung loại trừ, công việc trì hoãn, câu hỏi mở và mức độ hoàn chỉnh của phạm vi bao phủ. |
report.md |
Báo cáo quét dễ đọc. |
artifacts/ |
Các tạo tác hỗ trợ quá trình quét. |
exports/results.sarif |
SARIF được tạo trong quá trình quét, nếu có. |
Mức độ hoàn chỉnh của phạm vi bao phủ có ba giá trị:
complete: Lần quét ghi nhận phạm vi bao phủ hoàn chỉnh cho phạm vi đã chọn.partial: Lần quét ghi nhận công việc trì hoãn hoặc các giới hạn phạm vi bao phủ khác.unknown: Lần quét báo cáo mức độ hoàn chỉnh của phạm vi bao phủ là không xác định.
Hãy xem xét các bề mặt bị trì hoãn, nội dung loại trừ rõ ràng và câu hỏi mở trước khi dùng phạm vi bao phủ làm bằng chứng cho một quyết định bảo mật.
Mã thoát và tín hiệu
CLI sử dụng các mã thoát sau:
| Mã thoát | Điều kiện |
|---|---|
0 |
Một lần quét hoàn tất với phạm vi bao phủ đầy đủ và vượt qua chính sách mức độ nghiêm trọng; một lần quét hàng loạt hoặc đăng tải hoàn tất không có lỗi; hoặc một lệnh khác thành công. |
1 |
Một lần quét đã hoàn tất báo cáo phát hiện có mức độ bằng hoặc cao hơn mức đã cấu hình. |
2 |
CLI gặp lỗi đầu vào, runtime hoặc xuất; một lần quét có phạm vi bao phủ không đầy đủ; một lần quét hàng loạt có kho lưu trữ gặp lỗi; hoặc một lượt đăng có một hay nhiều phát hiện thất bại. |
130 |
Ctrl-C làm gián đoạn một lần quét hoặc đăng. |
143 |
SIGTERM chấm dứt một lần quét hoặc đăng. |
Mọi lần quét có phạm vi bao phủ partial hoặc unknown đều trả về 2, ngay cả khi không có
chính sách mức độ nghiêm trọng. Khi bạn yêu cầu đầu ra có cấu trúc, các lần quét đã hoàn tất và
các lượt đăng một phần vẫn ghi kết quả hiện có vào stdout. CLI
in vị trí của mọi đầu ra một phần sau khi bị gián đoạn hoặc gặp lỗi
runtime.
Quyền quét cục bộ
Các lần quét bằng CLI và SDK chạy với quyền hệ điều hành cục bộ của bạn. Mỗi lần quét
sử dụng hồ sơ hệ thống tệp codex_security_scan và đặt approvalPolicy thành
"never". Hồ sơ này cho phép đọc hệ thống tệp cục bộ và ghi vào
các thư mục gốc của workspace cũng như thư mục trạng thái quét đã chọn. Quá trình quét không dừng để
yêu cầu phê duyệt tương tác.
Các thiết lập được cung cấp qua --codex của CLI hoặc codexOverrides của SDK, bao gồm
approval_policy, sandbox_mode và quyền hệ thống tệp, không thể thay thế
hoặc hạn chế các biện pháp kiểm soát quét này. Các hạn chế của máy chủ và mạng vẫn được áp dụng.
Tiến trình quét và workbench có thể kế thừa môi trường của bạn, bao gồm cả API token và thông tin xác thực đám mây không liên quan. Chỉ quét các kho lưu trữ mà bạn tin cậy và được phép đánh giá, đồng thời chỉ cung cấp thông tin xác thực mà lần quét yêu cầu.
Xác thực và điều kiện tiên quyết
Đặt OPENAI_API_KEY hoặc CODEX_API_KEY, đăng nhập bằng
npx @openai/codex-security login hoặc sử dụng phiên đăng nhập Codex dựa trên tệp
hiện có. Với OpenRouter hoặc Fireworks, hãy đặt API key của nhà cung cấp và chọn một
mô hình. Với Amazon Bedrock, hãy dùng Bedrock API key hoặc chuỗi
thông tin xác thực AWS tiêu chuẩn.
Để tìm hiểu cách chọn thông tin xác thực, hãy xem Chọn phương thức xác thực khi quét.
Đối với CI, hãy giới hạn phạm vi của API key trong bước quét và sử dụng quy trình làm việc đáng tin cậy.
CLI yêu cầu Node.js 22 (22.13.0 trở lên), 24 hoặc 26. Các tác vụ quét, quét hàng loạt,
xuất, lịch sử quét và phát hiện đã lưu cũng yêu cầu Python 3.10 trở lên.
Python 3.10 cũng yêu cầu tomli. Sử dụng --python với scan, bulk-scan hoặc
export, hoặc đặt PYTHON cho mọi lệnh dựa trên Python.
Tiếp tục với hướng dẫn bắt đầu nhanh về CLI, hướng dẫn quét hàng loạt, câu hỏi thường gặp về CLI, hướng dẫn CI hoặc hướng dẫn SDK TypeScript.
Bí danh văn bản thuần
- --output FILE|-