搭配 Cursor 使用 PRECC
PRECC 最初是為 Claude Code 設計的 PreToolUse 鉤子,但底層的技能庫——cargo-wrong-dir、git-wrong-dir、npm-wrong-dir、jj-translate 等——並不綁定特定編輯器。只需一小段 shell 程式片段,就能將你在 Cursor 整合終端機中輸入的每一條指令都路由經過 precc-hook,讓那些為 Claude Code 節省 token 的改寫規則同樣也能在 Cursor 上發揮效用。
Requires
precc≥ 0.3.45. Earlier versions don’t plant the integration scripts under<data_dir>/integrations/cursor/. Runprecc updateto upgrade if you have an older release.
涵蓋範圍
此整合會攔截你在 Cursor 終端機中手動輸入的指令。在 zsh 上會於按下 Enter 之前自動改寫命令列;而在 bash 上只能發出警告(DEBUG trap 是在指令定型之後才觸發)。Cursor 的代理以 bash -c 子行程派生的指令並不會載入你的互動式 shell 初始化檔,因此鉤子看不到這些指令;要彌補此缺口需要 PATH 墊片,目前此目錄尚未提供。Cursor 的非 shell 工具呼叫(檔案編輯、程式碼搜尋)同樣不在涵蓋範圍內。
安裝
zsh(自動改寫)
source ~/.local/share/precc/integrations/cursor/precc-preexec.zsh
執行一次 precc init — 它會將腳本放置於上述路徑(使用來自 precc 儲存空間的 <data_dir>,因此 CLAUDE_CONFIG_DIR 與其他設定檔隔離機制皆會被遵循)。然後將 source 那一行加入 ~/.zshrc。precc-hook 與 jq 必須位於 PATH 中;若其中任一缺失,腳本會乾淨地不執行任何動作。
bash(僅警告)
source ~/.local/share/precc/integrations/cursor/precc-preexec.bash
執行一次 precc init — 它會將腳本放置於上述路徑。然後將 source 那一行加入 ~/.bashrc。DEBUG trap 會將建議的改寫輸出到 stderr 但不會實際套用;您可以手動複製該建議。
驗證
在 Cursor 的終端機中執行 cd /tmp(或任何不在 Rust 專案內的位置),然後輸入一條 Rust 建構指令並按下 Enter。在 zsh 上,緩衝區應就地變更為 PRECC 改寫後的形式(通常是 cd PATH && … 之類的前置)。在 bash 上則應在 stderr 看到一行 [precc] suggested rewrite: …。
注意事項
- 會增加
precc-hook的逐鍵敲擊延遲。鉤子的目標是 p50 <5 ms,但在快取冷啟動時 p99 會較高;詳見本書中關於鉤子延遲的說明。 - 此路徑沒有遙測資料。鉤子會以它偵測到的
agent_class來回報,而那不會是claude-code——你在 Cursor 上節省的 token 不會出現在公開統計頁面上。 - 改寫原因會透過
zle -M閃現一個按鍵的時間。安靜,不會干擾操作。 - 若要涵蓋代理產生的指令,下一步規劃是加入
PATH墊片(在~/.precc/bin/cargo、~/.precc/bin/git、… 放置包裝器)。