m>minicode

CLI — Mode & Flags

sumber: cli/router.tsEdit di GitHub

CLI — Mode & Flags

Sumber: docs/USAGE.md bagian Mode CLI + Flags, cli/router.ts, cli/index.ts, cli/commands/.

Mode

PerintahFungsi
minicodeMode interaktif (REPL) + 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 --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\list`Kelola kredensial OAuth
`minicode pricing status\sync\show <model>\clear`Tabel 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:68-122 (13 nama / 11 handler: stats sessions mcp config skills providers/models/sync auth pricing exec memory doctor).

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
--budget-strictFail-closed: cost tak dikenal dianggap over budget
--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
--max-steps <n>Batas langkah tool (default 50)
--context-window <n>Ukuran jendela konteks (token)
--session <id>ID sesi (default random, disanitasi)

Di TUI, Shift+Tab memutar permission (autoaskplanallowlist) dan benar-benar mengubah keputusan, bukan label. Di baris kosong, Tab juga memutar mode (autoaskplanallowlist).

Environment variables (ringkas)

Kepala tabel penuh ada di docs/USAGE.md; yang paling sering dipakai:

VariabelFungsi
MINICODE_VERIFY_CMDCustom verify command
MINICODE_SANDBOXdocker \os \none
MINICODE_SANDBOX_STRICT=1Fail-closed bila isolasi tak tersedia
MINICODE_BUDGET_STRICT=1Sama dengan --budget-strict
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) + lokal (.minicode/config.json) di-merge, lokal menang.

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.