minicode

Menggunakan

REPL — Slash & Keyboard

Ketik / di prompt → dropdown berbingkai (max 8 + … N more). ↑/↓ navigasi, Enter lengkapi + submit, Esc tutup. Semua permukaan interaktif hidup di dalam TUI fullscreen; terminal tanpa ANSI/alt-screen = pesan satu baris + keluar (interaktif butuh TTY ≥10 baris).

Bahasa UI: MINICODE_LANG=en|id > /lang (disimpan state.json) > locale OS > en. /lang tanpa argumen = tampilkan aktif. Semua string lewat kamus i18n (src/ui/i18n/); literal Indonesia hardcode di luar kamus dilarang test.

#Slash commands

CommandFungsi
/helpDaftar perintah + tombol penting
/help tombolPintasan papan tombol lengkap
/providerKelola provider: popup — picker preset + form (URL/key/scope/timpa), hapus (d, menyebut jumlah model yang ikut hilang), ubah (e)
/model [cari]Popup semua provider::model (argumen = filter awal; di dalam ketik langsung cari live, Ctrl+U clear, Esc keluar filter). Del = hapus (konfirmasi). Enter = pilih + atur thinking effort (default/low/medium/high, tersimpan di provider, berlaku sesi berikutnya; Esc = batal total). Effort non-default tampil badge [low|medium|high]
/syncSegarkan daftar model semua provider (hanya bilang restart bila benar ada model baru)
/undoBatalkan perubahan berkas turn terakhir
/redoTerapkan ulang yang dibatalkan
/sessionsTanpa argumen = popup picker resume; /sessions <id> = langsung resume
/statusRuntime + pemakaian & biaya kumulatif sesi
/mode [nama]Ganti permission (auto, ask, plan, allowlist); tanpa argumen = putar
/lang [en|id]Bahasa UI; tanpa argumen = tampilkan aktif
/initBuat AGENTS.md proyek ini
/copy [n]Salin n turn terakhir (default 1, maksimal 10) via OSC 52
/clearKosongkan transkrip (viewport kembali kosong)
/expandBuka isi tool/thinking yang disembunyikan ledger compact (sekali ambil habis)
/history20 entri prompt terakhir
/exitKeluar (satu-satunya jalan keluar; /quit alias)

Alias (jalan, tidak diiklankan di /help): /models → /model, /providers → /provider, /usage & /cost → /status, /resume [id] → /sessions [id], /compact, /thinking, /minimize, /quit.

Did-you-mean: typo /sessoons → Did you mean /sessions? (jarak ≤ 2).

#Keyboard

TombolFungsi
enterKirim prompt (di picker/form: pilih/simpan; kosong = batal di picker)
tab / shift+tabPutar mode izin (di form: pindah field)
↑ / ↓Riwayat prompt, atau navigasi item di picker/manager/form
pgup / pgdnGulir transkrip satu halaman; dengan shift: setengah halaman (di picker/manager: gulir daftar)
mouse dragSelect teks transkrip; Ctrl+C menyalin selection app-level
mouse wheelGulir transkrip; klik prompt memindahkan kursor
home / endAwal/akhir baris; saat baris kosong tanpa dropdown: lompat ke atas transkrip / kembali ke ekor (di picker/manager: lompat atas/bawah daftar)
← / →Geser kursor (di form select/confirm: ganti opsi/nilai)
ctrl+a / ctrl+eAwal / akhir baris
delete / backspaceHapus karakter (di filter: pangkas query; di /model browse: Del = hapus model dengan konfirmasi)
ctrl+rCari riwayat prompt (prefix)
ctrl+jBaris baru (multiline; Enter tetap submit)
ctrl+wHapus satu kata sebelum kursor
ctrl+uKosongkan baris (di filter: kosongkan query)
ctrl+oPutar tool call compact/expanded (juga /compact)
ctrl+tToggle tampilan thinking expanded/minimized (juga /thinking)
escTutup dropdown/picker; dua-tahap di form (tekan-1 bersihkan field, tekan-2 batal); busy = batalkan turn
ctrl+cBatalkan input/prompt; pada turn TUI gunakan Esc untuk abort
ctrl+dKeluar saat baris kosong; busy = abaikan

#Aturan konsistensi (kontrak I25)

  • Esc dua-tahap di SEMUA input teks: isi tidak pernah hilang sekali tekan.
  • backspace/delete selalu edit teks; aksi hapus-data selalu dengan konfirmasi (dalam popup) dan tercatat di transkrip.
  • Navigasi daftar = ↑↓ + pgup/pgdn + home/end di semua popup ber-daftar.
  • Setiap permukaan menampilkan hint footer sesuai tombol yang benar-benar berlaku di sana.