← Dokumentasi

CLI — Mode & Flags

Semua cara menjalankan Minicode: interaktif, sekali jalan, pipe, dan otomasi CI — plus flags dan environment.

Mode

Perintah · Fungsi

minicode · Mode interaktif (TUI fullscreen) + wizard bila belum ada provider

minicode "prompt" · Sekali jalan (headless)

`echo "prompt" \ · minicode` · Via pipe

minicode exec "prompt" [--json] · Headless CI — event JSONL + baris {"type":"summary"} di stdout

minicode acp · Server JSON-RPC stdio untuk IDE (subset minimal: initialize/run/cancel/shutdown)

`minicode daemon <start\ · status\ · stop\ · issue\ · sessions>` · Daemon lokal: host proses, status, hentikan, terbitkan perintah, daftar sesi anak

minicode --interactive · Paksa TUI interaktif

minicode --provider <id> "prompt" · Paksa provider agnostik tanpa ubah config (atau provider::model)

minicode config add --baseUrl <url> --apiKey <key> · Tambah provider LLM

minicode config mcp add <id> --command <cmd> --args "<a1,a2>" · Daftarkan MCP server stdio

minicode config mcp add <id> --url <https://…> · Daftarkan MCP server HTTP

minicode config lsp add <ext> --command <cmd> --args "<a1,a2>" · Daftarkan LSP server

minicode auth login [provider] · Login OAuth device-code

`minicode auth status\ · logout\ · list` · Kelola kredensial OAuth

`minicode pricing status\ · sync\ · show <model>\ · clear` · Tabel harga estimasi biaya

minicode skills list · Daftar skill terpasang

minicode sessions list · Riwayat sesi

minicode memory status [--json] · Statistik vector RAG (rows, size, hit-rate)

minicode memory reconcile [--json] [--cwd PATH] · Samakan vector.db ↔ .minicode/MEMORY.md (adopsi entri vector-only, tambah baris file-only, bersihkan baris superseded; hierarki MEMORY.md root/CLAUDE.md tak disentuh)

minicode doctor [--json] · Diagnosis lokal

minicode mcp serve · Ekspos minicode sebagai MCP server

`minicode openwork [inventory\ · context\ · export\ · merge]` · Baca, susun konteks, ekspor, atau deduplikasi pekerjaan lintas sesi; aksi tidak menjalankan task

Subcommand di-route di cli/router.ts (stats, sessions, mcp, config, skills, providers/models/sync, auth, pricing, exec, daemon, memory, doctor, acp, openwork).

Flags

Flag · Deskripsi

--verbose · Tampilkan reasoning & usage

--verify · Auto-verify + self-heal (detect: typecheck → test → tsconfig)

--sandbox docker · Bash di container ephemeral (--network none)

--sandbox none · Matikan sandbox otomatis (opt-out sadar)

--sandbox os · Paksa OS-native (bwrap/seatbelt). Sudah otomatis bila tersedia

--ratelimit <rpm> · Batas request LLM per menit

--budget <usd> · Batas biaya sesi; warn 80%, exit/break bila lewat; cost tak dikenal + pemakaian = over (fail-closed default)

--budget-strict · Penegasan eksplisit fail-closed di atas (back-compat)

--tool-scope <s> · full (default) \ · explore = subset read-only 12 tool

--plan · Deprecated — alias untuk --work-mode PLAN (read-only planning)

--allowlist · Bash hanya perintah aman (tool-access policy warisan)

--ask · Minta persetujuan untuk pemanggilan yang digate (human-supervised)

--allow-all · Profil akses privileged (path jail + bash-guard tetap aktif)

--model <name> · Override model (providerId::model paksa provider)

--provider <id> · Paksa provider id agnostik

--resume <id> · Lanjutkan history yang tersimpan; setelah kompaksi, bagian lama dapat berupa ringkasan + tail

--timeout <ms> · Hard deadline per prompt (default 3600000 = 1 jam; 0 = Infinity; jalur exec tetap 15 menit). Sesi yang idle tidak menghabiskan deadline prompt berikutnya.

--cwd <path> · Workspace root untuk tool file & jail

--allow-local-config · Percayai .minicode/config.json + allowlist lokal (default: diabaikan)

--max-steps <n> · Batas langkah tool (default 50)

--context-window <n> · Ukuran jendela konteks (token)

--session <id> · ID sesi (default random, disanitasi)

--work-mode <m> · DISCUSS \ · PLAN \ · BUILD (default: DISCUSS). Work Mode: DISCUSS = investigasi read-only, PLAN = perencanaan, BUILD = implementasi. Persetujuan hanya AUTO/ASK (default AUTO). Lihat TUI untuk /work-mode

--enable-scheduler · Opt-in scheduler otonom (default off). Tanpa flag ini, scheduler tidak dibangun sama sekali dan /scheduler menjawab "not enabled". Eksekusi manual saja lewat /scheduler run — tidak ada timer; turn otonom bersifat read-only. Lihat /scheduler status dan /scheduler stop

--runtime <mode> · off (default) \ · constructed \ · owned. Arsitektur eksekusi: off = perilaku sekarang, tak berubah; constructed = runtime + jurnal durable dibangun, turn masih jalan jalur lama; owned = setiap turn di-admit lewat runtime (kernel + jurnal durable) dan admission yang ditolak menjalankan tak apa pun. Nilai tak dikenal = off

Tanpa flag, MiniCode memakai providers[].contextWindows dari konfigurasi. Jika model/gateway tidak punya metadata itu, MiniCode memakai fallback 32.000 token (model tak dikenal) atau default konservatif 128K untuk alias router (auto/best/...), lalu memberi peringatan saat sesi mulai. Gunakan batas model yang tepat pada config atau flag; batas yang terlalu kecil memicu kompaksi dini, sedangkan batas yang terlalu besar berisiko ditolak provider. Batas berubah otomatis saat /model mengganti model. MiniCode juga membatasi keluaran stream berdasarkan ruang tersisa setelah system prompt, tools, dan riwayat dihitung.

Di TUI, Tab memutar Work Mode (Discuss → Plan → Build) dan Shift+Tab meng-toggle Permission Mode (Auto ↔ Ask). /mode <AUTO|ASK> mengubah persetujuan; /work-mode <DISCUSS|PLAN|BUILD> mengubah operating mode. Footer menampilkan Work Mode di kiri dan Permission Mode berwarna cyan di kanan, dekat penggunaan konteks; pada terminal sempit label dipadatkan.

Kapan memakai apa

Tujuan · Pakai

Memahami repo tanpa perubahan · Default (DISCUSS + AUTO) — investigasi read-only lokal

Meminta perubahan · --work-mode BUILD (AUTO default untuk persetujuan) — tool tulis/eksekusi tetap tunduk pada policy

Repo asing / perintah belum dipahami · --ask (BUILD + ASK), jawab always hanya untuk pasangan tool+args yang sudah dinilai

Review/analisis tanpa eksekusi · --work-mode PLAN (atau --work-mode DISCUSS untuk investigasi read-only murni)

CI tanpa manusia · exec --json + --budget/--max-steps; AUTO menolak ask_user deterministik

Otonom penuh di mesin sendiri · --work-mode BUILD + AUTO; isolasi tambahan --sandbox docker (atau OS) + --budget

Model mahal tak terkendali · --budget 0.50 + --budget-strict + pricing sync

Detail alasan tiap mode di Memilih Mode.

Environment variables (ringkas)

Kepala tabel penuh ada di Environment Variables; yang paling sering dipakai:

Variabel · Fungsi

MINICODE_VERIFY_CMD · Custom verify command

MINICODE_SANDBOX · docker \ · os \ · none

MINICODE_SANDBOX_STRICT=1 · Tak pernah fallback host (default request eksplisit sudah fail-closed)

MINICODE_SANDBOX_ALLOW_FALLBACK=1 · Izinkan fallback host secara eksplisit bila backend tak tersedia

MINICODE_BUDGET_STRICT=1 · Sama dengan --budget-strict

MINICODE_ALLOW_LOCAL_CONFIG=1 · Sama dengan --allow-local-config

MINICODE_WORK_MODE · DISCUSS / PLAN / BUILD — WorkMode default; precedence ada di Environment Variables

MINICODE_TOOL_SCOPE=explore · Subset read-only

MINICODE_GREP_ENGINE=js · Paksa walker internal

MINICODE_MEMORY_SCOPE · cwd \ · global \ · all

MINICODE_AUTO_MEMORY=0 · Matikan auto-simpan summary/snippet

MINICODE_TELEMETRY=0 · Matikan traces.jsonl

MINICODE_HOME · Override home untuk DB lokal/global

TAVILY_API_KEY · Tavily web_search (fallback DDG bila kosong)

NO_COLOR · Matikan warna (menang atas TTY)

MINICODE_ASCII=1 · Glyph ASCII untuk konsol tanpa UTF-8

MINICODE_STATUSLINE=rich · Spinner tampilkan token + biaya sesi

Config

Skema, contoh, scope global/lokal, dan lokasi seluruh data ada di Config — File & Lokasi Data. Config lokal tetap diabaikan kecuali operator memilih --allow-local-config atau MINICODE_ALLOW_LOCAL_CONFIG=1.

Anti-injeksi flag

cli/args.ts (hasFlag/getArg) berhenti di prompt word pertama: prompt "review --allow-all" tidak mengaktifkan flag. --cwd/value-flag setelah nama subcommand diparse per-subcommand agar tidak menembus boundary prompt.

Exit codes

Kode · Arti

0 · Sukses, atau help yang memang diminta

1 · Gagal runtime: provider error, budget lewat, turn gagal, setup gagal

2 · Salah pakai: argumen hilang/malformed, subcommand bersarang asing (token top-level asing malah jadi prompt one-shot)

Lookup yang gagal (provider/skill/sesi tak dikenal) = 1: itu kegagalan operasi, bukan pemakaian. Skrip cukup cek != 0 untuk gagal; cek == 2 untuk spesifik salah pakai.