Wprowadzenie
Czym jest PRECC?
PRECC (Predictive Error Correction for Claude Code) to narzędzie Rust, które przechwytuje polecenia bash Claude Code za pomocą oficjalnego mechanizmu hooków PreToolUse. Naprawia błędy zanim się pojawią, oszczędzając tokeny i eliminując pętle ponawiania.
Free for community users.
Problem
Claude Code marnuje znaczną liczbę tokenów na możliwe do uniknięcia błędy:
- Błędy katalogu – Uruchomienie
cargo buildw katalogu nadrzędnym bezCargo.toml, a następnie ponowna próba po przeczytaniu błędu. - Pętle ponawiania – Nieudane polecenie generuje szczegółowe wyjście, Claude je czyta, analizuje i ponawia próbę.
- Szczegółowe wyjście – Polecenia takie jak
findlubls -Rgenerują tysiące linii, które Claude musi przetworzyć.
Cztery filary
Context Fix (cd-prepend)
Detects when commands like cargo build or npm test run in the wrong directory and prepends cd /correct/path && before execution.
Debugowanie GDB
Wykrywa możliwości podpięcia GDB do głębszego debugowania segfaultów i awarii, dostarczając ustrukturyzowane informacje debugowania.
Eksploracja sesji
Przeszukuje logi sesji Claude Code w poszukiwaniu par awaria-naprawa. Gdy ten sam błąd się powtarza, PRECC już zna poprawkę i stosuje ją automatycznie.
Umiejętności automatyzacji
Biblioteka wbudowanych i wydobytych umiejętności dopasowujących wzorce poleceń i je przepisujących. Umiejętności definiowane są jako pliki TOML lub wiersze SQLite.
Jak to działa (wersja 30-sekundowa)
- Claude Code zamierza uruchomić polecenie bash.
- Hook PreToolUse wysyła polecenie do
precc-hookjako JSON na stdin. precc-hookprzetwarza polecenie przez potok (umiejętności, korekta katalogu, kompresja) w mniej niż 3 milisekundy.- Poprawione polecenie jest zwracane jako JSON na stdout.
- Claude Code wykonuje poprawione polecenie.
Claude nigdy nie widzi błędu. Żadne tokeny nie są marnowane.
Kompresja adaptacyjna
If a command fails after compression, PRECC automatically skips compression on the retry so Claude gets the full uncompressed output to debug with.
Statystyki użycia na żywo
| Metryka | Wartość |
|---|---|
| Wywołania hooka | – |
| Zaoszczędzone tokeny | – |
| Współczynnik oszczędności | –% |
| Przepisania RTK | – |
| Korekty CD | – |
| Opóźnienie hooka | – ms (p50) |
Figures are estimates. Each prevented failure avoids a full retry cycle: error output, model reasoning, and retry command. Te liczby aktualizują się automatycznie z zanonimizowanej telemetrii.
Linki
- GitHub: https://github.com/peria-ai/precc-cc
- Strona: https://peria.ai
- Dokumentacja: https://precc.cc
Installation
Quick Install (Linux / macOS)
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash
This downloads the latest release binary for your platform, verifies the SHA256 checksum, and places it in ~/.local/bin/.
After installation, initialize PRECC:
precc init
precc init registers the PreToolUse hook with Claude Code, creates the data directories, and initializes the skills database.
Install Options
SHA256 Verification
By default, the installer verifies the binary checksum against the published SHA256 sum. To skip verification (not recommended):
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash -s -- --no-verify
Custom Install Prefix
Install to a custom location:
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash -s -- --prefix /opt/precc
Companion Tools (–extras)
PRECC ships with optional companion tools. Install them with --extras:
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash -s -- --extras
This installs:
| Tool | Purpose |
|---|---|
| RTK | Command rewriting toolkit |
| lean-ctx | Context compression for CLAUDE.md and prompt files |
| nushell | Structured shell for advanced pipelines |
| cocoindex-code | Code indexing for faster context resolution |
Windows (PowerShell)
irm https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.ps1 | iex
Then initialize:
precc init
Manual Install
- Download the release binary for your platform from GitHub Releases.
- Verify the SHA256 checksum against the
.sha256file in the release. - Place the binary in a directory on your
PATH(e.g.,~/.local/bin/). - Run
precc init.
Updating
precc update
Force update to a specific version:
precc update --force --version 0.3.0
Enable automatic updates:
precc update --auto
Verifying Installation
$ precc --version
precc 0.3.0
$ precc savings
Session savings: 0 tokens (no commands intercepted yet)
If precc is not found, ensure ~/.local/bin is on your PATH.
Szybki start
Uruchom PRECC w 5 minut.
Krok 1: Instalacja
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash
Krok 2: Inicjalizacja
$ precc init
[precc] Hook registered with Claude Code
[precc] Created ~/.local/share/precc/
[precc] Initialized heuristics.db with 8 built-in skills
[precc] Ready.
Krok 3: Sprawdź, czy hook jest aktywny
$ precc skills list
# Name Type Triggers
1 cargo-wrong-dir built-in cargo build/test/clippy outside Rust project
2 git-wrong-dir built-in git * outside a repo
3 go-wrong-dir built-in go build/test outside Go module
4 make-wrong-dir built-in make without Makefile in cwd
5 npm-wrong-dir built-in npm/npx/pnpm/yarn outside Node project
6 python-wrong-dir built-in python/pytest/pip outside Python project
7 jj-translate built-in git * in jj-colocated repo
8 asciinema-gif built-in asciinema rec
Krok 4: Używaj Claude Code normalnie
Otwórz Claude Code i pracuj jak zwykle. PRECC działa cicho w tle. Gdy Claude wyda polecenie, które by się nie powiodło, PRECC poprawia je przed wykonaniem.
Przykład: Cargo Build w złym katalogu
Załóżmy, że twój projekt jest w ~/projects/myapp/, a Claude wydaje:
cargo build
z ~/projects/ (jeden poziom za wysoko, brak tam Cargo.toml).
Bez PRECC: Claude otrzymuje błąd could not find Cargo.toml in /home/user/projects or any parent directory, czyta go, analizuje i ponawia próbę z cd myapp && cargo build. Koszt: ~2000 tokenów zmarnowanych.
Z PRECC: Hook wykrywa brakujący Cargo.toml, znajduje go w myapp/ i przepisuje polecenie na:
cd /home/user/projects/myapp && cargo build
Claude nigdy nie widzi błędu. Zero zmarnowanych tokenów.
Krok 5: Sprawdź oszczędności
Po sesji sprawdź, ile tokenów zaoszczędził PRECC:
$ precc savings
Session Token Savings
=====================
Total estimated savings: 4,312 tokens
Breakdown:
Pillar 1 (cd prepends): 2,104 tokens (3 corrections)
Pillar 4 (skill activations): 980 tokens (2 activations)
RTK rewrites: 1,228 tokens (5 rewrites)
Kolejne kroki
- Umiejętności – Zobacz wszystkie dostępne umiejętności i jak tworzyć własne.
- Pipeline Hooka – Zrozum, co dzieje się pod maską.
- Oszczędności – Szczegółowa analiza oszczędności tokenów.
Licencja
PRECC oferuje dwa poziomy: Community (darmowy) i Pro.
Poziom Community (darmowy)
Poziom Community obejmuje:
- Wszystkie wbudowane umiejętności (korekta katalogu, tłumaczenie jj itp.)
- Pipeline hooków z pełnym wsparciem Pillar 1 i Pillar 4
- Podstawowe podsumowanie
precc savings - Eksploracja sesji za pomocą
precc ingest - Nieograniczone lokalne użycie
Poziom Pro
Pro odblokowuje dodatkowe funkcje:
- Szczegółowy rozkład oszczędności –
precc savings --allz analizą per polecenie - Nagrywanie GIF –
precc gifdo tworzenia animowanych GIF-ów terminala - Zgodność z geofence IP – Dla środowisk regulowanych
- Raporty e-mail –
precc mail reportdo wysyłania analiz - Analiza GitHub Actions –
precc ghado debugowania nieudanych workflow - Kompresja kontekstu –
precc compressdo optymalizacji CLAUDE.md - Priorytetowe wsparcie
Aktywacja licencji
$ precc license activate XXXX-XXXX-XXXX-XXXX --email you@example.com
[precc] License activated for you@example.com
[precc] Plan: Pro
[precc] Expires: 2027-04-03
Sprawdzanie statusu licencji
$ precc license status
License: Pro
Email: you@example.com
Expires: 2027-04-03
Status: Active
Aktywacja GitHub Sponsors
Jeśli sponsorujesz PRECC przez GitHub Sponsors, Twoja licencja jest aktywowana automatycznie przez e-mail GitHub. Klucz nie jest wymagany – upewnij się tylko, że e-mail sponsora pasuje:
$ precc license status
License: Pro (GitHub Sponsors)
Email: you@example.com
Status: Active (auto-renewed)
Odcisk urządzenia
Każda licencja jest powiązana z odciskiem urządzenia. Sprawdź swój za pomocą:
$ precc license fingerprint
Fingerprint: a1b2c3d4e5f6...
Jeśli musisz przenieść licencję na nową maszynę, najpierw dezaktywuj:
precc license deactivate
Następnie aktywuj na nowej maszynie.
Licencja wygasła?
Gdy licencja Pro wygaśnie, PRECC wraca do poziomu Community. Wszystkie wbudowane umiejętności i podstawowe funkcje nadal działają. Tylko funkcje specyficzne dla Pro stają się niedostępne. Zobacz FAQ, aby uzyskać więcej szczegółów.
Pipeline Hooka
Plik binarny precc-hook jest rdzeniem PRECC. Znajduje się między Claude Code a powłoką, przetwarzając każde polecenie bash w mniej niż 5 milisekund.
Jak Claude Code wywołuje Hook
Claude Code obsługuje hooki PreToolUse – zewnętrzne programy, które mogą sprawdzać i modyfikować dane wejściowe narzędzi przed wykonaniem. Gdy Claude zamierza uruchomić polecenie bash, wysyła JSON do precc-hook na stdin i odczytuje odpowiedź ze stdout.
Etapy Pipeline
Claude Code
|
v
+---------------------------+
| 1. Parse JSON stdin | Read the command from Claude Code
+---------------------------+
|
v
+---------------------------+
| 2. Skill matching | Query heuristics.db for matching skills (Pillar 4)
+---------------------------+
|
v
+---------------------------+
| 3. Directory correction | Resolve correct working directory (Pillar 1)
+---------------------------+
|
v
+---------------------------+
| 4. GDB check | Detect debug opportunities (Pillar 2)
+---------------------------+
|
v
+---------------------------+
| 5. RTK rewriting | Apply command rewrites for token savings
+---------------------------+
|
v
+---------------------------+
| 6. Emit JSON stdout | Return modified command to Claude Code
+---------------------------+
|
v
Shell executes corrected command
Przykład: Wejście i wyjście JSON
Wejście (z Claude Code)
{
"tool_input": {
"command": "cargo build"
}
}
PRECC wykrywa, że bieżący katalog nie ma Cargo.toml, ale ./myapp/Cargo.toml istnieje.
Wyjście (do Claude Code)
{
"hookSpecificOutput": {
"updatedInput": {
"command": "cd /home/user/projects/myapp && cargo build"
}
}
}
Jeśli nie jest potrzebna modyfikacja, updatedInput.command jest pusty i Claude Code używa oryginalnego polecenia.
Szczegóły etapów
Etap 1: Parsowanie JSON
Odczytuje pełny obiekt JSON ze stdin. Wyodrębnia tool_input.command. Jeśli parsowanie się nie powiedzie, hook natychmiast się kończy i Claude Code używa oryginalnego polecenia (projekt fail-open).
Etap 2: Dopasowanie umiejętności
Odpytuje bazę heurystyk SQLite o umiejętności, których wzorzec wyzwalania pasuje do polecenia. Umiejętności sprawdzane są w kolejności priorytetów. Oceniane są zarówno wbudowane umiejętności TOML, jak i wydobyte.
Etap 3: Korekta katalogu
Dla poleceń budowania (cargo, go, make, npm, python itd.) sprawdza, czy oczekiwany plik projektu istnieje w bieżącym katalogu. Jeśli nie, skanuje pobliskie katalogi w poszukiwaniu najbliższego dopasowania i dodaje cd <dir> && na początku.
Skanowanie katalogów wykorzystuje buforowany indeks systemu plików z TTL wynoszącym 5 sekund, aby zachować szybkość.
Etap 4: Sprawdzenie GDB
Jeśli polecenie prawdopodobnie spowoduje awarię (np. uruchomienie binarki debug), PRECC może zasugerować lub wstrzyknąć wrappery GDB, aby przechwycić ustrukturyzowane dane debugowania zamiast surowych logów awarii.
Etap 5: Przepisywanie RTK
Stosuje reguły RTK (Rewrite Toolkit), które skracają rozwlekłe polecenia, tłumią hałaśliwe wyjście lub restrukturyzują polecenia dla wydajności tokenów.
Etap 6: Emisja JSON
Serializuje zmodyfikowane polecenie z powrotem do JSON i zapisuje je na stdout. Jeśli nie wprowadzono zmian, wyjście sygnalizuje Claude Code, aby użył oryginalnego polecenia.
Wydajność
Cały pipeline kończy się w mniej niż 5 milisekund (p99). Kluczowe optymalizacje:
- SQLite w trybie WAL dla odczytów współbieżnych bez blokad
- Prekompilowane wzorce regex do dopasowywania umiejętności
- Buforowane skany systemu plików (TTL 5 sekund)
- Brak wywołań sieciowych na gorącej ścieżce
- Fail-open: każdy błąd przechodzi do oryginalnego polecenia
Ręczne testowanie Hooka
Możesz wywołać hook bezpośrednio:
$ echo '{"tool_input":{"command":"cargo build"}}' | precc-hook
{"hookSpecificOutput":{"updatedInput":{"command":"cd /home/user/myapp && cargo build"}}}
Umiejętności
Umiejętności to reguły dopasowywania wzorców, których PRECC używa do wykrywania i poprawiania poleceń. Mogą być wbudowane (dostarczane jako pliki TOML) lub wydobyte z logów sesji.
Wbudowane umiejętności
| Umiejętność | Wyzwalacz | Akcja |
|---|---|---|
cargo-wrong-dir | cargo build/test/clippy poza projektem Rust | Dodaj cd do najbliższego katalogu Cargo.toml |
git-wrong-dir | git * poza repozytorium git | Dodaj cd do najbliższego katalogu .git |
go-wrong-dir | go build/test poza modułem Go | Dodaj cd do najbliższego katalogu go.mod |
make-wrong-dir | make bez Makefile w bieżącym katalogu | Dodaj cd do najbliższego katalogu Makefile |
npm-wrong-dir | npm/npx/pnpm/yarn poza projektem Node | Dodaj cd do najbliższego katalogu package.json |
python-wrong-dir | python/pytest/pip poza projektem Python | Dodaj cd do najbliższego projektu Python |
jj-translate | git * w repozytorium jj-colocated | Przepisz na równoważne polecenie jj |
asciinema-gif | asciinema rec | Przepisz na precc gif |
Listowanie umiejętności
$ precc skills list
# Name Type Triggers
1 cargo-wrong-dir built-in cargo build/test/clippy outside Rust project
2 git-wrong-dir built-in git * outside a repo
3 go-wrong-dir built-in go build/test outside Go module
4 make-wrong-dir built-in make without Makefile in cwd
5 npm-wrong-dir built-in npm/npx/pnpm/yarn outside Node project
6 python-wrong-dir built-in python/pytest/pip outside Python project
7 jj-translate built-in git * in jj-colocated repo
8 asciinema-gif built-in asciinema rec
9 fix-pytest-path mined pytest with wrong test path
Wyświetlanie szczegółów umiejętności
$ precc skills show cargo-wrong-dir
Name: cargo-wrong-dir
Type: built-in
Source: skills/builtin/cargo-wrong-dir.toml
Description: Detects cargo commands run outside a Rust project and prepends
cd to the directory containing the nearest Cargo.toml.
Trigger: ^cargo\s+(build|test|clippy|run|check|bench|doc)
Action: prepend_cd
Marker: Cargo.toml
Activations: 12
Eksportowanie umiejętności do TOML
$ precc skills export cargo-wrong-dir
[skill]
name = "cargo-wrong-dir"
description = "Prepend cd for cargo commands outside a Rust project"
trigger = "^cargo\\s+(build|test|clippy|run|check|bench|doc)"
action = "prepend_cd"
marker = "Cargo.toml"
priority = 10
Edycja umiejętności
$ precc skills edit cargo-wrong-dir
Otwiera definicję umiejętności w twoim $EDITOR. Po zapisaniu umiejętność jest automatycznie przeładowywana.
Polecenie Advise
precc skills advise analizuje ostatnią sesję i sugeruje nowe umiejętności na podstawie powtarzających się wzorców:
$ precc skills advise
Analyzed 47 commands from the last session.
Suggested skills:
1. docker-wrong-dir: You ran `docker compose up` outside the project root 3 times.
Suggested trigger: ^docker\s+compose
Suggested marker: docker-compose.yml
2. terraform-wrong-dir: You ran `terraform plan` outside the infra directory 2 times.
Suggested trigger: ^terraform\s+(plan|apply|init)
Suggested marker: main.tf
Accept suggestion [1/2/skip]?
Grupowanie umiejętności
$ precc skills cluster
Grupuje podobne wydobyte umiejętności w celu identyfikacji redundantnych lub nakładających się wzorców.
Wydobyte a wbudowane umiejętności
Wbudowane umiejętności są dostarczane z PRECC i zdefiniowane w skills/builtin/*.toml. Obejmują najczęstsze błędy niewłaściwego katalogu.
Wydobyte umiejętności są tworzone przez precc ingest lub daemon precc-learner z logów sesji. Są przechowywane w ~/.local/share/precc/heuristics.db i są specyficzne dla twojego przepływu pracy. Zobacz Wydobywanie po szczegóły.
Oszczędności
PRECC śledzi szacowane oszczędności tokenów z każdego przechwycenia. Użyj precc savings, aby zobaczyć ile marnotrawstwa PRECC zapobiegł.
Szybkie podsumowanie
$ precc savings
Session Token Savings
=====================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens
Breakdown:
Pillar 1 (cd prepends): <span data-stat="session_p1_tokens">3,204</span> tokens (<span data-stat="session_p1_count">6</span> corrections)
Pillar 4 (skill activations): <span data-stat="session_p4_tokens">1,560</span> tokens (<span data-stat="session_p4_count">4</span> activations)
RTK rewrites: <span data-stat="session_rtk_tokens">2,749</span> tokens (<span data-stat="session_rtk_count">11</span> rewrites)
Lean-ctx wraps: <span data-stat="session_lean_tokens">1,228</span> tokens (<span data-stat="session_lean_count">2</span> wraps)
Szczegółowy rozkład (Pro)
$ precc savings --all
Session Token Savings (Detailed)
================================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens
Command-by-command:
# Time Command Saving Source
1 09:12 cargo build 534 tk cd prepend (cargo-wrong-dir)
2 09:14 cargo test 534 tk cd prepend (cargo-wrong-dir)
3 09:15 git status 412 tk cd prepend (git-wrong-dir)
4 09:18 npm install 824 tk cd prepend (npm-wrong-dir)
5 09:22 find . -name "*.rs" 387 tk RTK rewrite (output truncation)
6 09:25 cat src/main.rs 249 tk RTK rewrite (lean-ctx wrap)
7 09:31 cargo clippy 534 tk cd prepend (cargo-wrong-dir)
...
Pillar Breakdown:
Pillar 1 (context resolution): <span data-stat="session_p1_tokens">3,204</span> tokens <span data-stat="session_p1_pct">36.6</span>%
Pillar 2 (GDB debugging): 0 tokens 0.0%
Pillar 3 (mined preventions): 0 tokens 0.0%
Pillar 4 (automation skills): <span data-stat="session_p4_tokens">1,560</span> tokens <span data-stat="session_p4_pct">17.8</span>%
RTK rewrites: <span data-stat="session_rtk_tokens">2,749</span> tokens <span data-stat="session_rtk_pct">31.5</span>%
Lean-ctx wraps: <span data-stat="session_lean_tokens">1,228</span> tokens <span data-stat="session_lean_pct">14.1</span>%
Jak szacowane są oszczędności
Każdy typ korekty ma szacowany koszt tokenów na podstawie tego, co by się stało bez PRECC:
| Typ korekty | Szacowana oszczędność | Uzasadnienie |
|---|---|---|
| cd prepend | ~500 tokens | Wyjście błędu + rozumowanie Claude + ponowna próba |
| Aktywacja umiejętności | ~400 tokens | Wyjście błędu + rozumowanie Claude + ponowna próba |
| RTK rewrite | ~250 tokens | Szczegółowe wyjście, które Claude musiałby przeczytać |
| Lean-ctx wrap | ~600 tokens | Zawartość dużego pliku skompresowana |
| Wydobyta prewencja | ~500 tokens | Uniknięto znanego wzorca awarii |
Są to ostrożne szacunki. Rzeczywiste oszczędności są często wyższe, ponieważ rozumowanie Claude o błędach może być obszerne.
Skumulowane oszczędności
Oszczędności utrzymują się między sesjami w bazie danych PRECC. Z czasem możesz śledzić łączny wpływ:
$ precc savings
Session Token Savings
=====================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens
Lifetime savings: <span data-stat="total_tokens_saved">142,389</span> tokens across <span data-stat="total_sessions">47</span> sessions
Kompresja
precc compress zmniejsza CLAUDE.md i inne pliki kontekstowe, aby ograniczyć zużycie tokenów, gdy Claude Code je ładuje. To funkcja Pro.
Podstawowe użycie
$ precc compress .
[precc] Scanning directory: .
[precc] Found 3 context files:
CLAUDE.md (2,847 tokens -> 1,203 tokens, -57.7%)
ARCHITECTURE.md (4,112 tokens -> 2,044 tokens, -50.3%)
ALTERNATIVES.md (3,891 tokens -> 1,967 tokens, -49.5%)
[precc] Total: 10,850 tokens -> 5,214 tokens (-51.9%)
[precc] Files compressed. Use --revert to restore originals.
Przebieg próbny
Podgląd zmian bez modyfikowania plików:
$ precc compress . --dry-run
[precc] Dry run -- no files will be modified.
[precc] CLAUDE.md: 2,847 tokens -> 1,203 tokens (-57.7%)
[precc] ARCHITECTURE.md: 4,112 tokens -> 2,044 tokens (-50.3%)
[precc] ALTERNATIVES.md: 3,891 tokens -> 1,967 tokens (-49.5%)
[precc] Total: 10,850 tokens -> 5,214 tokens (-51.9%)
Przywracanie
Oryginały są automatycznie kopiowane. Aby je przywrócić:
$ precc compress --revert
[precc] Restored 3 files from backups.
Co jest kompresowane
Kompresor stosuje kilka transformacji:
- Usuwa zbędne białe znaki i puste linie
- Skraca rozwlekłe sformułowania zachowując znaczenie
- Kompresuje tabele i listy
- Usuwa komentarze i dekoracyjne formatowanie
- Zachowuje wszystkie bloki kodu, ścieżki i identyfikatory techniczne
Skompresowany wynik jest nadal czytelny dla człowieka – nie jest zminifikowany ani zaciemniony.
Celowanie w konkretne pliki
$ precc compress CLAUDE.md
[precc] CLAUDE.md: 2,847 tokens -> 1,203 tokens (-57.7%)
Raporty
precc report generuje panel analityczny podsumowujący aktywność PRECC i oszczędności tokenów.
Generowanie raportu
$ precc report
PRECC Report -- 2026-04-03
==========================
Sessions analyzed: 12
Commands intercepted: 87
Total token savings: 42,389
Top skills by activation:
1. cargo-wrong-dir 34 activations 17,204 tokens saved
2. npm-wrong-dir 18 activations 9,360 tokens saved
3. git-wrong-dir 12 activations 4,944 tokens saved
4. RTK rewrite 15 activations 3,750 tokens saved
5. python-wrong-dir 8 activations 4,131 tokens saved
Savings by pillar:
Pillar 1 (context resolution): 28,639 tokens 67.6%
Pillar 4 (automation skills): 7,000 tokens 16.5%
RTK rewrites: 3,750 tokens 8.8%
Lean-ctx wraps: 3,000 tokens 7.1%
Recent corrections:
2026-04-03 09:12 cargo build -> cd myapp && cargo build
2026-04-03 09:18 npm test -> cd frontend && npm test
2026-04-03 10:05 git status -> cd repo && git status
...
Wysyłanie raportu e-mailem
Wyślij raport na adres e-mail (wymaga konfiguracji poczty, zobacz Email):
$ precc report --email
[precc] Report sent to you@example.com
Adres odbiorcy jest odczytywany z ~/.config/precc/mail.toml. Możesz też użyć precc mail report EMAIL, aby wysłać na konkretny adres.
Dane raportu
Raporty są generowane z lokalnej bazy danych PRECC w ~/.local/share/precc/history.db. Żadne dane nie opuszczają Twojego komputera, chyba że jawnie wyślesz raport e-mailem.
Eksploracja
PRECC analizuje logi sesji Claude Code, aby uczyć się wzorców awaria-naprawa. Gdy widzi ten sam błąd ponownie, automatycznie stosuje poprawkę.
Pobieranie logów sesji
Pobranie jednego pliku
$ precc ingest ~/.claude/logs/session-2026-04-03.jsonl
[precc] Parsing session-2026-04-03.jsonl...
[precc] Found 142 commands, 8 failure-fix pairs
[precc] Stored 8 patterns in history.db
[precc] 2 new skill candidates identified
Pobranie wszystkich logów
$ precc ingest --all
[precc] Scanning ~/.claude/logs/...
[precc] Found 23 session files (14 new, 9 already ingested)
[precc] Parsing 14 new files...
[precc] Found 47 failure-fix pairs across 14 sessions
[precc] Stored 47 patterns in history.db
[precc] 5 new skill candidates identified
Wymuszone ponowne pobranie
Aby ponownie przetworzyć pliki, które zostały już pobrane:
$ precc ingest --all --force
[precc] Re-ingesting all 23 session files...
Jak działa eksploracja
- PRECC czyta plik logu sesji JSONL.
- Identyfikuje pary poleceń, w których pierwsze polecenie zawiodło, a drugie było poprawioną ponowną próbą.
- Wyodrębnia wzorzec (co poszło nie tak) i poprawkę (co Claude zrobił inaczej).
- Wzorce są przechowywane w
~/.local/share/precc/history.db. - Gdy wzorzec osiągnie próg pewności, staje się wydobytą umiejętnością w
heuristics.db.
Przykład wzorca
Failure: pytest tests/test_auth.py
Error: ModuleNotFoundError: No module named 'myapp'
Fix: cd /home/user/myapp && pytest tests/test_auth.py
Pattern: pytest outside project root -> prepend cd
Demon precc-learner
Demon precc-learner działa w tle i automatycznie obserwuje nowe logi sesji:
$ precc-learner &
[precc-learner] Watching ~/.claude/logs/ for new sessions...
[precc-learner] Processing session-2026-04-03-1412.jsonl... 3 new patterns
Demon używa powiadomień systemu plików (inotify na Linuksie, FSEvents na macOS), więc reaguje natychmiast po zakończeniu sesji.
Od wzorców do umiejętności
Wydobyte wzorce awansują do umiejętności, gdy spełniają te kryteria:
- Widziane co najmniej 3 razy w różnych sesjach
- Spójny wzorzec naprawy (ten sam typ korekty za każdym razem)
- Brak wykrytych fałszywych trafień
Możesz przejrzeć kandydatów na umiejętności za pomocą:
$ precc skills advise
Szczegóły dotyczące zarządzania umiejętnościami znajdziesz w Skills.
Przechowywanie danych
- Pary awaria-naprawa:
~/.local/share/precc/history.db - Awansowane umiejętności:
~/.local/share/precc/heuristics.db
Obie to bazy danych SQLite w trybie WAL dla bezpiecznego równoczesnego dostępu.
PRECC może wysyłać raporty i pliki e-mailem. Wymaga jednorazowej konfiguracji SMTP.
Konfiguracja
$ precc mail setup
SMTP host: smtp.gmail.com
SMTP port [587]: 587
Username: you@gmail.com
Password: ********
From address [you@gmail.com]: you@gmail.com
[precc] Mail configuration saved to ~/.config/precc/mail.toml
[precc] Sending test email to you@gmail.com...
[precc] Test email sent successfully.
Plik konfiguracyjny
Konfiguracja jest przechowywana w ~/.config/precc/mail.toml:
[smtp]
host = "smtp.gmail.com"
port = 587
username = "you@gmail.com"
password = "app-password-here"
from = "you@gmail.com"
tls = true
Możesz edytować ten plik bezpośrednio:
$EDITOR ~/.config/precc/mail.toml
W przypadku Gmaila użyj Hasła aplikacji zamiast hasła do konta.
Wysyłanie raportów
$ precc mail report team@example.com
[precc] Generating report...
[precc] Sending to team@example.com...
[precc] Report sent.
Wysyłanie plików
$ precc mail send colleague@example.com output.log
[precc] Sending output.log to colleague@example.com...
[precc] Sent (14.2 KB).
Obsługa przekaźnika SSH
Jeśli Twoja maszyna nie może bezpośrednio połączyć się z serwerem SMTP (np. za firmowym firewallem), PRECC obsługuje przekazywanie przez tunel SSH:
[smtp]
host = "localhost"
port = 2525
[ssh_relay]
host = "relay.example.com"
user = "you"
remote_port = 587
local_port = 2525
PRECC automatycznie ustanowi tunel SSH przed wysłaniem.
Nagrywanie GIF
precc gif tworzy animowane nagrania GIF sesji terminala ze skryptów bash. To funkcja Pro.
Podstawowe użycie
$ precc gif script.sh 30s
[precc] Recording script.sh (max 30s)...
[precc] Running: echo "Hello, world!"
[precc] Running: cargo build --release
[precc] Running: cargo test
[precc] Recording complete.
[precc] Output: script.gif (1.2 MB, 24s)
Pierwszy argument to skrypt bash zawierający polecenia do uruchomienia. Drugi argument to maksymalna długość nagrania.
Format skryptu
Skrypt to standardowy plik bash:
#!/bin/bash
echo "Building project..."
cargo build --release
echo "Running tests..."
cargo test
echo "Done!"
Symulacja danych wejściowych
W przypadku poleceń interaktywnych podaj wartości wejściowe jako dodatkowe argumenty:
$ precc gif interactive-demo.sh 60s "yes" "my-project" "3"
Każdy dodatkowy argument jest podawany jako linia stdin, gdy skrypt prosi o dane wejściowe.
Opcje wyjścia
Plik wyjściowy jest domyślnie nazwany po skrypcie (script.gif). GIF używa ciemnego motywu terminala o standardowych wymiarach 80x24.
Dlaczego GIF zamiast asciinema?
Wbudowana umiejętność asciinema-gif automatycznie zamienia asciinema rec na precc gif. Pliki GIF są bardziej przenośne – wyświetlają się inline w README GitHub, Slack i e-mailu bez potrzeby odtwarzacza.
Analiza GitHub Actions
precc gha analizuje nieudane uruchomienia GitHub Actions i sugeruje poprawki. To funkcja Pro.
Użycie
Podaj URL nieudanego uruchomienia GitHub Actions:
$ precc gha https://github.com/myorg/myrepo/actions/runs/12345678
[precc] Fetching run 12345678...
[precc] Run: CI / build (ubuntu-latest)
[precc] Status: failure
[precc] Failed step: Run cargo test
[precc] Log analysis:
Error: test result: FAILED. 2 passed; 1 failed
Failed test: tests::integration::test_database_connection
Cause: thread 'tests::integration::test_database_connection' panicked at
'called Result::unwrap() on an Err value: Connection refused'
[precc] Suggested fix:
The test requires a database connection but the CI environment does not
start a database service. Add a services block to your workflow:
services:
postgres:
image: postgres:15
ports:
- 5432:5432
env:
POSTGRES_PASSWORD: test
Co robi
- Parsuje URL uruchomienia GitHub Actions, aby wyodrębnić właściciela, repozytorium i ID uruchomienia.
- Pobiera logi uruchomienia przez API GitHub (używa
GITHUB_TOKENjeśli ustawiony, w przeciwnym razie dostęp publiczny). - Identyfikuje nieudany krok i wyodrębnia odpowiednie linie błędów.
- Analizuje błąd i sugeruje poprawkę na podstawie typowych wzorców awarii CI.
Obsługiwane wzorce awarii
- Brakujące kontenery usług (bazy danych, Redis itp.)
- Nieprawidłowy system operacyjny lub architektura runnera
- Brakujące zmienne środowiskowe lub sekrety
- Błędy instalacji zależności
- Przekroczenia limitu czasu testów
- Błędy uprawnień
- Braki w cache powodujące wolne kompilacje
Geofence
PRECC zawiera sprawdzanie zgodności geofence IP dla środowisk regulowanych. To funkcja Pro.
Przegląd
Niektóre organizacje wymagają, aby narzędzia programistyczne działały tylko w zatwierdzonych regionach geograficznych. Funkcja geofence PRECC sprawdza, czy adres IP bieżącej maszyny znajduje się na liście dozwolonych regionów.
Sprawdzanie zgodności
$ precc geofence check
[precc] Current IP: 203.0.113.42
[precc] Region: US-East (Virginia)
[precc] Status: COMPLIANT
[precc] Policy: us-east-1, us-west-2, eu-west-1
Jeśli maszyna jest poza dozwolonymi regionami:
$ precc geofence check
[precc] Current IP: 198.51.100.7
[precc] Region: AP-Southeast (Singapore)
[precc] Status: NON-COMPLIANT
[precc] Policy: us-east-1, us-west-2, eu-west-1
[precc] Warning: Current region is not in the allowed list.
Odświeżanie danych geofence
$ precc geofence refresh
[precc] Fetching updated IP geolocation data...
[precc] Updated. Cache expires in 24h.
Wyświetlanie informacji geofence
$ precc geofence info
Geofence Configuration
======================
Policy file: ~/.config/precc/geofence.toml
Allowed regions: us-east-1, us-west-2, eu-west-1
Cache age: 2h 14m
Last check: 2026-04-03 09:12:00 UTC
Status: COMPLIANT
Czyszczenie pamięci podręcznej
$ precc geofence clear
[precc] Geofence cache cleared.
Konfiguracja
Polityka geofence jest zdefiniowana w ~/.config/precc/geofence.toml:
[geofence]
allowed_regions = ["us-east-1", "us-west-2", "eu-west-1"]
check_on_init = true
block_on_violation = false
Ustaw block_on_violation = true, aby zapobiec działaniu PRECC poza dozwolonymi regionami.
Telemetria
PRECC obsługuje opcjonalną anonimową telemetrię w celu ulepszenia narzędzia. Żadne dane nie są zbierane bez Twojej wyraźnej zgody.
Włączenie
$ precc telemetry consent
[precc] Telemetry enabled. Thank you for helping improve PRECC.
[precc] You can revoke consent at any time with: precc telemetry revoke
Wyłączenie
$ precc telemetry revoke
[precc] Telemetry disabled. No further data will be sent.
Sprawdzanie statusu
$ precc telemetry status
Telemetry: disabled
Last sent: never
Podgląd wysyłanych danych
Przed włączeniem możesz zobaczyć dokładnie, jakie dane byłyby zbierane:
$ precc telemetry preview
Telemetry payload (this session):
{
"version": "0.3.0",
"os": "linux",
"arch": "x86_64",
"skills_activated": 12,
"commands_intercepted": 87,
"pillars_used": [1, 4],
"avg_hook_latency_ms": 2.3,
"session_count": 1
}
Co jest zbierane
- Wersja PRECC, system operacyjny i architektura
- Zagregowane liczby: przechwycone polecenia, aktywowane umiejętności, użyte filary
- Średnie opóźnienie hooka
- Liczba sesji
Czego NIE zbieramy
- Brak tekstu poleceń lub argumentów
- Brak ścieżek plików lub nazw katalogów
- Brak nazw projektów lub adresów URL repozytoriów
- Brak danych osobowych (PII)
- Brak adresów IP (serwer ich nie rejestruje)
Nadpisanie zmienną środowiskową
Aby wyłączyć telemetrię bez uruchamiania polecenia (przydatne w CI lub środowiskach współdzielonych):
export PRECC_NO_TELEMETRY=1
To ma pierwszeństwo nad ustawieniem zgody.
Miejsce docelowe danych
Dane telemetryczne są wysyłane do https://telemetry.peria.ai/v1/precc przez HTTPS. Dane są wykorzystywane wyłącznie do zrozumienia wzorców użycia i priorytetyzacji rozwoju.
Referencja poleceń
Pełna referencja wszystkich poleceń PRECC.
precc init
Zainicjalizuj PRECC i zarejestruj hook w Claude Code.
precc init
Options:
(none)
Effects:
- Registers PreToolUse:Bash hook with Claude Code
- Creates ~/.local/share/precc/ data directory
- Initializes heuristics.db with built-in skills
- Prompts for telemetry consent
precc ingest
Wydobywaj wzorce awaria-naprawa z logów sesji.
precc ingest [FILE] [--all] [--force]
Arguments:
FILE Path to a session log file (.jsonl)
Options:
--all Ingest all session logs from ~/.claude/logs/
--force Re-process files that were already ingested
Examples:
precc ingest session.jsonl
precc ingest --all
precc ingest --all --force
precc skills
Zarządzaj umiejętnościami automatyzacji.
precc skills list
precc skills list
List all active skills (built-in and mined).
precc skills show
precc skills show NAME
Show detailed information about a specific skill.
Arguments:
NAME Skill name (e.g., cargo-wrong-dir)
precc skills export
precc skills export NAME
Export a skill definition as TOML.
Arguments:
NAME Skill name
precc skills edit
precc skills edit NAME
Open a skill definition in $EDITOR.
Arguments:
NAME Skill name
precc skills advise
precc skills advise
Analyze recent sessions and suggest new skills based on repeated patterns.
precc skills cluster
precc skills cluster
Group similar mined skills to identify redundant or overlapping patterns.
precc report
Wygeneruj raport analityczny.
precc report [--email]
Options:
--email Send the report via email (requires mail setup)
precc savings
Pokaż oszczędności tokenów.
precc savings [--all]
Options:
--all Show detailed per-command breakdown (Pro)
precc compress
Kompresuj pliki kontekstowe, aby zmniejszyć zużycie tokenów.
precc compress [DIR] [--dry-run] [--revert]
Arguments:
DIR Directory or file to compress (default: current directory)
Options:
--dry-run Preview changes without modifying files
--revert Restore files from backup
precc license
Zarządzaj licencją PRECC.
precc license activate
precc license activate KEY --email EMAIL
Arguments:
KEY License key (XXXX-XXXX-XXXX-XXXX)
Options:
--email EMAIL Email address associated with the license
precc license status
precc license status
Display current license status, plan, and expiration.
precc license deactivate
precc license deactivate
Deactivate the license on this machine.
precc license fingerprint
precc license fingerprint
Display the device fingerprint for this machine.
precc mail
Funkcjonalność e-mail.
precc mail setup
precc mail setup
Interactive SMTP configuration. Saves to ~/.config/precc/mail.toml.
precc mail report
precc mail report EMAIL
Send a PRECC analytics report to the specified email address.
Arguments:
EMAIL Recipient email address
precc mail send
precc mail send EMAIL FILE
Send a file as an email attachment.
Arguments:
EMAIL Recipient email address
FILE Path to the file to send
precc update
Zaktualizuj PRECC do najnowszej wersji.
precc update [--force] [--version VERSION] [--auto]
Options:
--force Force update even if already on latest
--version VERSION Update to a specific version
--auto Enable automatic updates
precc telemetry
Zarządzaj anonimową telemetrią.
precc telemetry consent
precc telemetry consent
Opt in to anonymous telemetry.
precc telemetry revoke
precc telemetry revoke
Opt out of telemetry. No further data will be sent.
precc telemetry status
precc telemetry status
Show current telemetry consent status.
precc telemetry preview
precc telemetry preview
Display the telemetry payload that would be sent (without sending it).
precc geofence
Zgodność geofence IP (Pro).
precc geofence check
precc geofence check
Check if the current machine is in an allowed region.
precc geofence refresh
precc geofence refresh
Refresh the IP geolocation cache.
precc geofence clear
precc geofence clear
Clear the geofence cache.
precc geofence info
precc geofence info
Display geofence configuration and current status.
precc gif
Nagrywaj animowane GIF-y ze skryptów bash (Pro).
precc gif SCRIPT LENGTH [INPUTS...]
Arguments:
SCRIPT Path to a bash script
LENGTH Maximum recording duration (e.g., 30s, 2m)
INPUTS... Optional input lines for interactive prompts
Examples:
precc gif demo.sh 30s
precc gif interactive.sh 60s "yes" "my-project"
precc gha
Analizuj nieudane uruchomienia GitHub Actions (Pro).
precc gha URL
Arguments:
URL GitHub Actions run URL
Example:
precc gha https://github.com/org/repo/actions/runs/12345678
precc cache-hint
Wyświetl informacje o wskazówkach pamięci podręcznej dla bieżącego projektu.
precc cache-hint
precc trial
Rozpocznij okres próbny Pro.
precc trial EMAIL
Arguments:
EMAIL Email address for the trial
precc nushell
Uruchom sesję Nushell z integracją PRECC.
precc nushell
FAQ
Czy PRECC jest bezpieczny?
Tak. PRECC używa oficjalnego mechanizmu hooków PreToolUse Claude Code – tego samego punktu rozszerzenia, który Anthropic zaprojektował do tego celu. Hook:
- Działa całkowicie offline (brak wywołań sieciowych na ścieżce krytycznej)
- Kończy się w mniej niż 5 milisekund
- Jest fail-open: jeśli coś pójdzie nie tak, oryginalne polecenie uruchomi się bez zmian
- Tylko modyfikuje polecenia, nigdy ich sam nie wykonuje
- Przechowuje dane lokalnie w bazach danych SQLite
Czy PRECC działa z innymi narzędziami AI do kodowania?
PRECC jest zaprojektowany specjalnie dla Claude Code. Opiera się na protokole hooków PreToolUse, który zapewnia Claude Code. Nie działa z Cursor, Copilot, Windsurf ani innymi narzędziami AI do kodowania.
Jakie dane wysyła telemetria?
Telemetria jest tylko opt-in. Po włączeniu wysyła:
- Wersję PRECC, system operacyjny i architekturę
- Zagregowane liczby (przechwycone polecenia, aktywowane umiejętności)
- Średnie opóźnienie hooka
Nie wysyła tekstu poleceń, ścieżek plików, nazw projektów ani żadnych danych osobowych. Przed włączeniem możesz podejrzeć dokładne dane za pomocą precc telemetry preview. Szczegóły w Telemetria.
Jak odinstalować PRECC?
??faq_uninstall_a_intro??
-
Usuń rejestrację hooka:
# Delete the hook entry from Claude Code's settings # (precc init added it; removing it disables PRECC) -
Usuń plik binarny:
rm ~/.local/bin/precc ~/.local/bin/precc-hook ~/.local/bin/precc-learner -
Usuń dane (opcjonalne):
rm -rf ~/.local/share/precc/ rm -rf ~/.config/precc/
Moja licencja wygasła. Co się stanie?
PRECC wraca do poziomu Community. Cała podstawowa funkcjonalność nadal działa:
- Wbudowane umiejętności pozostają aktywne
- Pipeline hooka działa normalnie
precc savingspokazuje widok podsumowaniaprecc ingesti eksploracja sesji działają
Funkcje Pro stają się niedostępne do momentu odnowienia:
precc savings --all(szczegółowy podział)precc compressprecc gifprecc ghaprecc geofence- Raporty e-mail
Hook nie wydaje się działać. Jak debugować?
??faq_debug_a_intro??
-
Sprawdź, czy hook jest zarejestrowany:
precc init -
Przetestuj hook ręcznie:
echo '{"tool_input":{"command":"cargo build"}}' | precc-hook -
Sprawdź, czy plik binarny jest w PATH:
which precc-hook -
Sprawdź konfigurację hooka Claude Code w
~/.claude/settings.json.
Czy PRECC spowalnia Claude Code?
Nie. Hook kończy się w mniej niż 5 milisekund (p99). Jest to niezauważalne w porównaniu z czasem, jaki Claude poświęca na rozumowanie i generowanie odpowiedzi.
Czy mogę używać PRECC w CI/CD?
PRECC jest zaprojektowany do interaktywnych sesji Claude Code. W CI/CD nie ma instancji Claude Code, do której można się podłączyć. Jednak precc gha może analizować nieudane uruchomienia GitHub Actions z dowolnego środowiska.
Czym różnią się wydobyte umiejętności od wbudowanych?
Wbudowane umiejętności są dostarczane z PRECC i obejmują typowe wzorce złego katalogu. Wydobyte umiejętności są uczone z Twoich konkretnych logów sesji – przechwytują wzorce unikalne dla Twojego przepływu pracy. Oba typy są przechowywane w SQLite i oceniane identycznie przez pipeline hooka.
Czy mogę udostępniać umiejętności zespołowi?
Tak. Wyeksportuj dowolną umiejętność do TOML za pomocą precc skills export NAME i udostępnij plik. Członkowie zespołu mogą umieścić go w katalogu skills/ lub zaimportować do bazy danych heurystyk.