minicode

Config — File & Lokasi Data

Skema .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*"]
}
  • providers — bisa juga diisi lewat wizard/minicode config add//provider (14 preset, lihat Config & Provider).
  • mcpServers — dua bentuk: stdio (command+args) dan HTTP (url+opsional headers). Detail transport di MCP & LSP.
  • verifyCommand — dipakai --verify bila auto-detect tidak menemukan (urutan deteksi: typechecktesttsconfig).
  • bashAllowlist — pola koma/pola glob perintah bash yang dianggap aman (mode allowlist).

Global vs lokal

FileLokasiCatatan
Global~/.minicode/config.jsonBerlaku semua workspace
Lokal.minicode/config.jsonPer repo; diabaikan secara default — aktif dengan --allow-local-config / MINICODE_ALLOW_LOCAL_CONFIG=1

Merge dengan prioritas lokal menang. Mutasi (add/update provider, MCP, LSP) ditulis ke file scope asal — bukan hasil merge — agar tidak duplikat/shadowing. Semua tulis file config atomik (tmp+rename randomUUID) + chmod 600.

Kenapa lokal default-diabaikan: .minicode/config.json sering ikut ter-commit; repo yang Anda clone bisa mendaftarkan MCP server atau menyedot prompt lewat config. Percayai hanya di workspace milik Anda.

Token OAuth bukan di config

Kredensial OAuth di ~/.minicode/auth.json (chmod 600) — terpisah dari config karena config lokal rawan ikut ter-commit sedangkan token rahasia berumur pendek. Provider OAuth menyimpan apiKey: "" di config dan mengambil token saat runtime. Detail di Config & Provider.

Lokasi data

PathIsi
~/.minicode/config.jsonConfig global
~/.minicode/auth.jsonToken OAuth (chmod 600)
.minicode/config.jsonConfig lokal (default diabaikan)
.minicode/sessions.dbSessions SQLite (WAL, capped + busy-retry)
vector.dbIndex memory vector hybrid
.minicode/repomap.jsonCache repo-map (sig mtime)
.minicode/traces.jsonlTelemetry per run (prompt di-scrub)
.minicode/step-traces.jsonlTrace keputusan tool (sumber minicode stats)
.minicode/checkpoints/Manifest checkpoint (cap 20 terbaru)
.minicode/todos/<id>.json + .minicode/plans/<id>.mdRencana per sesi
.minicode/.trash/Soft-delete delete_file (cap 100, gitignored)
.minicode/MEMORY.md + hierarkiFile memory (global → lokal → root)

Override home untuk semua DB lokal/global: MINICODE_HOME (terutama agar test hermetic di POSIX, di mana homedir() mengabaikan $HOME).

Lanjut

  • Environment Variables — semua MINICODE_*.
  • Memory & Sessions — isi vector.db, sesi, checkpoint.
  • Policy & Sandbox — kenapa tulis config selalu atomik + chmod 600.