Bayangkan punya asisten yang bisa membaca seluruh isi proyekmu, menulis kode, menjalankan test, memperbaiki error, dan bahkan membuat catatan rilis — semuanya langsung dari terminal. Itulah Codex CLI, coding agent buatan OpenAI yang berjalan secara lokal di komputermu. Berbeda dari autocomplete biasa, Codex CLI adalah agent: ia bisa mengambil keputusan, mengedit banyak file sekaligus, dan mengeksekusi perintah shell untuk menyelesaikan satu tugas utuh. Proyek ini open source, ditulis dalam bahasa Rust yang ringan, dan dalam waktu singkat sudah meraih lebih dari 118 ribu bintang di GitHub — menjadikannya salah satu repositori yang paling cepat populer saat ini. Di tutorial ini kamu akan belajar memakainya dari nol: instalasi, autentikasi, mode interaktif, konfigurasi, sampai otomasi penuh lewat mode non-interaktif.

Codex CLI berbeda dari GitHub Copilot atau autocomplete biasa. Ia adalah coding agent: kamu memberi satu instruksi level tinggi, lalu Codex yang menyusun rencana, menulis kode, dan menjalankan perintah — kamu tinggal meninjau dan menyetujui setiap langkahnya.

Prasyarat

Sebelum mulai, pastikan hal-hal berikut sudah siap:

  • Terminal (di macOS/Linux) atau PowerShell (di Windows).
  • Akun ChatGPT (paket Plus, Pro, Business, Edu, atau Enterprise) atau kunci API OpenAI.
  • Git terpasang — Codex bekerja paling baik di dalam repositori git.
  • Opsional: Node.js bila ingin menginstal lewat npm, atau Homebrew untuk pengguna macOS.
Langkah 1: Install Codex CLI

Cara paling cepat adalah memakai installer resmi. Jalankan perintah berikut di terminal macOS atau Linux:

bash
# macOS / Linux — installer resmi
curl -fsSL https://chatgpt.com/codex/install.sh | sh

Kamu juga bisa menginstal lewat npm (cocok untuk semua platform):

bash
# Alternatif: lewat npm
npm install -g @openai/codex

Atau lewat Homebrew jika kamu memakai macOS:

bash
# Alternatif: lewat Homebrew (macOS)
brew install --cask codex

Untuk pengguna Windows, gunakan PowerShell:

bash
# PowerShell (Windows)
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"

Setelah selesai, verifikasi instalasinya dengan:

bash
codex --version
Langkah 2: Login ke Akun

Jalankan codex dan pilih Sign in with ChatGPT. Browser akan terbuka untuk meminta persetujuan login — setelah itu terminalmu langsung terhubung. Cara ini memanfaatkan paket ChatGPT yang sudah kamu miliki, tanpa konfigurasi tambahan.

bash
# Jalankan, lalu pilih "Sign in with ChatGPT"
codex

Kamu juga bisa login memakai API key OpenAI jika tidak punya paket ChatGPT. Set kunci lewat variabel environment OPENAI_API_KEY, lalu jalankan codex login. Metode ini dihitung per-token, jadi pantau pemakaianmu.

Langkah 3: Mode Interaktif — Membangun Proyek Pertama

Mode interaktif adalah cara paling natural memakai Codex. Buat direktori proyek baru, inisialisasi git, lalu jalankan codex di dalamnya:

bash
mkdir belajar-codex && cd belajar-codex
git init
codex

Di dalam antarmuka, ketik instruksi level tinggi. Misalnya minta Codex membuat aplikasi CLI Python pengelola daftar tugas:

other
Buatkan aplikasi CLI Python bernama todos untuk mengelola daftar tugas.
Gunakan SQLite untuk penyimpanan. Dukung perintah: add, list, done, remove.
Tulis beberapa test sederhana dan README singkat.

Codex akan menyusun rencana terlebih dahulu, lalu mulai menulis file dan mengeksekusi perintah. Setiap kali hendak menjalankan perintah shell, Codex akan meminta persetujuanmu — tinjau dulu, baru setujui. Berikut contoh hasil yang mungkin dihasilkan Codex:

python
# todos.py — contoh hasil yang mungkin dibuat Codex
import sqlite3
import sys


def init_db():
    conn = sqlite3.connect("todos.db")
    conn.execute(
        "CREATE TABLE IF NOT EXISTS todo "
        "(id INTEGER PRIMARY KEY, task TEXT, done INTEGER DEFAULT 0)"
    )
    return conn


def add(conn, task):
    conn.execute("INSERT INTO todo (task) VALUES (?)", (task,))
    conn.commit()
    print(f"+ ditambahkan: {task}")


def list_tasks(conn):
    rows = conn.execute("SELECT id, task, done FROM todo").fetchall()
    for tid, task, done in rows:
        status = "x" if done else " "
        print(f"[{status}] {tid}. {task}")


if __name__ == "__main__":
    conn = init_db()
    cmd = sys.argv[1] if len(sys.argv) > 1 else "list"
    if cmd == "add":
        add(conn, " ".join(sys.argv[2:]))
    elif cmd == "list":
        list_tasks(conn)

Beberapa perintah cepat (slash command) yang wajib kamu tahu saat berada di mode interaktif:

  • /model — ganti model yang dipakai di sesi berjalan.
  • /diff — lihat perubahan yang sudah dibuat.
  • /undo — batalkan langkah terakhir.
  • /review — minta Codex meninjau kembali kode.
  • /help — daftar lengkap perintah.

Codex bisa menjalankan perintah shell sungguhan di komputermu. Selalu tinjau perintah sebelum menyetujuinya, dan jangan pernah mengatur kebijakan persetujuan menjadi never saat bekerja di repo yang tidak kamu kenal.

Langkah 4: Sesuaikan Perilaku dengan AGENTS.md

Agar Codex konsisten mengikuti aturan timmu, simpan instruksi di file AGENTS.md. Ada dua cakupan: global (berlaku untuk semua repo) dan per-proyek (di dalam repo). Codex membacanya setiap kali mulai bekerja, lalu menggabungkannya — file yang lebih dekat ke direktori kerjamu akan menimpa aturan yang lebih umum.

Buat aturan global di ~/.codex/AGENTS.md:

bash
mkdir -p ~/.codex
other
# ~/.codex/AGENTS.md

## Aturan kerja

- Selalu jalankan `pytest` setelah mengubah file Python.
- Gunakan `uv` untuk mengelola dependensi Python.
- Minta konfirmasi sebelum menambahkan dependensi baru ke produksi.

Untuk aturan khusus proyek, letakkan AGENTS.md di akar repositori. Isinya misalnya: struktur folder yang dipakai, cara menjalankan test, atau konvensi penamaan yang harus diikuti. Dengan begitu, setiap anggota tim yang memakai Codex di repo itu akan mematuhi kesepakatan yang sama.

Gunakan AGENTS.md untuk menyimpan hal yang berulang: perintah build, gaya kode, dan daftar pantangan proyek. Semakin jelas instruksinya, semakin jarang Codex salah arah.

Langkah 5: Konfigurasi config.toml

Setelan pribadi Codex tersimpan di ~/.codex/config.toml. Kamu juga bisa menambah .codex/config.toml di dalam repo untuk menimpa nilai tertentu. Urutan prioritasnya (dari tertinggi): flag CLI, konfigurasi proyek, profil, konfigurasi user, lalu bawaan sistem.

other
# ~/.codex/config.toml
model = "gpt-5.6"
model_provider = "openai"
approval_policy = "on-request"
sandbox_mode = "workspace-write"

Penjelasan singkat tiap kunci:

  • model — model default yang dipakai (cek /model untuk daftar model yang tersedia saat ini).
  • approval_policy — kapan Codex berhenti meminta izin: untrusted, on-request, atau never.
  • sandbox_mode — tingkat akses filesystem & jaringan: read-only, workspace-write, atau danger-full-access.
Langkah 6: Otomasi dengan codex exec (Mode Non-Interaktif)

Codex juga punya mode non-interaktif lewat perintah codex exec. Mode ini dirancang untuk pipeline CI, pekerjaan terjadwal, atau skrip yang dirantai dengan alat lain. Saat berjalan, Codex menulis progres ke stderr dan hanya mencetak hasil akhir ke stdout — sehingga mudah dipipa atau disimpan ke file.

bash
# Ringkas struktur repo dan sebutkan area paling berisiko
codex exec "summarize the repository structure and list the top 5 risky areas"
bash
# Buat catatan rilis dari 10 commit terakhir, lalu simpan
codex exec "generate release notes for the last 10 commits" | tee release-notes.md

Kamu juga bisa mengalirkan input lewat stdin. Codex memperlakukan konten yang dipipa sebagai konteks tambahan:

bash
# Ambil data dari API, lalu minta Codex merapikannya jadi tabel
curl -s https://jsonplaceholder.typicode.com/comments \
  | codex exec "format 20 item teratas menjadi tabel markdown" \
  > table.md

Secara bawaan, codex exec berjalan dalam sandbox read-only. Untuk tugas yang perlu mengubah file, naikkan levelnya secara eksplisit:

bash
# Izinkan Codex mengubah file di direktori kerja
codex exec --sandbox workspace-write "perbaiki semua test yang gagal"

Contoh skrip otomasi sederhana yang bisa dijadwalkan lewat cron atau CI:

bash
#!/usr/bin/env bash
set -euo pipefail

# Otomasi harian: ringkas perubahan terbaru jadi catatan rilis
codex exec --ephemeral \
  "ringkas perubahan terbaru dan buat catatan rilis" \
  > catatan-rilis.md

danger-full-access memberi Codex akses penuh ke filesystem dan jaringan. Gunakan hanya di lingkungan terisolasi seperti container CI, jangan pernah di mesin kerja utamamu.

Kesimpulan

Codex CLI membawa kemampuan coding agent langsung ke terminalmu: dari mode interaktif untuk kerja harian, AGENTS.md untuk menyamakan aturan tim, config.toml untuk mengatur model dan keamanan, sampai codex exec untuk otomasi dan CI. Begitu nyaman, kamu bisa melangkah lebih jauh dengan memasangnya sebagai ekstensi IDE (VS Code, Cursor, atau Windsurf), menghubungkan server MCP agar Codex bisa mengakses alat eksternal, atau mencoba Codex App versi desktop. Selamat bereksperimen — dan ingat, selalu tinjau setiap perintah sebelum disetujui!