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

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

Pasek stanu

Po instalacji PRECC dodaje wpis statusLine do ~/.claude/settings.json, dzięki czemu pasek stanu Claude Code pokazuje metryki sesji na żywo:

$0.42 spent | 1.2M in/out | 📊 last cmd: −1.2K | PRECC: 7 fixes | 5.8ms avg | this session: 320 saved over 7 cmds (~$0.05) | lifetime: 8.9K saved over 217 cmds (~$2.85)

Ustaw PRECC_LANG, aby wyświetlać etykiety w swoim języku — zobacz rozdział Lokalizacja.

Każdy segment:

SegmentŹródłoZnaczenieResetuje się przy ponownym uruchomieniu sesji?
$0.42 spentcost.total_cost_usdŁączny koszt sesji raportowany przez Claude CodeTak
1.2M in/outtotal_input_tokens + total_output_tokensNieprzechowywane w pamięci podręcznej tokeny wejścia + wyjścia w sesjiTak
📊 last cmd: −1.2KPomiar PRECC ostatniego polecenia BashRzeczywiste, zmierzone oszczędności z ponownego uruchomienia oryginałuNie (zachowuje się między sesjami)
PRECC: 7 fixesmetrics.logLiczba poprawek w tej sesji — tylko liczba, bez fałszywego oszacowania tokenówTak
5.8ms avgOpóźnienie hooka PRECC p50Czas, jaki PRECC poświęca na przetwarzanie każdego wywołania narzędziaTak
bash 18% of totalpost_observations.logUdział tokenów sesji pochodzących z wyjścia Bash — wyjaśnia, dlaczego oszczędności PRECC są naturalnie ułamkiem całkowitego kosztu (PRECC optymalizuje tylko wyjście Bash)Tak
this session: 320 saved over 7 cmds (~$0.05).lifetime_summary.json − baselineRzeczywista delta na sesję. Ukryta, gdy delta wynosi zero (początek sesji)Tak (linia bazowa jest ponownie rejestrowana)
lifetime: 8.9K saved over 217 cmds (~$2.85).lifetime_summary.jsonSkumulowane zaoszczędzone tokeny i ponownie zmierzone polecenia od pierwszej instalacji PRECC, plus szacowana wartość w USD przy obecnej stawce za tokenNie

Segment lifetime: jest umieszczany na końcu, aby jako pierwszy został przycięty, jeśli interfejs Claude Code obcina pasek przy prawej krawędzi.

Dlaczego koszt i liczba tokenów nie dzielą się

Wyświetlane 1.2M in/out nie jest mianownikiem, który dał $0.42 spent. cost.total_cost_usd z Claude Code jest obliczane z pełnego rozkładu tokenów API — wejścia podstawowego, wyjścia, plus odczytów i utworzeń pamięci podręcznej. Skumulowane liczby tokenów pamięci podręcznej w całej sesji nie są dostępne w schemacie statusline, więc PRECC może pokazać tylko widoczną (niecache’ową) część.

W długich sesjach z dużą liczbą ponownych odczytów plików odczyty pamięci podręcznej mogą wynosić 10× liczby widocznych tokenów. Dlatego łączenie ich jako stosunku byłoby mylące — PRECC zamiast tego pokazuje je jako niezależne segmenty.

Dlaczego PRECC nie oblicza kosztu

Liczba kosztu jest autorytatywna. PRECC czyta cost.total_cost_usd dosłownie z JSON-a, który Claude Code przekazuje do polecenia statusu przez stdin. To ta sama liczba, którą Claude Code obciąża Twój budżet subskrypcji/użycia. Możesz to zweryfikować w dowolnej chwili za pomocą wbudowanego polecenia ukośnikowego /cost — obie powinny się zgadzać.

Co napędza koszt

Dla Claude Opus 4.6:

Token typeStandard (≤200k context)1M context tier
Input$15 / MTok$30 / MTok
Output$75 / MTok$150 / MTok
Cache write$18.75 / MTok$37.50 / MTok
Cache read$1.50 / MTok$3 / MTok

Największymi czynnikami w długich sesjach są zwykle tokeny wyjściowe (najdroższy typ na token, zwłaszcza na poziomie kontekstu 1M), powtarzające się odczyty pamięci podręcznej (pojedynczo tanie, ale szybko się sumujące w wielu turach) i tworzenia pamięci podręcznej (zapisywane raz na odczyt pliku po stawce ~1.25× podstawowej stawki wejściowej). PRECC zmniejsza koszt widocznych tokenów poprzez kompresję wyjścia Bash (segment 📊 last cmd: pokazuje oszczędność na polecenie), ale nie może zmniejszyć odczytów pamięci podręcznej plików, które Claude już załadował.

Stabilne liczniki sesji

Segment “PRECC: N fixes” liczy zdarzenia od utrwalonego początku sesji, zapisanego do ~/.local/share/precc/sessions/<session_id>.start przy pierwszym odświeżeniu statusline każdej sesji. To sprawia, że licznik jest monotoniczny — nie może spaść w trakcie sesji, nawet jeśli przy danym odświeżeniu brakuje cost.total_duration_ms.

Automatycznie odświeżany migawka życia

Segment lifetime: czyta ~/.local/share/precc/.lifetime_summary.json, który jest przepisywany przy każdym pomiarze PostToolUse i przy każdym wywołaniu precc savings. Segment this session: czyta ten sam plik lifetime, ale odejmuje linię bazową na sesję utrwaloną przy pierwszym odświeżeniu każdej sesji. Bez ręcznego odświeżania — pliki aktualizują się same.

Wyłączanie paska stanu

Jeśli wolisz zachować istniejący pasek stanu, ustaw własne polecenie statusLine w ~/.claude/settings.json. Instalator PRECC wykryje niestandardową wartość i nie będzie jej ruszać przy kolejnych aktualizacjach.

Aby wyłączyć tylko linię 📊 PRECC na interakcję (w additionalContext), ustaw PRECC_QUIET=1 w środowisku powłoki.

PRECC’s three savings mechanisms each have a counterpart in the recent literature. These are related work — the ideas PRECC’s design draws on. Their reported figures are their measurements, not PRECC’s: PRECC only ever quotes numbers measured on your own machine (see “measured, not estimated”, above).

  • Output/trajectory trimming (PRECC’s diet + bash-output compression) — Reducing Cost of LLM Agents with Trajectory Reduction (AgentDiet), FSE 2026, arXiv:2509.23586. Removes redundant/expired trajectory content post-hoc; reports −39.9–59.7% input tokens. PRECC applies the same idea pre-execution and deterministically (no extra LLM call).
  • Skills as programs (PRECC’s mined + builtin rewrite skills) — Harnessing LLM Agents with Skill Programs, arXiv:2605.17734. Frames reusable agent skills as executable program functions — the same analogy behind PRECC’s command-rewrite skills (a pattern → a deterministic rewrite).
  • Context compression (PRECC’s compress + lean-ctx wrapping) — Compress the Context, Keep the Commitments: A Formal Framework for Verifiable LLM Context Compression, arXiv:2605.17304. Recent work on compressing context without losing required information — the property PRECC’s deterministic, cache-stable rewrites aim to preserve.