Bahasa Indonesia

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 --help

Tambahkan --help ke perintah untuk memeriksa argumen dan opsinya:

npx @openai/codex-security scan --help

codex-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 --llms

Periksa skema argumen pemindaian sebagai JSON:

npx @openai/codex-security scan --schema --format json

Buat pelengkapan shell untuk Bash:

npx @openai/codex-security completions bash

Ganti 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 add

Sinkronkan skill Codex Security ke agen Anda:

npx @openai/codex-security skills add

MCP 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 chatgpt

Untuk menggunakan API key dari lingkungan, teruskan --auth api-key:

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

Untuk 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.5

Pilih 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-a22b

Kedua 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-sol

Tetapkan 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 tests

Pindai perubahan yang telah di-commit:

npx @openai/codex-security scan . --diff origin/main --head HEAD

Pindai perubahan staged dan unstaged:

npx @openai/codex-security scan . --working-tree --base HEAD

Jalankan peninjauan repositori yang lebih mendalam:

npx @openai/codex-security scan . --mode deep

Mengonfigurasi 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.5

Ketika 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.5

Opsi 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-policies

Dokumen 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.md

Sebagai 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-existing

Secara 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.json

Dry 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-run

Mengonfigurasi 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 high

Beri 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-hook

Pemeriksaan 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 medium

codex-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 high

Untuk 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 4

CSV 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 scans

Cantumkan pemindaian untuk repositori lain:

npx @openai/codex-security scans list /path/to/repository

Temukan pemindaian yang disimpan di bawah direktori output tertentu:

npx @openai/codex-security scans list --scan-root /path/outside/repository/results

Memeriksa atau mengulang pemindaian

Tampilkan hasil dan konfigurasi pemindaian tersimpan:

npx @openai/codex-security scans show SCAN_ID

Tambahkan --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_ID

Proses 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_ID

Tambahkan --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_ID

Perbandingan 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_ID

Temuan 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 --all

Hasil 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 list

Teruskan jalur repositori untuk memeriksa checkout lain:

npx @openai/codex-security findings list /path/to/repository

Tambahkan --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 REASON

Periksa pemindaian tersimpan untuk mengidentifikasi kemunculan temuan:

npx @openai/codex-security scans show SCAN_ID

Catat 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_dir

scan_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.sarif

Tulis 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.json

Ekspor temuan sebagai CSV:

npx @openai/codex-security export /path/to/scan \
  --export-format csv \
  --output /path/outside/repository/exports/findings.csv

codex-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 \
  --json

Menerbitkan 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_ID

Menerbitkan 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.com

Nilai 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 high

Menambal 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 --json

Temuan 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-pr

Jika 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-124

Gunakan --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 login

Gunakan autentikasi perangkat pada mesin jarak jauh atau tanpa antarmuka:

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

Periksa informasi masuk saat ini:

npx @openai/codex-security login status

Hapus informasi masuk yang tersimpan:

npx @openai/codex-security logout

Simpan API key dengan meneruskannya melalui stdin:

printenv OPENAI_API_KEY | npx @openai/codex-security login --with-api-key

Simpan token akses perusahaan:

printenv CODEX_ACCESS_TOKEN | npx @openai/codex-security login --with-access-token

Periksa metadata SDK dan plugin bawaan yang hanya dapat dibaca:

npx @openai/codex-security info --json

Saat 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 . --headless

Dasbor 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 . --verbose

Tetapkan 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/scan

Temuan 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
  usage

Saat 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 produced

File 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|-