minicode

Menggunakan

CLI — Mode & Flags

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

#Mode

PerintahFungsi
minicodeMode interaktif (REPL) + wizard bila belum ada provider
minicode "prompt"Sekali jalan (headless)
echo "prompt" | minicodeVia pipe
minicode exec "prompt" [--json]Headless CI — event JSONL + baris {"type":"summary"} di stdout
minicode acpServer JSON-RPC stdio untuk IDE (subset minimal: initialize/run/cancel/shutdown)
minicode --interactivePaksa REPL
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|listKelola kredensial OAuth
minicode pricing status|sync|show <model>|clearTabel harga estimasi biaya
minicode skills listDaftar skill terpasang
minicode sessions listRiwayat sesi
minicode memory status [--json]Statistik vector RAG (rows, size, hit-rate)
minicode doctor [--json]Diagnosis lokal
minicode mcp serveEkspos minicode sebagai MCP server

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

#Flags

FlagDeskripsi
--verboseTampilkan reasoning & usage
--verifyAuto-verify + self-heal (detect: typecheck → test → tsconfig)
--sandbox dockerBash di container ephemeral (--network none)
--sandbox noneMatikan sandbox otomatis (opt-out sadar)
--sandbox osPaksa 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-strictPenegasan eksplisit fail-closed di atas (back-compat)
--tool-scope <s>full (default) | explore = subset read-only 12 tool
--planRead-only plan mode
--allowlistBash hanya perintah aman
--askTanya persetujuan setiap tool
--allow-allNonaktifkan semua sandbox (path jail tetap aktif)
--model <name>Override model (providerId::model paksa provider)
--provider <id>Paksa provider id agnostik
--resume <id>Lanjutkan sesi (full history, bukan dump teks)
--timeout <ms>Hard deadline per run (default 900000; 0 = Infinity)
--cwd <path>Workspace root untuk tool file & jail
--allow-local-configPercayai .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)

Di REPL, Shift+Tab memutar permission (auto → ask → plan → allowlist) dan benar-benar mengubah keputusan, bukan label. Di baris kosong, Tab juga memutar mode (auto → ask → plan → allowlist).

#Kapan memakai apa

TujuanPakai
Kerja harian biasaDefault (auto) — tulis aman langsung jalan, yang berisiko minta izin
Repo asing / perintah belum dipahami--ask, jawab always hanya untuk pasangan tool+args yang sudah dinilai
Review tanpa eksekusi--plan (+ --tool-scope explore bila ingin subset baca 12 tool)
CI tanpa manusiaexec --json + --budget/--max-steps; hindari prompt yang butuh klarifikasi
Otonom penuh di mesin sendiri--allow-all + --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:

VariabelFungsi
MINICODE_VERIFY_CMDCustom verify command
MINICODE_SANDBOXdocker | os | none
MINICODE_SANDBOX_STRICT=1Tak pernah fallback host (default request eksplisit sudah fail-closed)
MINICODE_SANDBOX_ALLOW_FALLBACK=1Izinkan fallback host secara eksplisit bila backend tak tersedia
MINICODE_BUDGET_STRICT=1Sama dengan --budget-strict
MINICODE_ALLOW_LOCAL_CONFIG=1Sama dengan --allow-local-config
MINICODE_TOOL_SCOPE=exploreSubset read-only
MINICODE_GREP_ENGINE=jsPaksa walker internal
MINICODE_MEMORY_SCOPEcwd | global | all
MINICODE_AUTO_MEMORY=0Matikan auto-simpan summary/snippet
MINICODE_TELEMETRY=0Matikan traces.jsonl
MINICODE_HOMEOverride home untuk DB lokal/global
TAVILY_API_KEYTavily web_search (fallback DDG bila kosong)
NO_COLORMatikan warna (menang atas TTY)
MINICODE_ASCII=1Glyph ASCII untuk konsol tanpa UTF-8
MINICODE_STATUSLINE=richSpinner tampilkan token + biaya sesi

#Config .minicode/config.json

{
  "providers": [{ "id": "my-provider", "baseUrl": "...", "apiKey": "...", "models": ["gpt-4o"] }],
  "mcpServers": [
    { "id": "fs", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"] },
    { "id": "remote", "url": "https://mcp.example.com/mcp", "headers": { "authorization": "Bearer xxx" } }
  ],
  "lspServers": [{ "ext": ".ts", "command": "typescript-language-server", "args": ["--stdio"] }],
  "verifyCommand": "bun run typecheck",
  "bashAllowlist": ["git status*", "bun test*", "npm run build*"]
}

Global (~/.minicode/config.json) selalu dibaca. Lokal (.minicode/config.json) adalah input repo tak terpercaya dan DIABAIKAN kecuali operator opt-in per invokasi (--allow-local-config / MINICODE_ALLOW_LOCAL_CONFIG=1) — tanpa itu MCP server lokal tidak di-spawn, endpoint provider lokal tidak dipakai, verifyCommand/bashAllowlist lokal tidak berlaku. Tulis eksplisit (config add --local) tak terpengaruh.

#Anti-injeksi flag

cli/args.ts:53 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

KodeArti
0Sukses, atau help yang memang diminta
1Gagal runtime: provider error, budget lewat, turn gagal, setup gagal
2Salah pakai: argumen hilang/malformed, subcommand asing

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.