常見問題
PRECC安全嗎?
是的。PRECC使用Claude Code官方的PreToolUse鉤子機制——Anthropic專門爲此目的設計的擴展點。該鉤子:
- 完全離線運行(熱路徑中無網絡調用)
- 在5毫秒內完成
- 是fail-open的:如果出現任何問題,原始命令將不受修改地運行
- 只修改命令,從不自己執行它們
- 將數據存儲在本地SQLite數據庫中
PRECC能與其他AI編碼工具一起使用嗎?
PRECC專爲Claude Code設計。它依賴於Claude Code提供的PreToolUse鉤子協議。它不適用於Cursor、Copilot、Windsurf或其他AI編碼工具。
遙測發送什麼數據?
遙測僅在選擇加入後啓用。啓用後發送:
- PRECC版本、操作系統和架構
- 彙總計數(攔截的命令、激活的技能)
- 平均鉤子延遲
它不發送命令文本、文件路徑、項目名稱或任何個人身份信息。您可以在選擇加入前使用 precc telemetry preview 預覽確切的數據。詳見遙測。
如何卸載PRECC?
PRECC is fully reversible — remove it in three steps:
-
移除鉤子註冊:
# Delete the hook entry from Claude Code's settings # (precc init added it; removing it disables PRECC) -
刪除二進制文件:
rm ~/.local/bin/precc ~/.local/bin/precc-hook ~/.local/bin/precc-learner -
刪除數據(可選):
rm -rf ~/.local/share/precc/ rm -rf ~/.config/precc/
我的許可證過期了。會發生什麼?
PRECC恢復到社區版。所有核心功能繼續正常工作:
- 內置技能保持活躍
- 鉤子管道正常運行
precc savings顯示摘要視圖precc ingest和會話挖掘正常工作
Pro功能在續訂前不可用:
precc savings --all(詳細分類)precc compressprecc gifprecc ghaprecc geofence- 電子郵件報告
鉤子似乎沒有運行。如何調試?
Run precc doctor first — it automates every check below. To diagnose by hand:
-
檢查鉤子是否已註冊:
precc init -
手動測試鉤子:
echo '{"tool_input":{"command":"cargo build"}}' | precc-hook -
檢查二進制文件是否在PATH中:
which precc-hook -
檢查
~/.claude/settings.json中的Claude Code鉤子配置。
PRECC會減慢Claude Code嗎?
不會。鉤子在5毫秒內完成(p99)。與Claude推理和生成回覆所花費的時間相比,這是不可察覺的。
我可以在CI/CD中使用PRECC嗎?
PRECC是爲交互式Claude Code會話設計的。在CI/CD中,沒有Claude Code實例可以掛鉤。但是,precc gha 可以從任何環境分析失敗的GitHub Actions運行。
挖掘的技能與內置技能有何不同?
內置技能隨PRECC提供,涵蓋常見的錯誤目錄模式。挖掘的技能從您的特定會話日誌中學習——它們捕獲您工作流程中獨特的模式。兩者都存儲在SQLite中,並由鉤子管道以相同方式評估。
我可以與團隊共享技能嗎?
可以。使用 precc skills export NAME 將任何技能導出爲TOML並共享文件。團隊成員可以將其放在 skills/ 目錄中或導入到他們的啓發式數據庫中。
Why do I see zero tokens saved?
If precc savings reports 0 tokens despite an active Claude Code session burning input/output tokens, the hook is not firing. Three causes account for almost every reported instance:
-
You are on v0.3.42 or v0.3.43. These releases shipped a data-path regression where the hook wrote metrics to a directory that the CLI then read from a different directory — both ran, but the savings number stayed at 0. Fixed in v0.3.44 (data paths routed through
db::data_dir()). Upgrade with:precc update -
Your
settings.jsonis missing the hook entry. Runprecc doctor(available in v0.3.53+). It checks each precondition of the hot path — settings file, hook entry, binary on$PATH, heuristics DB, recent invocations — and reports the first one that fails:precc doctorIf doctor is not available because you are on an older release, run
precc initto (re)register the hook. -
Your session has not yet hit a skill trigger. PRECC only intercepts Bash commands matching one of the active skills. If your session has been pure file editing or pure web fetching against domains not covered by
webfetch-opencli, you have not yet given the hook anything to compress or rewrite. This is normal. Runprecc skills listto see what triggers exist.
If after upgrading and running precc doctor you still see zero savings, file an issue at https://github.com/peri-a-i/precc-cc/issues with the output of precc doctor.
My MCP server (e.g. lean-ctx) is pegging CPU. How do I kill it safely without taking Claude Code down with it?
PRECC does not ship or supervise MCP servers — but this is a recurring trap because some MCP binaries (notably lean-ctx) are also invoked as per-Bash-tool-call wrappers by the Claude Code harness, not just as long-running servers. A naive pkill <name> then matches many short-lived wrappers in addition to the server.
Identify the runaway PID, do not kill by name:
pgrep -f "^lean-ctx$" \
| xargs -I{} ps -o pid,%cpu,etime,args -p {} \
| sort -k2 -nr | head -3
The top row is the long-running server (large etime, high %cpu). Send SIGTERM to only that PID:
kill -TERM <pid>
Avoid these forms, all of which can also kill Claude Code or break in-flight tool calls:
pkill lean-ctx— matches transientlean-ctx -c <cmd>wrappers spawned per Bash tool call.pkill -9 -f lean-ctx— same broad match, plus ungraceful exit leaves the MCP stdio half-open.pkill -g <pgid>/kill -- -<pgid>— kills the whole process group, which includesclaudeitself when the MCP server shares a session with it.
If after a clean SIGTERM the server does not exit within a few seconds, escalate with kill -KILL <pid> on the same single PID (still not by name). Claude Code will lose those MCP tools until you restart it; it should not exit on its own.
This advice is independent of PRECC — but PRECC users frequently run lean-ctx, so it is worth documenting here.
What is OpenCLI and do I need it?
OpenCLI is a third-party Node.js tool that turns ~148 websites into structured-output CLI commands (opencli hackernews top, opencli reddit search <q>, opencli arxiv search <q>, …). PRECC ships two built-in skills that work with it:
webfetch-opencli-hint— fires oncurl/wget/http/fetchagainst any of 11 OpenCLI-supported domains andsuggest_fix-es the equivalentopencli <site> …command. Suggestion only; never modifies the command.webfetch-opencli-hackernews— auto-rewritescurl|wget news.ycombinator.comtoopencli hackernews topwith an inlinecommand -v openclifallback to the original command if OpenCLI isn’t installed.
You don’t need OpenCLI for PRECC to work. The hint skill costs nothing; the auto-rewrite skill is safe to ship default-on because of the fallback.
If you want OpenCLI’s WebFetch token savings, install it with:
precc init --opencli
That runs npm install -g @jackwener/opencli (Node.js 20+ required). For cookie-reuse on logged-in pages, also install OpenCLI’s Chrome extension separately — see the project README. The extension requests broad permissions (debugger, <all_urls>, cookies); review them before installing.
precc doctor reports OpenCLI’s presence on $PATH as an informational line:
i opencli: installed (webfetch-opencli skills will auto-rewrite)
or
i opencli: not installed (run `precc init --opencli` if you want WebFetch token savings)
Never marks doctor as failing — the integration is fully opt-in.