src/cli/cli.c(11,928 行)· cli.hcli.c 是「安裝體驗」的所在。它做的事包括:install(下載/驗證/啟動)、uninstall、update(印出重跑 install.sh 的指令)、config(設定讀寫)、以及把 CBM 設定進 43 個 coding agent(Claude Code、Codex、OpenCode、Cursor、Gemini CLI…)。
更新刻意不做「in-process updater」——因為那結構上是「下載 + 解壓 + 標記執行 + 執行」,正是防毒軟體最警戒的 dropper 行為。所以 update 只驗證旗標、印出「重跑 install.sh」的指令,由外部指令碼完成實際替換(install.sh 是 idempotent,重跑就是更新)。
37 個自動偵測 + 6 個 conditional/explicit(有已存在的 config 路徑才寫)。每個平台寫入:MCP config、durable context(AGENTS.md / GEMINI.md 等)、skill、以及對應的 hooks。設計原則是絕不亂開實驗性 flag、不啟用 plugin、不信任第三方指令。
從一份 canonical contract 產生三層定義:
每層都批次呼叫 check_index_coverage 檢查證據路徑——clean 只代表「沒有記錄缺口」。
設定存在 ${CBM_CACHE_DIR}/_config.db(SQLite)。例:config set auto_index true 讓新專案首次連線自動索引;auto_watch false 關掉背景 watcher 註冊。