자주 묻는 질문
PRECC는 안전한가요?
네. PRECC는 Claude Code의 공식 PreToolUse 훅 메커니즘을 사용합니다 – Anthropic이 정확히 이 목적을 위해 설계한 확장 포인트입니다. 훅은:
- 완전히 오프라인으로 실행 (핫 패스에서 네트워크 호출 없음)
- 5밀리초 이내에 완료
- 페일 오픈: 문제가 발생하면 원래 명령이 수정 없이 실행
- 명령만 수정하고 직접 실행하지 않음
- 로컬 SQLite 데이터베이스에 데이터 저장
PRECC는 다른 AI 코딩 도구와 호환되나요?
PRECC는 Claude Code 전용으로 설계되었습니다. Claude Code가 제공하는 PreToolUse 훅 프로토콜에 의존합니다. Cursor, Copilot, Windsurf 또는 다른 AI 코딩 도구와는 호환되지 않습니다.
텔레메트리는 어떤 데이터를 전송하나요?
텔레메트리는 옵트인 방식입니다. 활성화하면 다음을 전송합니다:
- PRECC 버전, OS 및 아키텍처
- 집계 카운트 (가로챈 명령, 활성화된 스킬)
- 평균 훅 지연 시간
명령 텍스트, 파일 경로, 프로젝트 이름 또는 개인 식별 정보를 전송하지 않습니다. 옵트인 전에 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는 Community 티어로 돌아갑니다. 모든 핵심 기능은 계속 작동합니다:
- 기본 스킬은 활성 상태 유지
- 훅 파이프라인은 정상 작동
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.