核心目標
cx 是一款輕量化的命令列工具,用於幫助 AI Agent 更高效地導航程式庫,同時大幅節省 token 消耗。作者稱其為「10 倍更有效率的 LSP,為 AI 編程而生」,並以實際數據支撐其效能聲稱。
問題診斷與效率數據
作者分析了 105 場 Claude Code 工作階段(其中 73 場未使用 cx,32 場使用 cx),發現代理程式在程式碼導航上存在嚴重的浪費:
- 66% 的檔案讀取是鏈式的 — 讀取 A 以找到 B 再找到 C,屬於探索性閱讀
- 37% 是重複讀取 — 同一檔案在單一工作階段內被讀取多次
- 平均單次讀取耗費 ~1,200 tokens(中位數 594),工作階段平均包含 21 次讀取
引入 cx 後,實際測量結果為 58% 更少的 Read 呼叫及 40-55% 更少的程式碼導航 token 消耗。
成本階梯設計
cx 透過分級查詢提供不同的成本權衡:
cx overview src/fees.rs— 約 200 tokens,回答「這個檔案裡有什麼?」cx definition --name calc— 約 200 tokens,顯示特定函式cx symbols --kind fn— 約 70 tokens,列舉程式庫中的所有函式cx references --name calc— ~1 次查詢,找出使用位置
為何不用語言伺服器 (LSP)
作者明確指出 LSP 為編輯器最佳化,特點為持久程序、1-2GB 記憶體占用、需要逐語言設定、由人類使用。cx 則針對 Agent 的實際需求 — 單純查詢程式庫結構 — 優化,無需常駐程序、無需編譯、無需專案設定。
功能模組
- overview — 檔案目錄式概覽,顯示名稱、型別、簽名
- symbols — 跨專案搜尋,支援
--kind、--name(glob)、--file篩選;可識別公開/匯出符號 - definition — 提取函式主體而無需讀整個檔案,支援
--from、--kind、--max-lines選項 - references — 列舉所有使用位置,包含定義與使用點,顯示樹-坐標節點型別以指示用途方式(如
struct_item表定義、use_list表匯入)
技術實作
- 首次呼叫時使用 Tree-sitter 解析所有原始檔案建立索引,儲存符號、簽名與位元組範圍
- 後續呼叫以增量方式更新已變更檔案
- 語言文法透過 tree-sitter-language-pack 動態下載為共享程式庫
- 索引位置為
~/.cache/cx/indexes/,索引鍵為路徑雜湊值 - 專案根目錄偵測透過向上追蹤
.git,可透過--root覆蓋 - 遵守
.gitignore且支援.cx-ignore檔案進行額外排除
輸出與整合
- overview、symbols、references 使用 TOON 格式(token 高效的結構化格式)
- definition 使用純文字格式(中繼資料標頭 + 原始程式碼)以利可讀性
- 所有命令支援
--json選項 - Agent 整合透過
cx skill指令生成提示文本,教導 Agent 優先使用 cx 而非原始檔案讀取,可直接管道至 Claude Code 或其他相容工具的指令檔案
可擴展性
支援語言透過 Tree-sitter 查詢動態新增,無需編譯時依賴。文件提供 Swift 範例展示如何定義符號查詢、簽名提取邏輯與型別對應。
I built a little tool over the last few weeks called cx
— /indigo (@_ndigo) March 28, 2026
Its a cli tool to help your agent more efficiently navigate your codebase and save a bunch of tokens. Its a 10x more efficient LSP, built for ai coding.
Super simple, just install it, tell your agent to add the context…
