Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 build w katalogu nadrzędnym bez Cargo.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 find lub ls -R generują 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)

  1. Claude Code zamierza uruchomić polecenie bash.
  2. Hook PreToolUse wysyła polecenie do precc-hook jako JSON na stdin.
  3. precc-hook przetwarza polecenie przez potok (umiejętności, korekta katalogu, kompresja) w mniej niż 3 milisekundy.
  4. Poprawione polecenie jest zwracane jako JSON na stdout.
  5. 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

MetrykaWartość
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

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:

ToolPurpose
RTKCommand rewriting toolkit
lean-ctxContext compression for CLAUDE.md and prompt files
nushellStructured shell for advanced pipelines
cocoindex-codeCode 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

  1. Download the release binary for your platform from GitHub Releases.
  2. Verify the SHA256 checksum against the .sha256 file in the release.
  3. Place the binary in a directory on your PATH (e.g., ~/.local/bin/).
  4. 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

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ściprecc savings --all z analizą per polecenie
  • Nagrywanie GIFprecc gif do tworzenia animowanych GIF-ów terminala
  • Zgodność z geofence IP – Dla środowisk regulowanych
  • Raporty e-mailprecc mail report do wysyłania analiz
  • Analiza GitHub Actionsprecc gha do debugowania nieudanych workflow
  • Kompresja kontekstuprecc compress do 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śćWyzwalaczAkcja
cargo-wrong-dircargo build/test/clippy poza projektem RustDodaj cd do najbliższego katalogu Cargo.toml
git-wrong-dirgit * poza repozytorium gitDodaj cd do najbliższego katalogu .git
go-wrong-dirgo build/test poza modułem GoDodaj cd do najbliższego katalogu go.mod
make-wrong-dirmake bez Makefile w bieżącym kataloguDodaj cd do najbliższego katalogu Makefile
npm-wrong-dirnpm/npx/pnpm/yarn poza projektem NodeDodaj cd do najbliższego katalogu package.json
python-wrong-dirpython/pytest/pip poza projektem PythonDodaj cd do najbliższego projektu Python
jj-translategit * w repozytorium jj-colocatedPrzepisz na równoważne polecenie jj
asciinema-gifasciinema recPrzepisz 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 korektySzacowana oszczędnośćUzasadnienie
cd prepend~500 tokensWyjście błędu + rozumowanie Claude + ponowna próba
Aktywacja umiejętności~400 tokensWyjście błędu + rozumowanie Claude + ponowna próba
RTK rewrite~250 tokensSzczegółowe wyjście, które Claude musiałby przeczytać
Lean-ctx wrap~600 tokensZawartość dużego pliku skompresowana
Wydobyta prewencja~500 tokensUniknię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

  1. PRECC czyta plik logu sesji JSONL.
  2. Identyfikuje pary poleceń, w których pierwsze polecenie zawiodło, a drugie było poprawioną ponowną próbą.
  3. Wyodrębnia wzorzec (co poszło nie tak) i poprawkę (co Claude zrobił inaczej).
  4. Wzorce są przechowywane w ~/.local/share/precc/history.db.
  5. 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.

E-mail

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

  1. Parsuje URL uruchomienia GitHub Actions, aby wyodrębnić właściciela, repozytorium i ID uruchomienia.
  2. Pobiera logi uruchomienia przez API GitHub (używa GITHUB_TOKEN jeśli ustawiony, w przeciwnym razie dostęp publiczny).
  3. Identyfikuje nieudany krok i wyodrębnia odpowiednie linie błędów.
  4. 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

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??

  1. Usuń rejestrację hooka:

    # Delete the hook entry from Claude Code's settings
    # (precc init added it; removing it disables PRECC)
    
  2. Usuń plik binarny:

    rm ~/.local/bin/precc ~/.local/bin/precc-hook ~/.local/bin/precc-learner
    
  3. 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 savings pokazuje widok podsumowania
  • precc ingest i eksploracja sesji działają

Funkcje Pro stają się niedostępne do momentu odnowienia:

  • precc savings --all (szczegółowy podział)
  • precc compress
  • precc gif
  • precc gha
  • precc geofence
  • Raporty e-mail

Hook nie wydaje się działać. Jak debugować?

??faq_debug_a_intro??

  1. Sprawdź, czy hook jest zarejestrowany:

    precc init
    
  2. Przetestuj hook ręcznie:

    echo '{"tool_input":{"command":"cargo build"}}' | precc-hook
    
  3. Sprawdź, czy plik binarny jest w PATH:

    which precc-hook
    
  4. 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.

Inne języki