Referensi CLI Codex Security
Argumen, format output, artefak pemindaian, penyedia, dan kode keluar untuk CLI Codex Security.
Gunakan referensi ini untuk memeriksa perintah, flag, format output, dan perilaku
keluar codex-security yang didukung. Untuk panduan pemindaian pertama, mulailah dengan
panduan memulai cepat CLI.
Jalankan CLI dengan npx @openai/codex-security.
Ringkasan perintah
usage: codex-security [--version] <command> [options]CLI menyediakan perintah berikut:
| Perintah | Tujuan |
|---|---|
codex-security scan |
Menjalankan pemindaian Codex Security. |
codex-security install-hook |
Menginstal pemindaian keamanan Git pra-commit. |
codex-security bulk-scan |
Menemukan repositori dan menjalankan pemindaian massal yang dapat dilanjutkan. |
codex-security scans |
Mencantumkan, memeriksa, membandingkan, dan mengambil log pemindaian tersimpan. |
codex-security findings |
Meninjau dan memperbarui temuan keamanan tersimpan. |
codex-security export |
Mengekspor temuan yang telah selesai sebagai CSV, JSON, atau SARIF. |
codex-security publish |
Menerbitkan temuan pemindaian yang telah selesai ke Linear. |
codex-security validate |
Memeriksa satu atau beberapa kandidat temuan keamanan. |
codex-security patch |
Menambal satu atau beberapa masalah keamanan. |
codex-security login |
Masuk, menyimpan kredensial, atau memeriksa status masuk. |
codex-security logout |
Menghapus informasi masuk yang tersimpan. |
codex-security info |
Menampilkan metadata SDK dan plugin bawaan yang hanya dapat dibaca. |
CLI juga menyediakan perintah integrasi berikut:
| Perintah | Tujuan |
|---|---|
codex-security completions |
Membuat skrip pelengkapan shell. |
codex-security mcp |
Mendaftarkan CLI sebagai server MCP. |
codex-security skills |
Menyinkronkan skill Codex Security ke agen. |
Cantumkan semua perintah yang tersedia:
npx @openai/codex-security --helpTambahkan --help ke perintah untuk memeriksa argumen dan opsinya:
npx @openai/codex-security scan --helpcodex-security --version mencetak versi yang terinstal lalu keluar.
codex-security info --json melaporkan versi SDK dan plugin bawaan.
Kedua perintah tersebut tidak memerlukan Python.
Menemukan perintah dan menghubungkan agen
Cetak manifes perintah yang dapat dibaca agen:
npx @openai/codex-security --llmsPeriksa skema argumen pemindaian sebagai JSON:
npx @openai/codex-security scan --schema --format jsonBuat pelengkapan shell untuk Bash:
npx @openai/codex-security completions bashGanti bash dengan zsh atau fish untuk shell tersebut.
Hasil pemindaian mendukung --format toon|json|yaml|jsonl dan --full-output. --format pada
tingkat kerangka kerja ini berbeda dari --export-format, yang memilih
format artefak yang diekspor dari pemindaian yang telah selesai. Bantuan perintah global
juga mencantumkan md, tetapi hasil pemindaian tidak mendukung output Markdown.
Daftarkan CLI sebagai server MCP:
npx @openai/codex-security mcp addSinkronkan skill Codex Security ke agen Anda:
npx @openai/codex-security skills addMCP hanya mengekspos perintah metadata info yang dapat dibaca saja. Pemindaian, ekspor,
autentikasi, validasi, dan penambalan hanya tersedia melalui CLI.
codex-security scan
Jalankan pemindaian terhadap repositori, jalur yang dipilih, perubahan yang telah di-commit, atau working tree.
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 secara default menggunakan direktori saat ini.
Memilih autentikasi pemindaian
Gunakan --auth auto, yang merupakan nilai default, untuk memilih kredensial secara otomatis. Jika
informasi masuk ChatGPT dan OPENAI_API_KEY atau CODEX_API_KEY sama-sama tersedia,
pemindaian interaktif dengan output teks akan menanyakan kredensial yang akan digunakan. Pemindaian CI, JSON, dan
JSONL, serta pemindaian lain tanpa terminal interaktif menggunakan
API key dari lingkungan. Dry run tidak menampilkan prompt atau memuat kredensial.
Untuk menggunakan kredensial tersimpan, teruskan --auth chatgpt:
npx @openai/codex-security scan . --auth chatgptUntuk menggunakan API key dari lingkungan, teruskan --auth api-key:
npx @openai/codex-security scan . --auth api-keyUntuk menjadikan kredensial tersimpan sebagai pilihan otomatis default, jalankan
unset OPENAI_API_KEY CODEX_API_KEY.
Menggunakan OpenRouter atau Fireworks
Pilih OpenRouter dengan API key dan model eksplisit:
export OPENROUTER_API_KEY="your-openrouter-api-key"
npx @openai/codex-security scan . \
--provider openrouter \
--model anthropic/claude-sonnet-4.5Pilih Fireworks dengan API key dan model eksplisit:
export FIREWORKS_API_KEY="your-fireworks-api-key"
npx @openai/codex-security scan . \
--provider fireworks \
--model accounts/fireworks/models/qwen3-235b-a22bKedua penyedia juga mendukung bulk-scan.
Menggunakan Amazon Bedrock
Pilih Amazon Bedrock dengan --provider amazon-bedrock dan tentukan model
Bedrock secara eksplisit dengan --model:
npx @openai/codex-security scan . \
--provider amazon-bedrock \
--model openai.gpt-5.6-solTetapkan AWS_REGION dan lakukan autentikasi dengan AWS_BEARER_TOKEN_BEDROCK, access key AWS standar,
profil AWS, identitas web, kredensial kontainer, atau
rantai kredensial AWS default. Pemindaian Bedrock menggunakan kredensial AWS, bukan
--auth, informasi masuk ChatGPT, atau API key OpenAI. Baik scan maupun bulk-scan
mendukung --provider.
Memilih target pemindaian
Pilih satu jenis target untuk setiap pemindaian.
| Argumen | Deskripsi |
|---|---|
--path PATH |
Memindai jalur relatif terhadap repositori. Ulangi flag untuk jalur tambahan. |
--diff BASE |
Memindai perubahan yang telah di-commit dari BASE hingga --head. Head secara default adalah HEAD. |
--head HEAD |
Menetapkan revisi head untuk --diff. |
--working-tree |
Memindai perubahan staged dan unstaged terhadap --base. Base secara default adalah HEAD. |
--base BASE |
Menetapkan revisi base untuk --working-tree. |
--mode {standard,deep} |
Memilih mode pemindaian. Nilai defaultnya adalah standard. |
--path, --diff, dan --working-tree tidak dapat digunakan bersamaan. --head
memerlukan --diff, dan --base memerlukan --working-tree. Mode mendalam mendukung
target repositori dan jalur.
Pemindaian diff dan working tree mengharuskan argumen repositori berupa root Git worktree. Ref yang dipilih harus tersedia dalam checkout tersebut.
Pindai seluruh repositori:
npx @openai/codex-security scan .Pindai jalur yang dipilih:
npx @openai/codex-security scan . --path src --path testsPindai perubahan yang telah di-commit:
npx @openai/codex-security scan . --diff origin/main --head HEADPindai perubahan staged dan unstaged:
npx @openai/codex-security scan . --working-tree --base HEADJalankan peninjauan repositori yang lebih mendalam:
npx @openai/codex-security scan . --mode deepMengonfigurasi pemindaian mendalam
Gunakan opsi berikut bersama --mode deep untuk mengendalikan konkurensi worker dan waktu operasi:
| Argumen | Deskripsi |
|---|---|
--workers N |
Batas worker pemindaian standar independen yang berjalan bersamaan. Nilai defaultnya 4. |
--subagents N |
Subagen yang tersedia bagi setiap worker. Nilai defaultnya 3. |
--stop-after-no-new N |
Berhenti setelah N pemindaian worker yang selesai berturut-turut tidak menemukan masalah baru. Nilai defaultnya 4. |
--max-discovery-runs N |
Batas jumlah keseluruhan pemindaian standar independen. Nilai defaultnya 40. |
--max-time-hours HOURS |
Batas waktu eksekusi worker dalam jam. Nilai defaultnya 96; menerima pecahan. |
--subagents menerima nol atau bilangan bulat positif. --max-time-hours menerima
bilangan positif yang tidak lebih besar dari 96. Opsi lainnya memerlukan
bilangan bulat positif. Opsi ini tidak tersedia untuk pemindaian standar.
Sebagai contoh, gunakan dua worker, izinkan hingga sepuluh proses, dan hentikan eksekusi worker setelah 1,5 jam:
npx @openai/codex-security scan . \
--mode deep \
--workers 2 \
--subagents 0 \
--stop-after-no-new 3 \
--max-discovery-runs 10 \
--max-time-hours 1.5Ketika batas waktu berakhir, pemindaian menghentikan worker yang belum selesai, mempertahankan hasil
pemindaian yang telah selesai, dan menggabungkannya ke dalam laporan akhir. Jika tidak ada worker yang menyelesaikan
peninjauan sumber, pemindaian mencatat cakupan parsial dan mengembalikan kode keluar 2.
Tetapkan nilai default persisten di ~/.codex/codex-security/config.toml, atau di
$CODEX_HOME/codex-security/config.toml jika Anda menetapkan CODEX_HOME:
[deep_scan]
workers = 2
subagents = 0
stop_after_no_new = 3
max_discovery_runs = 10
max_time_hours = 1.5Opsi baris perintah menggantikan nilai default tersebut. scan --workers mengendalikan
worker pemindaian standar independen dalam satu pemindaian mendalam; bulk-scan --workers
mengendalikan pemindaian repositori yang berjalan bersamaan. Tetapkan stop_after_consecutive_errors hanya
di dalam file TOML; nilai defaultnya adalah 3.
Menambahkan konteks keamanan
Gunakan --knowledge-base PATH untuk menyediakan dokumen arsitektur, model ancaman,
atau kebijakan keamanan. Ulangi opsi ini untuk file atau direktori tambahan:
npx @openai/codex-security scan . \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policiesDokumen yang didukung mencakup file .md, .markdown, .txt, .pdf, dan .docx.
CLI menelusuri direktori secara rekursif, menolak jalur input tertaut,
melewati entri direktori tertaut, dan menyimpan konten dokumen yang diekstrak
di luar hasil pemindaian tersimpan.
Menambahkan instruksi pemindaian
Untuk menambahkan instruksi pemindaian, sediakan file teks atau Markdown dengan
--scan-prompt-file. Gunakan --post-scan-prompt-file untuk menjalankan instruksi
tindak lanjut dalam sesi terautentikasi yang sama setelah pemindaian berhasil dan
pemindaian dengan cakupan tidak lengkap atau kesalahan:
npx @openai/codex-security scan . \
--scan-prompt-file security-focus.md \
--post-scan-prompt-file follow-up.mdSebagai contoh, gunakan prompt pemindaian untuk berfokus pada batas otorisasi dan minta
tindak lanjut menulis post-scan-summary.md baru di direktori pemindaian.
Jika tindak lanjut gagal, CLI melaporkan peringatan dan mempertahankan pemindaian yang telah selesai.
Tindak lanjut tidak dijalankan setelah pembatalan atau ketika pemindaian mencapai batas
biayanya.
Menetapkan opsi output dan kebijakan
Gunakan opsi berikut untuk mempertahankan artefak, menyimpan hasil sebelumnya, atau membuat hasil yang dapat dibaca mesin.
| Argumen | Deskripsi |
|---|---|
--output-dir DIR |
Menulis artefak pemindaian ke direktori privat di luar Git worktree yang menaunginya. Secara default menggunakan status persisten Codex Security. |
--archive-existing |
Memindahkan hasil yang ada ke DIR.previous-<timestamp>-<id> dan memulai dengan direktori output kosong. Memerlukan --output-dir. |
--fail-on-severity LEVEL |
Mengembalikan kode keluar 1 ketika pemindaian yang selesai melaporkan temuan pada atau di atas critical, high, medium, atau low. |
--patch |
Memperbaiki dan memverifikasi temuan yang dipilih setelah pemindaian lengkap. |
--patch-severity LEVEL |
Menambal temuan pada atau di atas critical, high, medium, atau low. Nilai defaultnya low. |
--create-pr |
Melakukan commit pada file tambalan terverifikasi dan membuka pull request GitHub. Memerlukan --patch. |
--max-cost USD |
Menghentikan pemindaian ketika perkiraan biaya model melampaui jumlah USD yang ditentukan. |
--dry-run |
Memeriksa repositori, target, basis pengetahuan, direktori output, dan konfigurasi Codex tanpa memulai pemindaian. |
--headless |
Menampilkan progres teks biasa sebagai pengganti dasbor pemindaian interaktif. |
--verbose |
Mencetak diagnostik siklus hidup, autentikasi, progres, dan biaya yang disamarkan ke stderr. |
--json |
Mencetak manifes, temuan, cakupan, jalur, dan metadata giliran sebagai satu dokumen JSON. |
--format FORMAT |
Mencetak hasil pemindaian lengkap sebagai toon, json, yaml, atau jsonl. |
--full-output |
Mencetak hasil lengkap menggunakan format output terstruktur default. |
Batas biaya merupakan perkiraan, bukan batas pengeluaran mutlak. Permintaan yang sudah
berlangsung dapat selesai sedikit di atas batas tersebut. Jika pemindaian mendalam mencapai batas
setelah Codex Security menggabungkan hasil worker yang telah selesai, CLI menyegel
hasil yang tersedia, menandai cakupan sebagai partial, dan mengembalikan kode keluar 2.
Jika tidak, CLI mengembalikan 2 dan membiarkan output parsial yang tersedia tetap tersimpan di disk.
Jika Anda tidak menyertakan --output-dir, hasil disimpan di bawah
$CODEX_HOME/state/plugins/codex-security/scans/<repository>. CODEX_HOME
secara default adalah ~/.codex. Tetapkan CODEX_SECURITY_STATE_DIR untuk menyimpan hasil di bawah
$CODEX_SECURITY_STATE_DIR/scans/<repository> sebagai gantinya. Direktori ini dapat
berisi cuplikan sumber dan detail kerentanan, jadi kelola izin
dan retensinya sebagaimana mestinya.
Workbench menyimpan riwayat pemindaian di
$CODEX_HOME/state/plugins/codex-security/workbench.sqlite3. Menetapkan
CODEX_SECURITY_STATE_DIR juga memindahkan basis data workbench.
Direktori output harus berada di luar direktori yang dipindai dan setiap
Git worktree yang menaunginya. Pemindaian dapat mengganti direktori hasil yang ada dengan
--archive-existing.
Untuk mempertahankan hasil sebelumnya sebelum menggunakan kembali direktori output:
npx @openai/codex-security scan . \
--output-dir /path/outside/repository/results \
--archive-existingSecara default, pemindaian hanya membuat laporan. Tambahkan --fail-on-severity untuk mengevaluasi
kebijakan tingkat keparahan di 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.jsonDry run memeriksa input lokal, termasuk dokumen basis pengetahuan, tanpa memuat kredensial, memulai Codex, atau memeriksa interpreter Python plugin:
npx @openai/codex-security scan . \
--output-dir /path/outside/repository/results \
--dry-runMengonfigurasi runtime
Gunakan opsi runtime jika Anda memerlukan model, interpreter, plugin, atau nilai konfigurasi Codex yang eksplisit.
| Argumen | Deskripsi |
|---|---|
--auth {auto,chatgpt,api-key} |
Memilih kredensial pemindaian. Nilai defaultnya auto. |
--provider {openai,openrouter,fireworks,amazon-bedrock} |
Memilih penyedia inferensi. Nilai defaultnya openai. |
--model MODEL |
Memilih model. Nilai defaultnya gpt-5.6-sol. Wajib untuk OpenRouter, Fireworks, dan Amazon Bedrock. |
--effort {minimal,low,medium,high,xhigh,max} |
Memilih tingkat upaya penalaran model. Nilai defaultnya xhigh. |
--plugin-path PATH |
Menggunakan direktori atau ZIP plugin Codex Security untuk menggantikan plugin bawaan. |
--python PATH |
Memilih interpreter Python untuk runtime plugin. |
--codex KEY=VALUE |
Mengganti nilai konfigurasi Codex terisolasi. Nilai menggunakan sintaks TOML. Ulangi flag untuk nilai tambahan. |
Untuk memilih model dan upaya penalaran lain tanpa menulis TOML:
npx @openai/codex-security scan . --model gpt-5.6-terra --effort highBeri tanda kutip pada nilai string yang diteruskan melalui --codex agar parser TOML menerima
sebuah string:
npx @openai/codex-security scan . --codex 'model="gpt-5.6-terra"'codex-security install-hook
Instal pemeriksaan keamanan Git pra-commit untuk repositori saat ini:
npx @openai/codex-security install-hookPemeriksaan tersebut memindai perubahan staged dan unstaged sebelum setiap commit dan memblokir
temuan berkeparahan tinggi atau kesalahan pemindaian. Pemeriksaan ini menghormati core.hooksPath dan tidak
mengganti skrip pra-commit yang sudah ada. Tetapkan ambang tingkat keparahan lain
bila diperlukan:
npx @openai/codex-security install-hook . --fail-on-severity mediumcodex-security bulk-scan
Temukan dan pindai repositori GitHub, atau jalankan pemindaian yang dapat dilanjutkan dari CSV repositori:
Untuk panduan lengkap mengenai penemuan GitHub, inventaris CSV, hasil kampanye, dan pemindaian dalam kontainer, lihat Menjalankan pemindaian keamanan massal.
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]Jalankan npx @openai/codex-security bulk-scan tanpa argumen untuk memilih
repositori secara interaktif. Alur ini memerlukan informasi masuk GitHub CLI.
Untuk memilih model dan upaya penalaran selama penemuan interaktif:
npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort highUntuk daftar repositori yang telah disiapkan, berikan CSV dan --output-dir:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4CSV memerlukan kolom id, repository, dan revision. Revisi harus berupa
hash commit lengkap. Kolom opsional scope, mode, dan prompt mengonfigurasi
masing-masing repositori:
id,repository,revision,scope,mode,prompt
service,https://github.com/example/service.git,0123456789abcdef0123456789abcdef01234567,src,standard,Review authorization boundaries.Gunakan --knowledge-base PATH untuk membagikan dokumen keamanan ke setiap
repositori. Gunakan --scan-prompt-file FILE untuk menambahkan instruksi pemindaian bersama; kolom
CSV prompt menambahkan instruksi khusus repositori setelah prompt bersama tersebut.
--post-scan-prompt-file FILE menjalankan instruksi tindak lanjut setelah setiap
pemindaian, termasuk pemindaian dengan cakupan tidak lengkap atau kesalahan. Instruksi ini tidak dijalankan setelah
pembatalan atau ketika pemindaian mencapai batas biayanya.
--workers membatasi pemindaian repositori serentak dan secara default bernilai 4. --mode
secara default bernilai standard, dan --max-attempts secara default bernilai 1. Tetapkan
--max-attempts untuk mencoba ulang kesalahan repositori atau pemindaian. Pemindaian yang selesai dengan
cakupan tidak lengkap tidak dicoba ulang. Hasilnya tetap tersedia, dan
perintah mengembalikan kode keluar 2.
Jalankan kembali perintah yang sama untuk melanjutkan dari direktori output yang ada. CLI melewati pemindaian yang telah selesai, termasuk pemindaian dengan cakupan tidak lengkap.
Untuk kampanye dalam kontainer, lihat Menjalankan pemindaian massal di Docker.
codex-security scans
Menemukan pemindaian tersimpan
Cantumkan pemindaian tersimpan untuk direktori saat ini:
npx @openai/codex-security scansCantumkan pemindaian untuk repositori lain:
npx @openai/codex-security scans list /path/to/repositoryTemukan pemindaian yang disimpan di bawah direktori output tertentu:
npx @openai/codex-security scans list --scan-root /path/outside/repository/resultsMemeriksa atau mengulang pemindaian
Tampilkan hasil dan konfigurasi pemindaian tersimpan:
npx @openai/codex-security scans show SCAN_IDTambahkan --show-linked-findings untuk menyertakan tautan temuan dari pemindaian sebelumnya.
Jalankan ulang pemindaian terhadap checkout saat ini menggunakan konfigurasi aslinya:
npx @openai/codex-security scans rerun SCAN_IDProses ulang tersebut memerlukan versi plugin yang dicatat oleh pemindaian awal. Jika versi yang terinstal berbeda, perintah akan berhenti alih-alih berjalan dengan plugin lain.
Memeriksa log pemindaian tersimpan
Baca seluruh peristiwa sesi tersimpan untuk pemindaian dan worker-nya. Log ini tidak disamarkan dan dapat berisi kode sumber atau kredensial, jadi tinjau sebelum membagikannya:
npx @openai/codex-security scans logs SCAN_IDTambahkan --json untuk hasil berformat mesin yang memuat informasi lengkap.
Mencocokkan dan membandingkan temuan
Bandingkan dua pemindaian untuk menemukan temuan baru, yang bertahan, dibuka kembali, terselesaikan, dan tidak diketahui:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDPerbandingan secara otomatis mencocokkan temuan yang memiliki akar penyebab sama
dan menggunakan kembali kecocokan tersimpan. Untuk menyimpan kecocokan secara eksplisit, gunakan scans match:
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_IDTemuan dianggap tidak diketahui jika pemindaian berikutnya memiliki cakupan tidak lengkap atau tidak
mencakup lokasi asli temuan. Tambahkan --force ke match jika Anda perlu
menghitung ulang kecocokan yang ada.
Untuk mencocokkan semua pemindaian yang telah selesai bagi repositori saat ini, termasuk pemindaian dari checkout lain:
npx @openai/codex-security scans match --allHasil pemindaian dapat bervariasi meskipun Anda menjalankan ulang konfigurasi yang sama. Pencocokan dan
perbandingan melacak perubahan; keduanya tidak membuat hasil menjadi deterministik atau membuktikan bahwa suatu
kerentanan sudah tidak ada. Gunakan validate untuk memeriksa ulang temuan keamanan kritis
terhadap kode saat ini.
codex-security findings
Cantumkan temuan terbuka dari seluruh pemindaian repositori saat ini:
npx @openai/codex-security findings listTeruskan jalur repositori untuk memeriksa checkout lain:
npx @openai/codex-security findings list /path/to/repositoryTambahkan --json untuk output terstruktur. Daftar tersebut mengidentifikasi temuan yang terlihat dalam
pemindaian terbaru dan temuan terdahulu yang tidak dikonfirmasi dalam pemindaian tersebut.
Perhatikan bahwa temuan terdahulu tetap terbuka hingga diselesaikan atau ditolak (ketiadaan dari pemindaian terbaru tidak ditafsirkan sebagai bukti bahwa temuan telah diperbaiki).
Untuk mencatat temuan yang telah ditinjau sebagai positif palsu:
usage: codex-security findings false-positive OCCURRENCE_ID
--reason REASONPeriksa pemindaian tersimpan untuk mengidentifikasi kemunculan temuan:
npx @openai/codex-security scans show SCAN_IDCatat penjelasan khusus untuk positif palsu tersebut:
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The framework escapes this input before it reaches the query"Alasan tidak boleh kosong. Codex Security menyimpan keputusan untuk repositori dan menyediakannya sebagai konteks bagi pemindaian mendatang. Setiap pemindaian secara independen memeriksa ulang sumber, kontrol, dan keterjangkauan saat ini. Keputusan sebelumnya tidak menonaktifkan aturan, jalur, atau kelas kerentanan.
codex-security export
Ekspor CSV, JSON, atau SARIF dari pemindaian lengkap yang telah disegel. Ekspor memvalidasi artefak pemindaian sebelum menulis output dan tidak menyentuh runtime Codex maupun kredensial.
usage: codex-security export [--export-format {csv,json,sarif}]
[--output FILE|-] [--source-root PATH]
[--python PATH] scan_dirscan_dir adalah direktori pemindaian yang telah selesai.
| Argumen | Deskripsi |
|---|---|
--export-format {csv,json,sarif} |
Memilih format ekspor. Nilai defaultnya sarif. |
--output FILE|- |
Menulis format terpilih ke file atau stdout. Secara default ditulis ke file di direktori saat ini. |
--source-root PATH |
Menambahkan sidik jari baris sumber ke SARIF menggunakan checkout repositori. |
--python PATH |
Memilih interpreter Python untuk pengekspor bawaan. |
--source-root hanya berfungsi dengan --export-format sarif. JSON mempertahankan
dokumen temuan yang telah disegel. CSV berisi kolom temuan portabel dan tidak
menyertakan status triase workbench lokal.
Tanpa --output, CLI menulis SARIF ke results.sarif, JSON ke
findings.json, dan CSV ke findings.csv di direktori kerja saat ini.
Ekspor dapat berisi cuplikan sumber dan detail kerentanan. Jalankan perintah
di luar repositori atau teruskan --output dengan jalur privat di luar
checkout yang dipindai.
Tulis SARIF ke file:
npx @openai/codex-security export /path/to/scan \
--export-format sarif \
--source-root /path/to/repository \
--output /path/outside/repository/exports/results.sarifTulis SARIF ke stdout:
npx @openai/codex-security export /path/to/scan \
--export-format sarif \
--source-root . \
--output -Ekspor temuan sebagai JSON:
npx @openai/codex-security export /path/to/scan \
--export-format json \
--output /path/outside/repository/exports/findings.jsonEkspor temuan sebagai CSV:
npx @openai/codex-security export /path/to/scan \
--export-format csv \
--output /path/outside/repository/exports/findings.csvcodex-security publish scan
Terbitkan setiap temuan dari pemindaian yang telah selesai ke 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 harus berisi pemindaian lengkap yang telah disegel. Hilangkan argumen ini di terminal
interaktif untuk memilih pemindaian lengkap dari riwayat pemindaian lokal. Pembuatan isu
juga mengharuskan pemindaian dan temuannya tersedia dalam riwayat pemindaian lokal. Dry
run memvalidasi artefak yang disegel tanpa pemeriksaan persistensi ini.
| Argumen | Deskripsi |
|---|---|
--to linear |
Menerbitkan ke Linear. Argumen ini wajib. |
--linear-team TEAM_ID |
Memilih tim Linear. Menggunakan CODEX_SECURITY_LINEAR_TEAM jika dihilangkan; salah satunya wajib tersedia. |
--project PROJECT_ID |
Memilih proyek Linear. Menggunakan CODEX_SECURITY_LINEAR_PROJECT jika dihilangkan. Jika keduanya tidak ditetapkan, isu dibuat langsung di dalam tim. |
--linear-api-key KEY |
Menggunakan API key pribadi Linear untuk penerbitan langsung. Menggunakan CODEX_SECURITY_LINEAR_API_KEY jika dihilangkan. |
--linear-assignee EMAIL_OR_USER_ID |
Menetapkan penerima isu yang dibuat berdasarkan alamat email atau ID pengguna Linear. Memerlukan --linear-api-key atau CODEX_SECURITY_LINEAR_API_KEY. Isu tetap tanpa penerima jika dihilangkan. |
--dry-run |
Menyiapkan payload isu tanpa memulai Codex, menghubungi Linear, membuat isu, atau menulis status penerbitan. |
--json |
Menulis hasil penerbitan terstruktur ke stdout. Progres tetap berada di stderr. |
Setiap pemanggilan non-dry-run mencoba membuat isu baru untuk setiap temuan.
Menerbitkan kembali pemindaian yang sama tidak akan mencocokkan, memperbarui, atau menggunakan kembali isu yang ada.
Jika beberapa temuan gagal, perintah mempertahankan isu yang berhasil dibuat dan
mengembalikan kode keluar 2.
Dengan --json, tinjau hasil created dan failed sebelum mencoba kembali untuk
menghindari duplikat.
Pratinjau payload isu sebelum menerbitkan:
npx @openai/codex-security publish scan /path/to/completed-scan \
--to linear \
--linear-team TEAM_ID \
--dry-run \
--jsonMenerbitkan dengan aplikasi Linear yang terhubung
Tanpa API key Linear, perintah memulai Codex menggunakan konfigurasi Anda yang ada dan aplikasi Linear yang terhubung. Masuk dan hubungkan Linear ke akun Codex Anda sebelum menerbitkan:
npx @openai/codex-security login
npx @openai/codex-security publish scan /path/to/completed-scan \
--to linear \
--linear-team TEAM_ID \
--project PROJECT_IDMenerbitkan dengan API key Linear
Menyediakan --linear-api-key atau CODEX_SECURITY_LINEAR_API_KEY akan menerbitkan
langsung melalui API Linear dan tidak memulai Codex. Penerbitan langsung
membiarkan isu tanpa penerima kecuali Anda memilih penerima:
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.comNilai baris perintah menggantikan variabel lingkungan yang sesuai. Untuk API
key, utamakan CODEX_SECURITY_LINEAR_API_KEY daripada --linear-api-key karena
argumen baris perintah dapat muncul dalam riwayat shell dan daftar proses.
codex-security validate dan codex-security patch
Periksa apakah kandidat temuan valid:
npx @openai/codex-security validate findings.json \
"Possible SQL injection in src/query.ts:42"Buat perbaikan dengan skill remediasi bawaan:
npx @openai/codex-security patch findings.json \
"Missing authorization check in src/routes.ts:18"Setiap argumen posisi menerima teks literal atau jalur file. Input ini menggunakan
direktori saat ini. Gunakan validate untuk memeriksa ulang temuan setelah perbaikan atau ketika
pemindaian berikutnya tidak lagi melaporkannya. Membandingkan pemindaian saja tidak membuktikan bahwa perbaikan
berhasil.
Gunakan --effort untuk memilih upaya penalaran bagi salah satu perintah:
npx @openai/codex-security validate "Possible SQL injection" --effort highMenambal temuan setelah pemindaian
Gunakan scan --patch untuk memperbaiki temuan setelah pemindaian lengkap. Tindakan ini memerlukan
@openai/codex-security 0.1.15 atau yang lebih baru. Ambang tingkat keparahan default adalah
low. Perintah ini memilih temuan berkeparahan tinggi dan kritis:
npx @openai/codex-security scan . --patch --patch-severity high --jsonTemuan yang telah diverifikasi dan telah diperbaiki tidak memicu --fail-on-severity.
Menambal temuan tersimpan
Teruskan ID temuan atau kemunculan untuk menambal repositori asalnya, atau pilih temuan dari pemindaian tersimpan:
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 memilih pemindaian lengkap terbaru untuk repositori saat ini.
Perintah temuan tersimpan mendukung --json; input teks literal dan file tidak mendukungnya.
Tambahkan --create-pr untuk melakukan commit hanya pada file tambalan terverifikasi dan membuka pull request
dengan GitHub CLI:
npx @openai/codex-security patch --scan SCAN_ID --severity high --create-prJika push atau pull request gagal, jalankan perintah patch --resume-pr BRANCH yang dicetak
dari repositori yang sama untuk mencoba kembali.
Menambal isu Linear
Tetapkan CODEX_SECURITY_LINEAR_API_KEY atau LINEAR_API_KEY untuk API key pribadi,
atau LINEAR_ACCESS_TOKEN untuk token OAuth. Utamakan variabel lingkungan daripada
--linear-api-key KEY agar key tidak masuk ke riwayat shell.
Impor isu berdasarkan ID atau URL. Ulangi --linear-issue untuk memilih lebih dari satu
isu:
npx @openai/codex-security patch --linear-issue SEC-123 --linear-issue SEC-124Gunakan --linear-project untuk memilih isu terbuka suatu proyek. Tambahkan --linear-filter
untuk mempersempit pilihan:
npx @openai/codex-security patch --linear-project "Security backlog" \
--linear-filter '{"labels":{"name":{"eq":"security"}}}'CLI mengecualikan isu yang selesai dan dibatalkan kecuali filter menetapkan state.
CLI tidak mengubah isu Linear.
codex-security login, logout, dan info
Masuk secara interaktif:
npx @openai/codex-security loginGunakan autentikasi perangkat pada mesin jarak jauh atau tanpa antarmuka:
npx @openai/codex-security login --device-authPeriksa informasi masuk saat ini:
npx @openai/codex-security login statusHapus informasi masuk yang tersimpan:
npx @openai/codex-security logoutSimpan API key dengan meneruskannya melalui stdin:
printenv OPENAI_API_KEY | npx @openai/codex-security login --with-api-keySimpan token akses perusahaan:
printenv CODEX_ACCESS_TOKEN | npx @openai/codex-security login --with-access-tokenPeriksa metadata SDK dan plugin bawaan yang hanya dapat dibaca:
npx @openai/codex-security info --jsonSaat Anda mengekspos CLI sebagai server MCP, info adalah satu-satunya perintah yang tersedia.
Pemindaian, ekspor, penerbitan, proses masuk, validasi, dan penambalan hanya tersedia melalui CLI.
Membaca output pemindaian
Secara default, pemindaian mengirimkan progres, ringkasan penyelesaian, dan kesalahan ke stderr
tanpa menulis hasil pemindaian lengkap ke stdout. Minta --json,
--format, atau --full-output untuk mengirimkan hasil pemindaian terstruktur ke stdout.
Terminal interaktif menampilkan dasbor langsung dengan fase pemindaian saat ini,
file yang ditinjau, aktivitas, penggunaan token, dan perkiraan biaya. CI dan output yang
dialihkan menggunakan progres teks biasa. Tambahkan --headless untuk menggunakan progres teks biasa di
terminal interaktif:
npx @openai/codex-security scan . --headlessDasbor juga menampilkan detail sesi secara langsung. Detail tersebut tidak disamarkan dan dapat berisi kode sumber atau kredensial. Tinjau sebelum membagikannya.
Diagnostik mendetail
Tambahkan --verbose untuk mencetak diagnostik siklus hidup, autentikasi, progres, dan biaya
yang disamarkan ke stderr:
npx @openai/codex-security scan . --verboseTetapkan CODEX_SECURITY_LOG_LEVEL=debug untuk mengaktifkan diagnostik yang sama tanpa
flag. LOG_LEVEL=debug juga mengaktifkan diagnostik ketika
CODEX_SECURITY_LOG_LEVEL tidak ditetapkan.
Ringkasan penyelesaian
Pemindaian yang selesai menulis jumlah temuan repositori terbuka, perincian tingkat keparahan, cakupan, waktu berlalu, jalur laporan, dan direktori hasil ke stderr. Ringkasan tersebut mencakup penggunaan token dan perkiraan biaya jika tersedia:
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/scanTemuan informasional diperhitungkan dalam jumlah total ringkasan. Kebijakan tingkat keparahan
hanya mengevaluasi temuan critical, high, medium, dan low dari pemindaian saat ini,
bukan temuan terdahulu yang ditampilkan dalam jumlah total repositori.
Output JSON
scan --json menulis satu dokumen JSON lengkap ke stdout. Bentuk tingkat teratasnya
adalah:
manifest
repositoryFindings
findings
coverage
scanDir
threadId
reportPath
artifactsDir
sarifPath
cost
turn
id
status
durationMs
finalResponse
usageSaat melakukan penambalan, output JSON juga menyertakan hasil tambalan dan setiap pull request yang dibuat.
Progres, ringkasan penyelesaian, pemberitahuan arsip, dan kesalahan tetap berada di stderr.
Pemindaian yang selesai tetap mencetak hasil JSON lengkap ketika kebijakan tingkat keparahan
mengembalikan kode keluar 1 atau cakupan tidak lengkap mengembalikan kode keluar 2.
Artefak pemindaian
Pemindaian yang selesai menyimpan laporan yang mudah dibaca dan artefak terstruktur secara bersamaan:
<scan-directory>/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif # when producedFile terstruktur menjalankan fungsi yang berbeda:
| File | Isi |
|---|---|
scan-manifest.json |
Identitas, status, target, cakupan, pembuat, dan catatan artefak tersegel dari pemindaian. |
findings.json |
Pengidentifikasi temuan, tingkat keparahan, keyakinan, taksonomi, lokasi, bukti, validasi, aliran data, keterjangkauan, dan remediasi. |
coverage.json |
Permukaan yang ditinjau, pengecualian, pekerjaan tertunda, pertanyaan terbuka, dan kelengkapan cakupan. |
report.md |
Laporan pemindaian yang mudah dibaca. |
artifacts/ |
Artefak pendukung pemindaian. |
exports/results.sarif |
SARIF yang dibuat selama pemindaian, jika tersedia. |
Kelengkapan cakupan memiliki tiga nilai:
complete: Pemindaian mencatat cakupan lengkap untuk lingkup yang dipilih.partial: Pemindaian mencatat pekerjaan tertunda atau batas cakupan lainnya.unknown: Pemindaian melaporkan kelengkapan cakupan sebagai tidak diketahui.
Tinjau permukaan yang ditunda, pengecualian eksplisit, dan pertanyaan terbuka sebelum menggunakan cakupan sebagai bukti untuk keputusan keamanan.
Kode keluar dan sinyal
CLI menggunakan kode keluar berikut:
| Keluar | Kondisi |
|---|---|
0 |
Pemindaian selesai dengan cakupan lengkap dan lolos kebijakan tingkat keparahan, pemindaian massal atau penerbitan selesai tanpa kegagalan, atau perintah lain berhasil. |
1 |
Pemindaian yang selesai melaporkan temuan pada atau di atas tingkat keparahan yang dikonfigurasi. |
2 |
CLI menemukan kesalahan input, runtime, atau ekspor; pemindaian memiliki cakupan tidak lengkap; pemindaian massal memiliki repositori yang mengalami kesalahan; atau penerbitan memiliki satu atau beberapa temuan yang gagal. |
130 |
Ctrl-C menghentikan pemindaian atau penerbitan. |
143 |
SIGTERM menghentikan pemindaian atau penerbitan. |
Setiap pemindaian dengan cakupan partial atau unknown mengembalikan 2, bahkan tanpa
kebijakan tingkat keparahan. Ketika Anda meminta output terstruktur, pemindaian yang selesai dan
penerbitan parsial tetap menulis hasil yang tersedia ke stdout. CLI
mencetak lokasi setiap output parsial setelah interupsi atau kesalahan
runtime.
Izin pemindaian lokal
Pemindaian CLI dan SDK berjalan dengan izin sistem operasi lokal Anda. Setiap pemindaian
menggunakan profil sistem file codex_security_scan dan menetapkan approvalPolicy ke
"never". Profil tersebut mengizinkan pembacaan sistem file lokal dan penulisan ke
root ruang kerja serta direktori status pemindaian yang dipilih. Pemindaian tidak berhenti untuk
meminta persetujuan interaktif.
Pengaturan yang disediakan melalui CLI --codex atau SDK codexOverrides, termasuk
approval_policy, sandbox_mode, dan izin sistem file, tidak dapat mengganti
atau membatasi kontrol pemindaian ini. Pembatasan host dan jaringan tetap berlaku.
Proses pemindaian dan workbench dapat mewarisi lingkungan Anda, termasuk API token dan kredensial cloud yang tidak terkait. Pindai hanya repositori yang Anda percayai dan yang boleh Anda nilai, serta berikan hanya kredensial yang diperlukan pemindaian.
Autentikasi dan prasyarat
Tetapkan OPENAI_API_KEY atau CODEX_API_KEY, masuk dengan
npx @openai/codex-security login, atau gunakan informasi masuk Codex berbasis file
yang sudah ada. Untuk OpenRouter atau Fireworks, tetapkan API key penyedia dan pilih
model. Untuk Amazon Bedrock, gunakan API key Bedrock atau rantai
kredensial AWS standar sebagai gantinya.
Untuk pemilihan kredensial, lihat Memilih autentikasi pemindaian.
Untuk CI, batasi cakupan API key hanya pada langkah pemindaian dan gunakan alur kerja tepercaya.
CLI memerlukan Node.js 22 (22.13.0 atau yang lebih baru), 24, atau 26. Pemindaian, pemindaian massal,
ekspor, riwayat pemindaian, dan temuan tersimpan juga memerlukan Python 3.10 atau yang lebih baru.
Python 3.10 juga memerlukan tomli. Gunakan --python dengan scan, bulk-scan, atau
export, atau tetapkan PYTHON untuk setiap perintah berbasis Python.
Lanjutkan dengan panduan memulai cepat CLI, panduan pemindaian massal, Tanya Jawab CLI, panduan CI, atau panduan SDK TypeScript.
Alias teks biasa
- --output FILE|-