claude-code ai

Caveman Claude vs rzeczywistość — co pokazuje README, a co tsbench

README Cavemana mówi o 65-75% redukcji. Issue

MO Maciej Olszewski ·

Caveman Claude ma 41 000 gwiazdek, #1 na Hacker News i omówienia w Decrypt. I liczbę “75% oszczędności” w każdym miejscu, w którym się o nim pisze. Tyle że to liczba na wybranym wycinku tokenów wyjściowych, a nie na całej sesji. Realny wpływ: 4-10%. Tu pokazuję, skąd ta rozbieżność i kiedy Caveman faktycznie ma sens.

Wracamy do głównego artykułu: Claude Code — jak przestać palić tokeny.

Co dokładnie mówi README

Strona juliusbrussee/caveman mówi dwie rzeczy. Tytuł repo: ”🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman”.

Sekcja benchmark mówi o średnio 65% oszczędności na tokenach wyjściowych (output tokens), zakres 22-87%, 10 zadań testowych, tokenizer tiktoken, model Claude API. Tweety i omówienia prasowe podciągają to do okrągłych 75%.

Obie liczby są prawdziwe, ale tylko w kontekście, w jakim zostały zmierzone. Ten kontekst jest mocno niereprezentatywny dla typowej sesji Claude Code.

Issue #234 — co zarzuca Kanevry

Issue #234, otwarty od tygodni, nierozwiązany. Zgłaszający (Kanevry) pobrał własne repo ewaluacyjne autora — evals/snapshots/results.json — i przeliczył dane inaczej.

Autor porównuje caveman vs domyślny Claude. Ale dostępny jest też wariant __terse__ — to po prostu prompt “be concise, no pleasantries, no filler”. To jest właściwa grupa kontrolna: jeśli chcesz zmierzyć wartość Cavemana ponad prosty prompt o zwięzłość, porównaj do __terse__, nie do rozwlekłego wariantu domyślnego.

Wynik Kanevry’ego:

  • Caveman vs domyślny Claude: -65% (tak jak mówi README)
  • Caveman vs __terse__ (poprawna kontrola): mediana -50%

Czyli połowę oszczędności Caveman dostarczyłby zwykły prompt “bądź zwięzły”. Druga połowa to wartość dodana od struktury “jaskiniowca” (fragmenty, bez rodzajników).

-50% vs __terse__ to nadal wartość. Ale nie jest to -75%, które widzisz w marketingu.

Dlaczego “proza to ~25% sesji”

Druga warstwa problemu: nawet -50% na tokenach wyjściowych prozy nie przekłada się liniowo na oszczędność sesji. Sesja Claude Code dzieli się mniej więcej tak (mój pomiar na trzech różnych typach zadań, estymacja tiktoken):

Składnik sesjiUdziałCzy Caveman to kompresuje?
system prompt + tools + CLAUDE.md15-25%nie (bazowe obciążenie)
historia konwersacji (ponowne czytanie)20-40%tylko częściowo
wyjścia narzędzi (git, testy, cat)25-45%nie (to kod/dane, nie proza)
wyjście Claude’a (proza, wyjaśnienia)15-30%tak
thinking tokens (extended thinking)5-20%nie

Caveman łapie tylko prozę w odpowiedzi modelu, czyli 15-30% sesji. Jeśli na tym kawałku oszczędzi 50% (po skorygowaniu do uczciwego punktu odniesienia), to:

0.5 × 0.25 = 0.125~12,5% całej sesji

Wariant optymistyczny: tak. Wariant pesymistyczny: 4-8%. Co pokrywa się z niezależnymi analizami na Medium i blogach, które próbowały odtworzyć ten benchmark na realnych sesjach.

Co Caveman nie robi

Punkty, na które warto zwrócić uwagę zanim zainstalujesz:

  • Nie tyka kodu. Kod, ścieżki, URL-e, komendy, nagłówki — nietknięte. To dobrze (nie psuje wyjścia), ale ogranicza zasięg.
  • Nie tyka thinking tokens. Extended thinking jest wewnętrzny dla modelu, Caveman nic z tym nie zrobi.
  • Nie tyka wyjścia narzędzi. git log Claude’a dostaje taki sam, bo to narzędzia, nie model.
  • Nie skraca historii ponownego czytania. Kontekst rośnie tak samo, tylko każda turę jest trochę krótsza w odpowiedzi.

Mierzalny punkt styku: tekstowe fragmenty wypluwane przez model po kompresji. Reszta sesji idzie “obok”.

Kiedy Caveman faktycznie pomaga

Tak, są typy zadań, gdzie to ma sens:

  • Długie wyjaśnienia architektoniczne — gdy Claude tłumaczy czemu polecił X zamiast Y, na pół strony
  • Code review — Caveman tnie “Let me explain what I see in this code…” do “Look: auth missing rate limit. Fix: middleware layer. Test: simulate 1000 req/s.”
  • Dyskusje planowe — gdy planujesz funkcjonalność i Claude ma skłonność do rozwlekania
  • Programowanie w parach w trybie konwersacyjnym — gdzie długość odpowiedzi ma znaczenie, bo czytasz ją na bieżąco

Tu oszczędność jest wyraźna i natychmiast widoczna. Subiektywnie też lepiej się to czyta — fragmentaryczny styl pasuje do debugowania i rozwiązywania problemów.

Typy zadań, w których Caveman jest prawie niewidzialny:

  • Implementacja z testami — dominują wywołania narzędzi i kod
  • Debugowanie błędów uruchomieniowych — wyjście to głównie stacktrace’y (nie proza)
  • Migracje — kod + kod + kod, prawie zero prozy

Porównanie z prostym promptem

Zanim zainstalujesz pluginy, hooki i skills, sprawdź, czy samym promptem nie osiągniesz porównywalnego efektu. Dodaj do CLAUDE.md:

# Response style
- Be concise. Fragments OK.
- No preamble, no pleasantries, no "Let me...", no "I'll...".
- Skip explanations unless I ask.
- Technical substance exact. Drop filler.

To daje realnie ~50-60% tego, co Caveman, bez instalacji, bez hooków, bez ryzyka Ultra "slips" (Issue #233 — w długich sesjach poziom Ultra “wycieka” i Claude wraca do normalnego stylu).

Jeśli po tym eksperymencie widzisz, że chcesz jeszcze mocniej — Caveman jest krokiem dalej. Ale zacznij od promptu.

Tryb Wenyan — ciekawostka z gwiazdką

Caveman ma poziom wenyan — klasyczną chińszczyznę. Wenyan to wariant literacki, znacznie bardziej skondensowany niż mandaryński, każdy znak niesie więcej znaczenia. Claude potrafi używać go poprawnie i teoretycznie kompresja jest większa niż w angielskim Ultra.

Problemy:

  • Jeśli nie czytasz po chińsku, czytasz własne wyjście przez translator
  • Czasem model miesza wenyan z mandaryńskim albo japońskim kanji
  • Dla zadań technicznych (Rust lifetimes, TypeScript generics) znaki chińskie nie są oczywistym medium do opisu

To bardziej ciekawostka niż praktyczna funkcja. Ale jeśli czytasz po chińsku — warto sprawdzić.

Co instaluję razem z Cavemanem

Jeśli już decydujesz się na Cavemana, nie zatrzymuj się na nim samym. Połącz z czymś, co faktycznie robi ciężką robotę:

  • Caveman + RTK — Caveman tnie prozę, RTK tnie wyjście narzędzi. Razem dają 30-50% łącznej oszczędności.
  • Caveman + Context Mode — Caveman tnie wyjście modelu, Context Mode tnie dane wchodzące. Komplementarne.
  • Caveman sam — dla dyskusji architektonicznych i code review to wystarcza.

Czego nie robić: instalować Cavemana + Token Optimizer MCP + Token Optimizer (alexgreensh) jednocześnie. Powstaje konflikt hooków, a Caveman sam w sobie już modyfikuje instrukcję systemową.

Werdykt

Caveman nie jest oszustwem. Ma mierzalny efekt, jest na licencji MIT, dobrze utrzymywany, a instalacja to dwie komendy. Problem jest tylko z liczbami w marketingu.

Realistyczne oczekiwania:

  • Oszczędność wyłącznie na prozie w odpowiedzi modelu
  • ~50% na tym wycinku względem wariantu kontrolnego “bądź zwięzły”
  • ~12% całej sesji w optymistycznym wariancie
  • Najlepiej widoczny na sesjach dyskusyjnych, nie implementacyjnych

Jeśli wchodzisz z nastawieniem “75% oszczędności” — będziesz rozczarowany. Jeśli wchodzisz z nastawieniem “ciekawa modyfikacja stylu, oszczędność przy okazji, fajnie się czyta” — dostaniesz to, po co przyszedłeś.


Wracając do głównego artykułu: Claude Code — jak przestać palić tokeny. Konkretne narzędzia, które oszczędzają więcej: RTK i Claude Context offline.