Introduction
What is PRECC?
PRECC (Voorspellende foutcorrectie voor Claude Code) is a Rust tool that intercepts Claude Code bash commands via the official PreToolUse hook mechanism. It fixes errors before they happen, saving tokens and eliminating retry loops.
Gratis voor community-gebruikers.
The Problem
Claude Code wastes significant tokens on preventable mistakes:
- Wrong-directory errors – Running
cargo buildin a parent directory that has noCargo.toml, then retrying after reading the error. - Retry loops – A failed command produces verbose output, Claude reads it, reasons about it, and retries. Each cycle burns hundreds of tokens.
- Verbose output – Commands like
findorls -Rdump thousands of lines that Claude must process.
The Four Pillars
Contextcorrectie (cd-prepend)
Detecteert wanneer commando’s zoals cargo build of npm test in de verkeerde directory worden uitgevoerd en voegt cd /juist/pad && toe voor uitvoering.
GDB Debugging
Detects opportunities to attach GDB for deeper debugging of segfaults and crashes, providing structured debug information instead of raw core dumps.
Session Mining
Mines Claude Code session logs for failure-fix pairs. When the same mistake recurs, PRECC already knows the fix and applies it automatically.
Automation Skills
A library of built-in and mined skills that match command patterns and rewrite them. Skills are defined as TOML files or SQLite rows, making them easy to inspect, edit, and share.
How It Works (30-Second Version)
- Claude Code is about to run a bash command.
- The PreToolUse hook sends the command to
precc-hookas JSON on stdin. precc-hookruns the command through the pipeline (skills, directory correction, compression) in under 3 milliseconds.- The corrected command is returned as JSON on stdout.
- Claude Code executes the corrected command instead.
Claude never sees the error. No tokens wasted.
Adaptive Compression
Als een commando faalt na compressie, slaat PRECC automatisch compressie over bij de volgende poging zodat Claude de volledige ongecomprimeerde uitvoer krijgt om te debuggen.
Live Usage Statistics
| Metric | Value |
|---|---|
| Hook invocations | – |
| Tokens saved | – |
| Saving ratio | –% |
| RTK rewrites | – |
| CD corrections | – |
| Hook latency | – ms (p50) |
Cijfers zijn schattingen. Elke voorkomen fout vermijdt een volledige herhalingscyclus: foutuitvoer, modelredenering en herhalingscommando. These numbers update automatically from anonymized telemetry.
Links
- GitHub: https://github.com/peria-ai/precc-cc
- Website: https://peria.ai
- Documentation: https://precc.cc
Installatie
Snelle installatie (Linux / macOS)
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash
Dit downloadt de nieuwste release-binary voor uw platform, verifieert de SHA256-checksum en plaatst deze in ~/.local/bin/.
Initialiseer PRECC na de installatie:
precc init
precc init registreert de PreToolUse-hook bij Claude Code, maakt de gegevensmappen aan en initialiseert de skills-database.
Installatieopties
SHA256-verificatie
Standaard verifieert het installatieprogramma de binaire checksum tegen de gepubliceerde SHA256-som. Om verificatie over te slaan (niet aanbevolen):
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash -s -- --no-verify
Aangepast installatieprefix
Installeren op een aangepaste locatie:
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash -s -- --prefix /opt/precc
Bijkomende tools (–extras)
PRECC wordt geleverd met optionele bijkomende tools. Installeer ze met --extras:
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash -s -- --extras
Dit installeert:
| Tool | Doel |
|---|---|
| RTK | Toolkit voor herschrijven van commando’s |
| lean-ctx | Contextcompressie voor CLAUDE.md en promptbestanden |
| nushell | Gestructureerde shell voor geavanceerde pipelines |
| cocoindex-code | Code-indexering voor snellere contextresolutie |
Windows (PowerShell)
irm https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.ps1 | iex
Vervolgens initialiseren:
precc init
Handmatige installatie
- Download de release-binary voor uw platform van GitHub Releases.
- Verifieer de SHA256-checksum tegen het
.sha256-bestand in de release. - Plaats de binary in een map op uw
PATH(bijv.~/.local/bin/). - Voer
precc inituit.
Bijwerken
precc update
Forceer een update naar een specifieke versie:
precc update --force --version 0.3.0
Automatische updates inschakelen:
precc update --auto
Installatie verifiëren
$ precc --version
precc 0.3.0
$ precc savings
Session savings: 0 tokens (no commands intercepted yet)
Als precc niet wordt gevonden, zorg ervoor dat ~/.local/bin op uw PATH staat.
Snelstart
PRECC in 5 minuten operationeel.
Stap 1: Installeren
curl -fsSL https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.sh | bash
Stap 2: Initialiseren
$ precc init
[precc] Hook registered with Claude Code
[precc] Created ~/.local/share/precc/
[precc] Initialized heuristics.db with 8 built-in skills
[precc] Ready.
Stap 3: Controleer of de hook actief is
$ 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
Stap 4: Gebruik Claude Code normaal
Open Claude Code en werk zoals gewoonlijk. PRECC draait stil op de achtergrond. Wanneer Claude een commando geeft dat zou mislukken, corrigeert PRECC het vóór uitvoering.
Voorbeeld: Cargo Build in verkeerde map
Stel dat je project in ~/projects/myapp/ staat en Claude uitvoert:
cargo build
vanuit ~/projects/ (één niveau te hoog, geen Cargo.toml daar).
Zonder PRECC: Claude krijgt de fout could not find Cargo.toml in /home/user/projects or any parent directory, leest deze, redeneert erover en probeert opnieuw met cd myapp && cargo build. Kosten: ~2.000 tokens verspild.
Met PRECC: De hook detecteert het ontbrekende Cargo.toml, vindt het in myapp/ en herschrijft het commando naar:
cd /home/user/projects/myapp && cargo build
Claude ziet nooit een fout. Nul tokens verspild.
Stap 5: Controleer je besparingen
Bekijk na een sessie hoeveel tokens PRECC heeft bespaard:
$ 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)
Volgende stappen
- Vaardigheden – Bekijk alle beschikbare vaardigheden en hoe je je eigen kunt maken.
- Hook Pipeline – Begrijp wat er onder de motorkap gebeurt.
- Besparingen – Gedetailleerde analyse van tokenbesparingen.
Licentie
PRECC biedt twee niveaus: Community (gratis) en Pro.
Community-niveau (gratis)
Het Community-niveau omvat:
- Alle ingebouwde vaardigheden (directoryfouten, jj-vertaling, enz.)
- Hook-pipeline met volledige Pillar 1- en Pillar 4-ondersteuning
- Basis
precc savingssamenvatting - Sessiemining met
precc ingest - Onbeperkt lokaal gebruik
Pro-niveau
Pro ontgrendelt extra functies:
- Gedetailleerd besparingsoverzicht –
precc savings --allmet analyse per commando - GIF-opname –
precc gifvoor het maken van geanimeerde terminal-GIF’s - IP-geofence compliance – Voor gereguleerde omgevingen
- E-mailrapporten –
precc mail reportom analyses te versturen - GitHub Actions-analyse –
precc ghavoor foutopsporing in mislukte workflows - Contextcompressie –
precc compressvoor CLAUDE.md-optimalisatie - Prioriteitsondersteuning
Een licentie activeren
$ 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
Licentiestatus controleren
$ precc license status
License: Pro
Email: you@example.com
Expires: 2027-04-03
Status: Active
GitHub Sponsors-activering
Als u PRECC sponsort via GitHub Sponsors, wordt uw licentie automatisch geactiveerd via uw GitHub-e-mail. Geen sleutel nodig – zorg er alleen voor dat uw sponsor-e-mail overeenkomt:
$ precc license status
License: Pro (GitHub Sponsors)
Email: you@example.com
Status: Active (auto-renewed)
Apparaat-vingerafdruk
Elke licentie is gekoppeld aan een apparaat-vingerafdruk. Bekijk de uwe met:
$ precc license fingerprint
Fingerprint: a1b2c3d4e5f6...
Als u uw licentie naar een nieuwe machine wilt overzetten, deactiveer dan eerst:
precc license deactivate
Activeer vervolgens op de nieuwe machine.
Licentie verlopen?
Wanneer een Pro-licentie verloopt, keert PRECC terug naar het Community-niveau. Alle ingebouwde vaardigheden en kernfunctionaliteit blijven werken. Alleen Pro-specifieke functies worden onbeschikbaar. Zie de FAQ voor meer details.
Hook Pipeline
Het precc-hook binary is de kern van PRECC. Het zit tussen Claude Code en de shell en verwerkt elk bash-commando in minder dan 5 milliseconden.
Hoe Claude Code de Hook aanroept
Claude Code ondersteunt PreToolUse hooks – externe programma’s die tool-invoer kunnen inspecteren en wijzigen vóór uitvoering. Wanneer Claude een bash-commando gaat uitvoeren, stuurt het JSON naar precc-hook op stdin en leest het antwoord van stdout.
Pipeline Stappen
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
Voorbeeld: JSON invoer en uitvoer
Invoer (van Claude Code)
{
"tool_input": {
"command": "cargo build"
}
}
PRECC detecteert dat de huidige map geen Cargo.toml heeft, maar ./myapp/Cargo.toml wel bestaat.
Uitvoer (naar Claude Code)
{
"hookSpecificOutput": {
"updatedInput": {
"command": "cd /home/user/projects/myapp && cargo build"
}
}
}
Als er geen wijziging nodig is, is updatedInput.command leeg en gebruikt Claude Code het oorspronkelijke commando.
Stap Details
Stap 1: JSON Parsen
Leest het volledige JSON-object van stdin. Extraheert tool_input.command. Als het parsen mislukt, stopt de hook onmiddellijk en gebruikt Claude Code het oorspronkelijke commando (fail-open ontwerp).
Stap 2: Skill Matching
Bevraagt de SQLite heuristics-database voor skills waarvan het triggerpatroon overeenkomt met het commando. Skills worden in prioriteitsvolgorde gecontroleerd. Zowel ingebouwde TOML-skills als geminde skills worden geëvalueerd.
Stap 3: Directory Correctie
Voor build-commando’s (cargo, go, make, npm, python, enz.) controleert of het verwachte projectbestand bestaat in de huidige map. Zo niet, scant nabijgelegen mappen voor de dichtstbijzijnde match en voegt cd <dir> && toe aan het begin.
De directoryscan gebruikt een gecachte bestandssysteemindex met een 5 seconden TTL om snel te blijven.
Stap 4: GDB Controle
Als het commando waarschijnlijk een crash veroorzaakt (bijv. het uitvoeren van een debug binary), kan PRECC GDB-wrappers voorstellen of injecteren om gestructureerde debug-uitvoer vast te leggen in plaats van ruwe crash-logs.
Stap 5: RTK Herschrijving
Past RTK (Rewrite Toolkit) regels toe die uitgebreide commando’s verkorten, ruis in uitvoer onderdrukken of commando’s herstructureren voor token-efficiëntie.
Stap 6: JSON Uitvoer
Serialiseert het gewijzigde commando terug naar JSON en schrijft het naar stdout. Als er geen wijzigingen zijn aangebracht, signaleert de uitvoer Claude Code om het oorspronkelijke commando te gebruiken.
Prestaties
De volledige pipeline wordt voltooid in minder dan 5 milliseconden (p99). Belangrijke optimalisaties:
- SQLite in WAL-modus voor lockvrije gelijktijdige leesbewerkingen
- Voorgecompileerde regex-patronen voor skill matching
- Gecachte bestandssysteemscans (5 seconden TTL)
- Geen netwerkoproepen in het hot path
- Fail-open: elke fout valt terug op het oorspronkelijke commando
De Hook handmatig testen
U kunt de hook direct aanroepen:
$ echo '{"tool_input":{"command":"cargo build"}}' | precc-hook
{"hookSpecificOutput":{"updatedInput":{"command":"cd /home/user/myapp && cargo build"}}}
Vaardigheden
Vaardigheden zijn de patroonherkennungsregels die PRECC gebruikt om commando’s te detecteren en te corrigeren. Ze kunnen ingebouwd (meegeleverd als TOML-bestanden) of gedolven uit sessielogs zijn.
Ingebouwde vaardigheden
| Vaardigheid | Activeert bij | Actie |
|---|---|---|
cargo-wrong-dir | cargo build/test/clippy buiten een Rust-project | cd toevoegen naar de dichtstbijzijnde Cargo.toml-map |
git-wrong-dir | git * buiten een git-repo | cd toevoegen naar de dichtstbijzijnde .git-map |
go-wrong-dir | go build/test buiten een Go-module | cd toevoegen naar de dichtstbijzijnde go.mod-map |
make-wrong-dir | make zonder Makefile in de huidige map | cd toevoegen naar de dichtstbijzijnde Makefile-map |
npm-wrong-dir | npm/npx/pnpm/yarn buiten een Node-project | cd toevoegen naar de dichtstbijzijnde package.json-map |
python-wrong-dir | python/pytest/pip buiten een Python-project | cd toevoegen naar het dichtstbijzijnde Python-project |
jj-translate | git * in een jj-gecoloceerde repo | Herschrijven naar equivalent jj-commando |
asciinema-gif | asciinema rec | Herschrijven naar precc gif |
Vaardigheden weergeven
$ 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
Vaardigheiddetails weergeven
$ 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
Een vaardigheid exporteren naar 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
Een vaardigheid bewerken
$ precc skills edit cargo-wrong-dir
Dit opent de vaardigheidsdefinitie in uw $EDITOR. Na opslaan wordt de vaardigheid automatisch herladen.
Het Advise-commando
precc skills advise analyseert uw recente sessie en suggereert nieuwe vaardigheden op basis van herhaalde patronen:
$ 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]?
Vaardigheden groeperen
$ precc skills cluster
Groepeert vergelijkbare gedolven vaardigheden om redundante of overlappende patronen te identificeren.
Gedolven vs. ingebouwde vaardigheden
Ingebouwde vaardigheden worden meegeleverd met PRECC en zijn gedefinieerd in skills/builtin/*.toml. Ze dekken de meest voorkomende verkeerde-map-fouten.
Gedolven vaardigheden worden aangemaakt door precc ingest of de precc-learner-daemon uit uw sessielogs. Ze worden opgeslagen in ~/.local/share/precc/heuristics.db en zijn specifiek voor uw workflow. Zie Mining voor details.
Besparingen
PRECC houdt geschatte tokenbesparingen bij van elke onderschepping. Gebruik precc savings om te zien hoeveel verspilling PRECC heeft voorkomen.
Snel overzicht
$ 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)
Gedetailleerd overzicht (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>%
Hoe besparingen worden geschat
Elk correctietype heeft een geschatte tokenkost op basis van wat er zonder PRECC zou zijn gebeurd:
| Correctietype | Geschatte besparing | Redenering |
|---|---|---|
| cd prepend | ~500 tokens | Foutuitvoer + Claude-redenering + herpoging |
| Vaardigheidactivatie | ~400 tokens | Foutuitvoer + Claude-redenering + herpoging |
| RTK rewrite | ~250 tokens | Uitgebreide uitvoer die Claude zou moeten lezen |
| Lean-ctx wrap | ~600 tokens | Grote bestandsinhoud gecomprimeerd |
| Gemijnde preventie | ~500 tokens | Bekend faalpatroon vermeden |
Dit zijn conservatieve schattingen. Werkelijke besparingen zijn vaak hoger omdat Claude’s redenering over fouten uitgebreid kan zijn.
Cumulatieve besparingen
Besparingen blijven bewaard over sessies in de PRECC-database. Na verloop van tijd kunt u de totale impact volgen:
$ 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
Comprimeren
precc compress verkleint CLAUDE.md en andere contextbestanden om tokengebruik te verminderen wanneer Claude Code ze laadt. Dit is een Pro-functie.
Basisgebruik
$ 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.
Proefrun
Bekijk wat er zou veranderen zonder bestanden te wijzigen:
$ 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%)
Terugzetten
Originelen worden automatisch geback-upt. Om ze te herstellen:
$ precc compress --revert
[precc] Restored 3 files from backups.
Wat wordt gecomprimeerd
De compressor past meerdere transformaties toe:
- Verwijdert overbodige witruimte en lege regels
- Verkort uitgebreide formuleringen met behoud van betekenis
- Comprimeert tabellen en lijsten
- Verwijdert opmerkingen en decoratieve opmaak
- Behoudt alle codeblokken, paden en technische identifiers
De gecomprimeerde uitvoer is nog steeds leesbaar – niet geminificeerd of verhuld.
Specifieke bestanden targeten
$ precc compress CLAUDE.md
[precc] CLAUDE.md: 2,847 tokens -> 1,203 tokens (-57.7%)
Rapporten
precc report genereert een analytisch dashboard dat PRECC-activiteit en tokenbesparingen samenvat.
Een rapport genereren
$ 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
...
Een rapport e-mailen
Stuur het rapport naar een e-mailadres (vereist mailconfiguratie, zie Email):
$ precc report --email
[precc] Report sent to you@example.com
Het ontvangersadres wordt gelezen uit ~/.config/precc/mail.toml. U kunt ook precc mail report EMAIL gebruiken om naar een specifiek adres te sturen.
Rapportgegevens
Rapporten worden gegenereerd uit de lokale PRECC-database op ~/.local/share/precc/history.db. Er verlaat geen data uw machine tenzij u het rapport expliciet e-mailt.
Mining
PRECC analyseert Claude Code-sessielogs om fout-fix-patronen te leren. Wanneer het dezelfde fout opnieuw ziet, past het de fix automatisch toe.
Sessielogs inlezen
Eén bestand inlezen
$ 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
Alle logs inlezen
$ 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
Opnieuw inlezen forceren
Om reeds ingelezen bestanden opnieuw te verwerken:
$ precc ingest --all --force
[precc] Re-ingesting all 23 session files...
Hoe mining werkt
- PRECC leest het JSONL-sessielogbestand.
- Het identificeert opdrachtparen waarbij de eerste opdracht faalde en de tweede een gecorrigeerde herpoging was.
- Het extraheert het patroon (wat er misging) en de fix (wat Claude anders deed).
- Patronen worden opgeslagen in
~/.local/share/precc/history.db. - Wanneer een patroon een betrouwbaarheidsdrempel bereikt, wordt het een ontgonnen vaardigheid in
heuristics.db.
Voorbeeldpatroon
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
De precc-learner-daemon
De precc-learner-daemon draait op de achtergrond en bewaakt automatisch nieuwe sessielogs:
$ precc-learner &
[precc-learner] Watching ~/.claude/logs/ for new sessions...
[precc-learner] Processing session-2026-04-03-1412.jsonl... 3 new patterns
De daemon gebruikt bestandssysteemmeldingen (inotify op Linux, FSEvents op macOS) en reageert dus direct wanneer een sessie eindigt.
Van patronen naar vaardigheden
Ontgonnen patronen worden vaardigheden wanneer ze aan deze criteria voldoen:
- Minstens 3 keer gezien over sessies heen
- Consistent fix-patroon (elke keer hetzelfde type correctie)
- Geen valse positieven gedetecteerd
U kunt vaardigheidskandidaten bekijken met:
$ precc skills advise
Zie Skills voor details over het beheren van vaardigheden.
Gegevensopslag
- Fout-fix-paren:
~/.local/share/precc/history.db - Gepromoveerde vaardigheden:
~/.local/share/precc/heuristics.db
Beide zijn SQLite-databases in WAL-modus voor veilige gelijktijdige toegang.
PRECC kan rapporten en bestanden per e-mail verzenden. Dit vereist een eenmalige SMTP-configuratie.
Instelling
$ 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.
Configuratiebestand
De configuratie wordt opgeslagen in ~/.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
U kunt dit bestand rechtstreeks bewerken:
$EDITOR ~/.config/precc/mail.toml
Gebruik voor Gmail een App-wachtwoord in plaats van uw accountwachtwoord.
Rapporten verzenden
$ precc mail report team@example.com
[precc] Generating report...
[precc] Sending to team@example.com...
[precc] Report sent.
Bestanden verzenden
$ precc mail send colleague@example.com output.log
[precc] Sending output.log to colleague@example.com...
[precc] Sent (14.2 KB).
SSH-relay ondersteuning
Als uw machine geen SMTP-server rechtstreeks kan bereiken (bijv. achter een bedrijfsfirewall), ondersteunt PRECC relay via een SSH-tunnel:
[smtp]
host = "localhost"
port = 2525
[ssh_relay]
host = "relay.example.com"
user = "you"
remote_port = 587
local_port = 2525
PRECC zal de SSH-tunnel automatisch opzetten voor het verzenden.
GIF-opname
precc gif maakt geanimeerde GIF-opnames van terminalsessies vanuit bash-scripts. Dit is een Pro-functie.
Basisgebruik
$ 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)
Het eerste argument is een bash-script met de uit te voeren opdrachten. Het tweede argument is de maximale opnameduur.
Scriptformaat
Het script is een standaard bash-bestand:
#!/bin/bash
echo "Building project..."
cargo build --release
echo "Running tests..."
cargo test
echo "Done!"
Invoersimulatie
Geef voor interactieve opdrachten invoerwaarden op als extra argumenten:
$ precc gif interactive-demo.sh 60s "yes" "my-project" "3"
Elk extra argument wordt als een stdin-regel ingevoerd wanneer het script om invoer vraagt.
Uitvoeropties
Het uitvoerbestand wordt standaard vernoemd naar het script (script.gif). De GIF gebruikt een donker terminalthema met standaard 80x24-afmetingen.
Waarom GIF in plaats van asciinema?
De ingebouwde vaardigheid asciinema-gif herschrijft asciinema rec automatisch naar precc gif. GIF-bestanden zijn draagbaarder – ze worden inline weergegeven in GitHub READMEs, Slack en e-mail zonder een speler nodig te hebben.
GitHub Actions-analyse
precc gha analyseert mislukte GitHub Actions-runs en stelt oplossingen voor. Dit is een Pro-functie.
Gebruik
Geef de URL van een mislukte GitHub Actions-run door:
$ 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
Wat het doet
- Parseert de GitHub Actions-run-URL om de eigenaar, repository en run-ID te extraheren.
- Haalt de run-logs op via de GitHub API (gebruikt
GITHUB_TOKENindien ingesteld, anders openbare toegang). - Identificeert de mislukte stap en extraheert de relevante foutregels.
- Analyseert de fout en stelt een oplossing voor op basis van veelvoorkomende CI-foutpatronen.
Ondersteunde foutpatronen
- Ontbrekende servicecontainers (databases, Redis, enz.)
- Onjuist runner-besturingssysteem of -architectuur
- Ontbrekende omgevingsvariabelen of secrets
- Fouten bij de installatie van afhankelijkheden
- Test-timeouts
- Machtigingsfouten
- Cache-misses die trage builds veroorzaken
Geofence
PRECC bevat IP-geofence-nalevingscontrole voor gereguleerde omgevingen. Dit is een Pro-functie.
Overzicht
Sommige organisaties vereisen dat ontwikkeltools alleen binnen goedgekeurde geografische regio’s werken. De geofence-functie van PRECC verifieert dat het IP-adres van de huidige machine binnen een toegestane regiolijst valt.
Nalevingscontrole
$ 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
Als de machine buiten de toegestane regio’s is:
$ 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.
Geofence-gegevens vernieuwen
$ precc geofence refresh
[precc] Fetching updated IP geolocation data...
[precc] Updated. Cache expires in 24h.
Geofence-informatie bekijken
$ 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
Cache wissen
$ precc geofence clear
[precc] Geofence cache cleared.
Configuratie
Het geofence-beleid wordt gedefinieerd in ~/.config/precc/geofence.toml:
[geofence]
allowed_regions = ["us-east-1", "us-west-2", "eu-west-1"]
check_on_init = true
block_on_violation = false
Stel block_on_violation = true in om te voorkomen dat PRECC werkt buiten toegestane regio’s.
Telemetrie
PRECC ondersteunt optionele anonieme telemetrie om het hulpmiddel te verbeteren. Er worden geen gegevens verzameld tenzij u expliciet toestemt.
Inschakelen
$ precc telemetry consent
[precc] Telemetry enabled. Thank you for helping improve PRECC.
[precc] You can revoke consent at any time with: precc telemetry revoke
Uitschakelen
$ precc telemetry revoke
[precc] Telemetry disabled. No further data will be sent.
Status controleren
$ precc telemetry status
Telemetry: disabled
Last sent: never
Voorbeeld van wat verzonden zou worden
Voordat u inschakelt, kunt u precies zien welke gegevens verzameld zouden worden:
$ 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
}
Wat er verzameld wordt
- PRECC-versie, besturingssysteem en architectuur
- Geaggregeerde tellingen: onderschepte opdrachten, geactiveerde vaardigheden, gebruikte pijlers
- Gemiddelde hook-latentie
- Aantal sessies
Wat NIET verzameld wordt
- Geen opdrachttekst of argumenten
- Geen bestandspaden of mapnamen
- Geen projectnamen of repository-URL’s
- Geen persoonlijk identificeerbare informatie (PII)
- Geen IP-adressen (de server logt ze niet)
Omgevingsvariabele overschrijving
Om telemetrie uit te schakelen zonder een opdracht uit te voeren (handig in CI of gedeelde omgevingen):
export PRECC_NO_TELEMETRY=1
Dit heeft voorrang op de toestemmingsinstelling.
Gegevensbestemming
Telemetriegegevens worden via HTTPS verzonden naar https://telemetry.peria.ai/v1/precc. De gegevens worden uitsluitend gebruikt om gebruikspatronen te begrijpen en ontwikkeling te prioriteren.
Opdrachtreferentie
Volledige referentie voor alle PRECC-opdrachten.
precc init
PRECC initialiseren en de hook registreren bij 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
Sessielogs doorzoeken op fout-fix-patronen.
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
Automatiseringsvaardigheden beheren.
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
Een analyserapport genereren.
precc report [--email]
Options:
--email Send the report via email (requires mail setup)
precc savings
Token-besparingen tonen.
precc savings [--all]
Options:
--all Show detailed per-command breakdown (Pro)
precc compress
Contextbestanden comprimeren om tokengebruik te verminderen.
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
Uw PRECC-licentie beheren.
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
E-mailfunctionaliteit.
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
PRECC bijwerken naar de nieuwste versie.
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
Anonieme telemetrie beheren.
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
IP-geofence compliance (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
Geanimeerde GIF’s opnemen van bash-scripts (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
Mislukte GitHub Actions-runs analyseren (Pro).
precc gha URL
Arguments:
URL GitHub Actions run URL
Example:
precc gha https://github.com/org/repo/actions/runs/12345678
precc cache-hint
Cache-hintinformatie weergeven voor het huidige project.
precc cache-hint
precc trial
Een Pro-proefperiode starten.
precc trial EMAIL
Arguments:
EMAIL Email address for the trial
precc nushell
Een Nushell-sessie starten met PRECC-integratie.
precc nushell
Veelgestelde vragen
Is PRECC veilig om te gebruiken?
Ja. PRECC gebruikt het officiële Claude Code PreToolUse hook-mechanisme – hetzelfde uitbreidingspunt dat Anthropic precies hiervoor heeft ontworpen. De hook:
- Draait volledig offline (geen netwerkoproepen in het kritieke pad)
- Voltooit in minder dan 5 milliseconden
- Is fail-open: als er iets misgaat, wordt het oorspronkelijke commando ongewijzigd uitgevoerd
- Wijzigt alleen commando’s, voert ze nooit zelf uit
- Slaat gegevens lokaal op in SQLite-databases
Werkt PRECC met andere AI-coderingstools?
PRECC is specifiek ontworpen voor Claude Code. Het is afhankelijk van het PreToolUse hook-protocol dat Claude Code biedt. Het werkt niet met Cursor, Copilot, Windsurf of andere AI-coderingstools.
Welke gegevens stuurt de telemetrie?
Telemetrie is alleen opt-in. Indien ingeschakeld, stuurt het:
- PRECC-versie, besturingssysteem en architectuur
- Geaggregeerde tellingen (onderschepte opdrachten, geactiveerde vaardigheden)
- Gemiddelde hook-latentie
Het stuurt geen opdrachttekst, bestandspaden, projectnamen of persoonlijk identificeerbare informatie. U kunt de exacte payload bekijken met precc telemetry preview voordat u zich aanmeldt. Zie Telemetrie voor details.
Hoe verwijder ik PRECC?
??faq_uninstall_a_intro??
-
Hook-registratie verwijderen:
# Delete the hook entry from Claude Code's settings # (precc init added it; removing it disables PRECC) -
Binair bestand verwijderen:
rm ~/.local/bin/precc ~/.local/bin/precc-hook ~/.local/bin/precc-learner -
Gegevens verwijderen (optioneel):
rm -rf ~/.local/share/precc/ rm -rf ~/.config/precc/
Mijn licentie is verlopen. Wat gebeurt er?
PRECC keert terug naar het Community-niveau. Alle kernfunctionaliteit blijft werken:
- Ingebouwde vaardigheden blijven actief
- Hook-pipeline draait normaal
precc savingstoont de samenvattingsweergaveprecc ingesten sessiemining werken
Pro-functies worden niet beschikbaar tot verlenging:
precc savings --all(gedetailleerd overzicht)precc compressprecc gifprecc ghaprecc geofence- E-mailrapporten
De hook lijkt niet te werken. Hoe debug ik?
??faq_debug_a_intro??
-
Controleer of de hook geregistreerd is:
precc init -
Test de hook handmatig:
echo '{"tool_input":{"command":"cargo build"}}' | precc-hook -
Controleer of het binaire bestand in uw PATH staat:
which precc-hook -
Controleer de hook-configuratie van Claude Code in
~/.claude/settings.json.
Vertraagt PRECC Claude Code?
Nee. De hook wordt in minder dan 5 milliseconden (p99) voltooid. Dit is onmerkbaar vergeleken met de tijd die Claude besteedt aan redeneren en het genereren van antwoorden.
Kan ik PRECC gebruiken in CI/CD?
PRECC is ontworpen voor interactieve Claude Code-sessies. In CI/CD is er geen Claude Code-instantie om aan te haken. Echter, precc gha kan mislukte GitHub Actions-runs vanuit elke omgeving analyseren.
Hoe verschillen gedolven vaardigheden van ingebouwde vaardigheden?
Ingebouwde vaardigheden worden meegeleverd met PRECC en dekken veelvoorkomende verkeerde-map-patronen. Gedolven vaardigheden worden geleerd uit uw specifieke sessielogs – ze vangen patronen die uniek zijn voor uw werkstroom. Beide worden opgeslagen in SQLite en identiek geëvalueerd door de hook-pipeline.
Kan ik vaardigheden delen met mijn team?
Ja. Exporteer een vaardigheid naar TOML met precc skills export NAME en deel het bestand. Teamleden kunnen het in hun skills/-map plaatsen of importeren in hun heuristieken-database.