# codegraph 官方連結:https://github.com/colbymchenry/codegraph ## 說明 這主要的功能是提供 `agent` 一個預索引的程式碼知識圖譜,對使用 `claude code`、`codex` 這類工具來說,就是查找的速度更快,更精準,同時需要耗費的 `token` 數量也就會相對減少,宣傳來看效果好像不錯,實務就看個人體感。 類似的產品還有:https://github.com/abhigyanpatwari/GitNexus ## 安裝 ```shell npx @colbymchenry/codegraph ``` 安裝過程中就會自動去檢測你所安裝的相關開發工具: ![image](https://hackmd.io/_uploads/BkYU91VgMx.png) 選定你要的配置之後就可以直接安裝, 安裝之後需要重啟你的開發工具,然後執行: ``` codegraph init -i ``` 沒意外的話,執行之後會看到一個資料夾 `.codegraph`: ![image](https://hackmd.io/_uploads/HkXm-eEezx.png) 因為我的安裝是全域安裝,所以過程中就會直接把相關提示詞寫入 `~/.claude/CLAUDE.md`。 ## 實際使用 我在我的專案執行之後下去測試,確實 `claude code` 的思考過程中有出現 `codegraph` 的查找: ![image](https://hackmd.io/_uploads/HJr-B-Vlfg.png) 而且跟平常還要 `grep`、`find` 相比,效率似乎真的快了不少,一下子就可以成功定位,看起來是一個值得安裝的工具。 ## 其它指令 CodeGraph CLI 命令用途說明,以下由 `deepseek` 提供 ### 安裝與設定類 | 命令 | 用途 | |------|------| | `codegraph` | 執行互動式安裝程式,引導你完成 CodeGraph 的安裝與設定 | | `codegraph install` | 明確執行安裝程式,將 CodeGraph 設定到你的 AI 助手(Claude Code、Cursor 等) | | `codegraph uninstall` | 從你的 AI 助手中移除 CodeGraph 的所有設定(與 `install` 互為反向操作) | ### 專案初始化與管理 | 命令 | 用途 | |------|------| | `codegraph init [path]` | 在指定路徑的專案中初始化 CodeGraph(加上 `--index` 可同時建立索引) | | `codegraph uninit [path]` | 從專案中移除 CodeGraph 的設定(加上 `--force` 可略過確認提示) | ### 索引操作 | 命令 | 用途 | |------|------| | `codegraph index [path]` | 完整建立或重建專案的程式碼索引(`--force` 強制重建,`--quiet` 減少輸出) | | `codegraph sync [path]` | 執行增量更新,只重新索引變更過的檔案 | | `codegraph status [path]` | 顯示索引狀態與統計資料(如節點數、邊數、最後同步時間) | ### 符號查詢 | 命令 | 用途 | |------|------| | `codegraph query <search>` | 依名稱搜尋符號(函數、類別、變數等),支援 `--kind` 過濾類型、`--limit` 限制數量、`--json` 輸出格式 | | `codegraph callers <symbol>` | 找出「誰呼叫了」指定的函數或方法(向上追蹤),可用 `--limit` 和 `--json` | | `codegraph callees <symbol>` | 找出指定的函數或方法「呼叫了誰」(向下追蹤),可用 `--limit` 和 `--json` | | `codegraph node <symbol>` | 取得特定符號的詳細資訊(如定義位置、原始碼、簽名) | | `codegraph files [path]` | 顯示專案中被索引的檔案結構(支援 `--format`、`--filter`、`--max-depth`、`--json`) | ### 分析與影響評估 | 命令 | 用途 | |------|------| | `codegraph context <task>` | 為 AI 建立與特定任務相關的程式碼上下文(支援 `--format` 輸出格式、`--max-nodes` 節點上限) | | `codegraph impact <symbol>` | 分析修改某個符號後,會影響到哪些其他程式碼(影響半徑),可用 `--depth` 指定深度、`--json` 輸出 | | `codegraph affected [files...]` | 找出哪些測試檔案會被指定的原始碼變更所影響(常用於 CI 流程,只執行必要的測試) | ### 服務與連線 | 命令 | 用途 | |------|------| | `codegraph serve --mcp` | 啟動 CodeGraph 的 MCP 伺服器(以 stdio 模式運行,供 AI 助手透過 MCP 協定呼叫) | ### 補充說明 - 大部分命令若未指定 `[path]`,會以當前目錄作為專案路徑 - `--json` 輸出適合讓其他程式或腳本進一步處理 - `codegraph init` 只需要執行一次,之後 AI 助手就能自動使用 CodeGraph 的能力 - `codegraph serve --mcp` 通常在 AI 助手啟動時由它自動呼叫,一般不需要手動執行