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

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 build in a parent directory that has no Cargo.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 find or ls -R dump 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)

  1. Claude Code is about to run a bash command.
  2. The PreToolUse hook sends the command to precc-hook as JSON on stdin.
  3. precc-hook runs the command through the pipeline (skills, directory correction, compression) in under 3 milliseconds.
  4. The corrected command is returned as JSON on stdout.
  5. 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

MetricValue
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.

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:

ToolDoel
RTKToolkit voor herschrijven van commando’s
lean-ctxContextcompressie voor CLAUDE.md en promptbestanden
nushellGestructureerde shell voor geavanceerde pipelines
cocoindex-codeCode-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

  1. Download de release-binary voor uw platform van GitHub Releases.
  2. Verifieer de SHA256-checksum tegen het .sha256-bestand in de release.
  3. Plaats de binary in een map op uw PATH (bijv. ~/.local/bin/).
  4. Voer precc init uit.

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 savings samenvatting
  • Sessiemining met precc ingest
  • Onbeperkt lokaal gebruik

Pro-niveau

Pro ontgrendelt extra functies:

  • Gedetailleerd besparingsoverzichtprecc savings --all met analyse per commando
  • GIF-opnameprecc gif voor het maken van geanimeerde terminal-GIF’s
  • IP-geofence compliance – Voor gereguleerde omgevingen
  • E-mailrapportenprecc mail report om analyses te versturen
  • GitHub Actions-analyseprecc gha voor foutopsporing in mislukte workflows
  • Contextcompressieprecc compress voor 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

VaardigheidActiveert bijActie
cargo-wrong-dircargo build/test/clippy buiten een Rust-projectcd toevoegen naar de dichtstbijzijnde Cargo.toml-map
git-wrong-dirgit * buiten een git-repocd toevoegen naar de dichtstbijzijnde .git-map
go-wrong-dirgo build/test buiten een Go-modulecd toevoegen naar de dichtstbijzijnde go.mod-map
make-wrong-dirmake zonder Makefile in de huidige mapcd toevoegen naar de dichtstbijzijnde Makefile-map
npm-wrong-dirnpm/npx/pnpm/yarn buiten een Node-projectcd toevoegen naar de dichtstbijzijnde package.json-map
python-wrong-dirpython/pytest/pip buiten een Python-projectcd toevoegen naar het dichtstbijzijnde Python-project
jj-translategit * in een jj-gecoloceerde repoHerschrijven naar equivalent jj-commando
asciinema-gifasciinema recHerschrijven 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:

CorrectietypeGeschatte besparingRedenering
cd prepend~500 tokensFoutuitvoer + Claude-redenering + herpoging
Vaardigheidactivatie~400 tokensFoutuitvoer + Claude-redenering + herpoging
RTK rewrite~250 tokensUitgebreide uitvoer die Claude zou moeten lezen
Lean-ctx wrap~600 tokensGrote bestandsinhoud gecomprimeerd
Gemijnde preventie~500 tokensBekend 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

  1. PRECC leest het JSONL-sessielogbestand.
  2. Het identificeert opdrachtparen waarbij de eerste opdracht faalde en de tweede een gecorrigeerde herpoging was.
  3. Het extraheert het patroon (wat er misging) en de fix (wat Claude anders deed).
  4. Patronen worden opgeslagen in ~/.local/share/precc/history.db.
  5. 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.

E-mail

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

  1. Parseert de GitHub Actions-run-URL om de eigenaar, repository en run-ID te extraheren.
  2. Haalt de run-logs op via de GitHub API (gebruikt GITHUB_TOKEN indien ingesteld, anders openbare toegang).
  3. Identificeert de mislukte stap en extraheert de relevante foutregels.
  4. 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

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

  1. Hook-registratie verwijderen:

    # Delete the hook entry from Claude Code's settings
    # (precc init added it; removing it disables PRECC)
    
  2. Binair bestand verwijderen:

    rm ~/.local/bin/precc ~/.local/bin/precc-hook ~/.local/bin/precc-learner
    
  3. 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 savings toont de samenvattingsweergave
  • precc ingest en sessiemining werken

Pro-functies worden niet beschikbaar tot verlenging:

  • precc savings --all (gedetailleerd overzicht)
  • precc compress
  • precc gif
  • precc gha
  • precc geofence
  • E-mailrapporten

De hook lijkt niet te werken. Hoe debug ik?

??faq_debug_a_intro??

  1. Controleer of de hook geregistreerd is:

    precc init
    
  2. Test de hook handmatig:

    echo '{"tool_input":{"command":"cargo build"}}' | precc-hook
    
  3. Controleer of het binaire bestand in uw PATH staat:

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

Andere talen