Claude Code — jak przestać palić tokeny w kontekście
98,5% tokenów idzie na ponowne czytanie historii, a nie na właściwą pracę. Przewodnik po nawykach i narzędziach z GitHuba, z liczbami zamiast marketingu.
Aniket Parihar prześledził swoje sesje z Claude Code i policzył, że 98,5% tokenów idzie na to, żeby model raz po raz ponownie czytał historię rozmowy. Tylko 1,5% generuje kod. Claude nie liczy wiadomości — liczy tokeny, a większość z nich marnujesz na rzeczy, których nawet nie widzisz.
Skupiam się na tym, gdzie realnie uciekają tokeny w Claude Code i co z tym zrobić. Nawyki, które nic nie kosztują, plus narzędzia z GitHuba warte uwagi.
Jak ktoś nie zna Claude Code, oto dwuminutowe wprowadzenie od Fireshipa:
Co faktycznie zjada twój kontekst
Zanim przejdziemy do optymalizacji, warto wiedzieć, z czego składa się okno kontekstu. Oficjalna dokumentacja Anthropic (Best Practices for Claude Code) rozbiera to na elementy:
- system prompt + definicje narzędzi — bazowe obciążenie na starcie, około 20k tokenów zanim napiszesz cokolwiek
- CLAUDE.md — ładowany co turę, 5k tokenów zjada od pierwszej wiadomości
- pliki pamięci (
memory files) i globalnie zainstalowane umiejętności (skills) - wyjście każdego narzędzia — cały
git log, każdecat file.rs, odpowiedź testu - cała historia konwersacji — Claude czyta ją ponownie przy każdej turze
- definicje narzędzi MCP (odroczone domyślnie, tylko nazwy wchodzą do kontekstu)
Claude Code automatycznie kompaktuje historię przy zbliżaniu się do limitu, ale to rozwiązanie awaryjne, a nie plan pracy. Wydajność modelu spada już przy 20-40% wypełnienia kontekstu, bo mechanizm uwagi daje mniejszą wagę wcześniejszym instrukcjom (analiza z claudefa.st). Wielu praktyków niezależnie doszło do progu 60% jako granicy, po której jakość zaczyna wyraźnie spadać.
Komendy, które musisz znać na pamięć:
/context— pokazuje gdzie idą twoje tokeny (system prompt, narzędzia, pamięć, umiejętności, historia)/cost— statystyka i szacowany koszt (dla API; subskrybenci używają/stats)/clear— reset kontekstu między zadaniami/compact <instrukcja>— streszczenie historii z wytyczną co zachować/rewind(lub podwójne Esc) — cofnij do dowolnego checkpointa, opcjonalnie “Summarize from here”/btw— pytanie poboczne w overlay’u, nie wchodzi do historii konwersacji
Jeśli jeszcze nie uruchamiałeś /context w żadnym projekcie — zrób to teraz na świeżej sesji. Większość ludzi jest zaskoczona wynikiem.
Nawyki, które kosztują zero
Najpierw to, co robisz ręcznie. Bez instalacji, bez konfiguracji.
Edytuj prompt, nie dosyłaj kolejnego dopytania
Charly Wargnier zebrał to w jedną formułę: Total = S × N(N+1) / 2, gdzie S to średnia tokenów na wymianę, N to liczba wiadomości (wątek 0x_kaize na X). Przy typowych 500 tokenach:
- 5 wiadomości = 7,5K tokenów
- 10 wiadomości = 27,5K
- 20 wiadomości = 105K
- 30 wiadomości = 232K — wiadomość 30 kosztuje 31× więcej niż wiadomość 1
Gdy Claude nie zrozumiał, o co ci chodzi, nie pisz “nie, chodziło mi o…”. Każda kolejna wiadomość dokleja się do historii i Claude czyta ją ponownie przy każdej turze. W webowym UI kliknij Edit na swoim oryginalnym komunikacie, a Claude wygeneruje odpowiedź od nowa i zastąpi całą starą wymianę. W Claude Code odpowiednikiem jest /rewind lub podwójne Esc — wybierz punkt kontrolny, przepisz prompt.
Jeśli na tym samym problemie poprawiałeś Claude’a więcej niż dwa razy, kontekst już jest zaśmiecony nieudanymi próbami. Zrób /clear i zacznij od nowa z lepszym promptem. Oficjalna dokumentacja Anthropic wprost to rekomenduje: “Clean session with a better prompt almost always outperforms a long session with accumulated corrections.”
Nowa rozmowa co 15-20 wiadomości
Konsekwencja poprzedniego punktu. Rozmowa licząca 100+ wiadomości przy 500 tokenach na wymianę to 2,5 mln tokenów, większość przepalona na ponowne czytanie historii. Schemat, który się sprawdza:
- Gdy widzisz, że rozmowa rośnie — poproś Claude’a o streszczenie (kluczowe decyzje, ścieżki plików, otwarte pytania)
- Skopiuj streszczenie
/clearalbo nowa sesja- Wklej streszczenie jako pierwszy prompt
W Claude Code masz trzy opcje automatyzacji:
/compact <instrukcja>— streszczenie “w miejscu”, kontynuujesz tę samą sesję nad skompresowaną historią/rewind→ “Summarize from here” — streszcza tylko od wybranego checkpointa, zachowując wcześniejszy kontekst- Własne reguły kompaktowania w CLAUDE.md, np.
"When compacting, always preserve the full list of modified files and any test commands"
Claude Code wspiera też wznawianie: claude --continue (ostatnia sesja) i claude --resume (lista sesji). Użyj /rename żeby nazwać je opisowo (oauth-migration, debug-memory-leak) — traktuj jak gałęzie gita.
Łącz pytania w jeden prompt
Trzy pytania w trzech wiadomościach = trzykrotne ładowanie kontekstu. Te same trzy pytania w jednym promcie = jedno ładowanie. Dodatkowa korzyść: odpowiedzi często wychodzą lepsze, bo Claude od razu widzi pełny obraz i planuje odpowiedź spójnie.
Zamiast:
Streść ten artykuł
(czeka)
Teraz wypisz kluczowe punkty
(czeka)
Teraz zaproponuj tytuł
Napisz:
Streść ten artykuł, wypisz kluczowe punkty i zaproponuj tytuł.
Projects dla plików, które powracają
Każde wysłanie tego samego PDF-a do nowej rozmowy to ponowna tokenizacja od zera. Projects buforują dokumenty raz, każda kolejna konwersacja w tym projekcie korzysta z wersji w buforze bez naliczania tokenów. Jeśli pracujesz z kontraktami, briefami, przewodnikami stylu, dokumentacją API — dodaj je raz i korzystaj wielokrotnie.
Projekty mają też osobną, izolowaną Memory — każdy projekt buduje własny kontekst, co zapobiega mieszaniu preferencji z różnych obszarów pracy.
Memory & User Preferences — ustaw raz, używaj wszędzie
Od marca 2026 Chat Memory jest dostępna na wszystkich planach — Free, Pro, Max (Settings → Capabilities → Memory, dokumentacja Chat Memory w Claude Help Center). Claude co 24h analizuje konwersacje i wyciąga preferencje — nie zapisuje wszystkiego, tylko szumem pomija i zostawia sygnał: rolę, styl pisania, stack technologiczny, konwencje.
Jeśli każdą rozmowę zaczynasz od “jestem backend developer w Go, odpowiadaj zwięźle, nie tłumacz oczywistości” to 3-5 wiadomości przepalonych na konfigurację wstępną za każdym razem. Ustaw raz w User Preferences i koniec. Jeśli Memory zaczyna ci utrudniać (np. trzyma nieaktualne przyzwyczajenia), możesz ją Pause (zachowuje, ale nie używa) albo Reset (kasuje permanentnie).
Wyłącz funkcje, których nie używasz
Web search, connectors, Advanced Thinking — każda z tych funkcji dodaje tokeny do każdej odpowiedzi, nawet jeśli w danym zadaniu ich nie potrzebujesz. Z grubsza: jeśli świadomie nie włączyłeś, wyłącz.
Konkretnie w Claude Code:
/effort lowdla trywialnych zadań (formatowanie, proste przeglądy kodu) — szerzej o poziomach effort piszę w artykule o wymuszaniu jakościMAX_THINKING_TOKENS=8000jako zmienna środowiskowa dla domyślnego budżetu thinking — więcej zmiennych środowiskowych opisałem w settings.json i zmienne/mcp— zobacz co masz skonfigurowane, wyłącz co nieużywane/config— wyłącz extended thinking dla prostych sesji
Extended thinking jest domyślnie włączony, bo faktycznie poprawia wyniki przy złożonych zadaniach. Ale tokeny myślenia rozliczane są jako tokeny wyjściowe, a domyślny budżet potrafi sięgać dziesiątek tysięcy tokenów na jedno żądanie. Przy prostych zadaniach to koszt, który się nie zwróci.
Haiku, Sonnet, Opus — dobierz model do zadania
Ceny API w kwietniu 2026 (cennik API Anthropic):
| Model | Input ($/mln) | Output ($/mln) | Kiedy |
|---|---|---|---|
| Haiku 4.5 | 1 | 5 | formatowanie, tłumaczenia, szybkie odpowiedzi, sprawdzanie gramatyki |
| Sonnet 4.6 | 3 | 15 | 70-80% realnej roboty, kodowanie, przeglądy kodu |
| Opus 4.7 | 5 | 25 | decyzje architektoniczne, złożone debugowanie, wieloetapowe rozumowanie |
Haiku jest 5× tańszy od Opusa (dokładnie taki sam mnożnik na wejściu i wyjściu). Na zadania, które nie wymagają głębokiego rozumowania, różnica jakości jest pomijalna. Sonnet kosztuje 40% mniej niż Opus i dla dobrze sprecyzowanych zadań wystarcza z naddatkiem.
Jak przełączyć w Claude Code:
/model— w trakcie sesji/config— ustawić domyślny- W konfiguracji subagenta:
model: haiku— subagent odpali się na Haiku niezależnie od modelu głównej sesji
Typowy schemat pracy: główna sesja na Opusie/Sonnecie, subagenci do prostych analiz na Haiku. Zespoły agentów to osobny temat — zużywają około 7× więcej tokenów niż zwykła sesja, bo każdy członek zespołu trzyma własne okno kontekstu (oficjalny przewodnik Anthropic o kosztach Claude Code).
Rozlej pracę na cały dzień
Limit w Claude’u to przesuwne okno 5-godzinne — nie resetuje się o północy, tylko stopniowo. Wiadomości wysłane o 9 rano przestają liczyć się o 14:00. Jeśli spalisz cały tygodniowy limit w jednej sesji o poranku, większość dnia siedzisz odłączony, a limit dzienny nie został wyczerpany.
Sposób, który działa: 2-3 sesje dziennie (rano, po obiedzie, wieczorem). Między sesjami daj sobie 5 godzin przerwy — limit się odnowi.
Unikaj godzin szczytu, jeśli możesz
Od 26 marca 2026 Anthropic inaczej rozlicza zużycie w godzinach szczytu. Ta sama sesja w godzinach szczytu szybciej wyczerpuje twój 5-godzinny limit (The Register — Anthropic tweaks usage limits).
Dla nas w Polsce godziny szczytu to 14:00-20:00 w dni robocze. Weekendy bez szczytu. Liczy się moment startu sesji — przesuwne okno 5h leci od pierwszego zapytania. Ciężkie schematy pracy (masowe refaktoryzacje, zespoły agentów) rzucaj po 20:00 albo w weekend.
Sensowny CLAUDE.md i .claudeignore
Anthropic jest w tym bezkompromisowy: CLAUDE.md pod 200 linii. Im dłuższy, tym większa szansa, że Claude zignoruje połowę, bo ważne reguły gubią się w szumie. Szczegółowo jak pisać CLAUDE.md opisuję w osobnym artykule o wzorcach pracy. Wpisuj tylko to, czego Claude nie zgadnie z kodu:
- Komendy Bash (build, test, lint), których nazwy są niestandardowe
- Reguły stylu różniące się od domyślnych
- Konwencje repo (gałęzie, PR)
- Specyficzne pułapki, nieoczywiste zachowania
- Decyzje architektoniczne
Czego nie pisać: standardów, które Claude już zna; długich tutoriali; opisów każdego pliku z osobna; “write clean code” i podobnych oczywistości. Test: przy każdej linijce pytaj siebie “czy bez tego Claude popełni błąd?”. Jeśli nie — skasuj.
Równolegle używaj .claudeignore (składnia jak .gitignore). Wszystko, co wylistujesz, Claude fizycznie nie zobaczy — nie wciągnie przypadkiem do grepa, nie doczyta podczas eksploracji. To jeden z najmocniejszych ruchów na utrzymanie niskiego zużycia tokenów.
Długie instrukcje specyficzne dla konkretnych schematów pracy przenieś do katalogu skills (.claude/skills/SKILL.md) zamiast trzymać w CLAUDE.md. Umiejętności ładują się na żądanie, kiedy są istotne — a CLAUDE.md siedzi w bazowym ładowaniu zawsze.
Preferuj CLI nad MCP, gdzie się da
MCP to fajna zabawka, ale definicje narzędzi MCP (nawet odroczone) zjadają miejsce w kontekście. Oficjalna rekomendacja Anthropic brzmi jednoznacznie: preferuj CLI (gh, aws, gcloud, sentry-cli) tam, gdzie CLI istnieje. Narzędzia CLI nie dodają osobnej listy per narzędzie do kontekstu — Claude odpala komendę w Bashu i tyle.
Jeśli używasz GitHuba, zainstaluj gh. Claude umie go od podstaw: tworzenie zgłoszeń, otwieranie PR-ów, czytanie komentarzy, pobieranie różnic z PR-ów. Bez gh Claude wysyła nieautoryzowane zapytania do API GitHuba, a wtedy łatwo przekroczyć limit żądań.
Plan Mode dla nietrywialnych zadań
Plan Mode (Shift+Tab) sprawia, że Claude najpierw czyta i planuje, nie modyfikując niczego. Zatwierdzasz plan, przełączasz do Normal Mode, Claude implementuje. Brzmi jak narzut, ale na zadaniach, gdzie może wybrać złą ścieżkę, oszczędza godziny poprawek.
Czteroetapowy przebieg pracy z dokumentacji Anthropic:
- Explore (Plan Mode):
read /src/auth and understand how we handle sessions and login - Plan (Plan Mode):
I want to add Google OAuth. What files need to change? - Implement (Normal Mode):
implement the OAuth flow from your plan - Commit (Normal Mode):
commit with a descriptive message
Dla trywialnych zadań (literówka, linia logu, zmiana nazwy) pomiń Plan Mode — dodaje narzut bez korzyści.
Subagenci — kiedy i po co
Subagent uruchamia się z osobnym oknem kontekstu, robi swoją robotę i wraca do głównej sesji tylko ze streszczeniem. Cały szum pośredni (odczyty plików, eksploracyjne wywołania narzędzi, rozwlekłe wyjścia) zostaje w jego kontekście i nigdy nie dotyka twojego.
Typowe przypadki do delegacji:
- Eksploracja nieznanego fragmentu kodu (“sprawdź jak działa odświeżanie tokenu w
src/auth/”) - Uruchamianie testów i zwracanie podsumowania nieudanych testów
- Pobieranie dokumentacji
- Przegląd kodu przez świeży kontekst (schemat Writer/Reviewer)
Nie uruchamiaj subagenta do każdych drobnych zadań — każde uruchomienie samo kosztuje tokeny. Używaj, gdy izolacja kontekstu faktycznie coś daje.
Zrozum prompt caching
Jeśli pracujesz przez API, włącz prompt caching. Trafienie w cache kosztuje 90% mniej niż normalne wejście, zapis do cache’a kosztuje 25% więcej niż normalne wejście (dokumentacja prompt caching). Dla typowych potoków, w których ten sam system prompt jest używany ponownie, oszczędności idą w setki procent.
Haczyk: czas życia cache’a został skrócony z 60 minut do 5 minut na początku 2026. Jeśli masz schemat pracy, który uderzał w cache co 10-20 minut odpowiadając na sporadyczne zapytania, nagle nie trafiasz w cache i płacisz pełną stawkę. Dla wielu obciążeń ta cicha zmiana podniosła efektywne koszty API o 30-60% (analiza DEV o 5-minutowym TTL).
Narzędzia z GitHuba
Są tu wszystkie z listy Charly’ego Wargniera (oryginalny wątek DataChaz na X), uporządkowane od najbardziej wartościowych do tych, których bym nie ruszył. Ważne: nie nakładaj ich wszystkich naraz. Kilka z nich konfiguruje hooki PreToolUse, co prowadzi do konfliktów. Wybierz jedno-dwa z tych, które rozwiązują twój konkretny problem.
RTK — Rust Token Killer
rtk-ai/rtk — ~31 100 gwiazdek, Apache 2.0 (README błędnie pisze “MIT”), bardzo aktywne (v0.37.2 z 20.04.2026).
Co robi. Pojedyncza binarka napisana w Ruście, która przechwytuje komendy powłoki, zanim ich wyjście trafi do Claude’a. Kompresja czterema strategiami: inteligentne filtrowanie (wycina ANSI, spinnery, komentarze), grupowanie (agreguje po plikach/regułach), ucinanie redundancji, usuwanie duplikatów (powtarzające się linie zwija z licznikiem). Integracja przez hook PreToolUse w ~/.claude/settings.json — skrypt rtk-rewrite.sh przepisuje np. git status na rtk git status zanim komenda trafi do powłoki. Claude “widzi” tylko skompresowane wyjście.
Ważne ograniczenie: RTK działa wyłącznie na wywołaniach Basha. Wbudowane narzędzia Claude Code (Read, Grep, Glob) go omijają.
Instalacja:
# Homebrew (zalecane):
brew install rtk
# Curl do ~/.local/bin:
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
# Cargo — UWAGA, NIE z crates.io:
cargo install --git https://github.com/rtk-ai/rtk
Kolizja nazwy: cargo install rtk z crates.io instaluje Rust Type Kit (inny projekt, niepowiązany). README RTK wprost ostrzega: “If rtk gain fails, you may have reachingforthejack/rtk (Rust Type Kit) installed instead.”
Po instalacji:
rtk init -g # hook globalnie + plik RTK.md
rtk init -g --hook-only # tylko hook, bez RTK.md
# Restart Claude Code
Użycie. Po instalacji hooka większość komend działa przezroczyście:
rtk git status # -80%
rtk git diff # -75%
rtk cargo test # -90%
rtk vitest run # -99,5% (tylko nieudane testy)
rtk next build # -87%
rtk gh pr view 42 # -87%
rtk gain # statystyki zaoszczędzonych tokenów
rtk gain --history --daily # wykres oszczędności
rtk discover # szuka utraconych okazji w logach sesji
Obsługuje około 100 komend i 12 narzędzi AI (Claude Code, Copilot, Cursor, Gemini, Codex, Windsurf, Cline, OpenCode, Kilo Code, Antigravity, OpenClaw).
Realne liczby (z README, 30-minutowa sesja):
| Kategoria | Bez RTK | Z RTK | Oszczędność |
|---|---|---|---|
ls/tree | 2 000 | 400 | -80% |
cat/read | 40 000 | 12 000 | -70% |
grep/rg | 16 000 | 3 200 | -80% |
git status | 3 000 | 600 | -80% |
cargo test/npm test | 25 000 | 2 500 | -90% |
pytest | 8 000 | 800 | -90% |
| Razem | ~118 000 | ~23 900 | -80% |
Niezależne recenzje potwierdzają wyniki co do rzędu wielkości: Esteban Estrada raportuje -70% na własnych sesjach (test RTK w praktyce — codestz.dev).
Otwarte zgłoszenia warte pilnowania: rtk ls zwracał niedawno pusty ciąg znaków (#1418), rtk cat emituje ANSI do strumienia nie-TTY (#1409), rtk rg zamieniane na grep co zwiększa użycie tokenów w niektórych scenariuszach (#1385). Repo ma 638 otwartych zgłoszeń — to bardziej znak popularności niż dysfunkcji. Zespół utrzymujący jest responsywny, Discord ma 1470+ członków.
Werdykt. Jeśli masz intensywny schemat pracy w terminalu (dużo testów, gita, cargo, docker, gh), to jedno z dwóch narzędzi z tej listy, które zasługują na stałe miejsce w konfiguracji. Minimalna inwazyjność, konkretne metryki, aktywne utrzymanie.
Jeśli chcesz głębszy konfigurację i analizę błędów: szczegółowa analiza RTK.
Claude Context
zilliztech/claude-context — ~6 100 gwiazdek, MIT, TypeScript, pre-1.0 (v0.1.7 z 17.04.2026).
Co robi. Serwer MCP, który indeksuje twój kod i daje Claude’owi wyszukiwanie hybrydowe (BM25 słów kluczowych + gęste osadzenia wektorowe). BM25 łapie dokładne dopasowania (nazwy funkcji, endpointy), wektor łapie semantykę (“funkcje obsługujące uwierzytelnianie”). Dzielenie na fragmenty po AST (nie naiwne cięcie), inkrementalne reindeksowanie przez drzewa Merkle’a — przebudowuje tylko zmienione pliki.
Backend: Milvus (flagowy produkt Zilliza). Dwa tryby: Zilliz Cloud (zarządzany, darmowy plan wystarcza na zwykłe projekty) albo lokalny Milvus w Dockerze (pełny tryb offline). Osadzenia: OpenAI, VoyageAI, Gemini, Ollama (lokalnie, bez klucza API). Czyli da się całość odpalić offline: Ollama + lokalny Milvus, żadnych kluczy, żadnego ruchu na zewnątrz.
Obsługuje TypeScript/JavaScript, Python, Java, C++, C#, Go, Rust, PHP, Ruby, Swift, Kotlin, Scala, Markdown.
Instalacja:
claude mcp add claude-context \
-e OPENAI_API_KEY=sk-your-key \
-e MILVUS_TOKEN=your-zilliz-token \
-- npx @zilliz/claude-context-mcp@latest
Wymagania: Node.js 20+ (ale NIE 24.0.0+). Zmienne środowiskowe: EMBEDDING_PROVIDER, EMBEDDING_MODEL, HYBRID_MODE=true, CUSTOM_IGNORE_PATTERNS, SPLITTER_TYPE. Config globalny w ~/.context/.env.
Użycie. Brak dedykowanych komend ukośnikowych. Mówisz do Claude’a naturalnym językiem:
- “Zaindeksuj ten kod”
- “Jaki status indeksowania?”
- “Znajdź funkcje, które obsługują uwierzytelnianie”
Realne liczby (oficjalny benchmark SWE-bench Verified, 30 zadań, GPT-4o-mini):
| Metryka | Baseline (grep) | Z MCP | Delta |
|---|---|---|---|
| Tokeny | 73 373 | 44 449 | -39,4% |
| Wywołania narzędzi | 8,3 | 5,3 | -36,3% |
| F1 wyszukiwania | 0,40 | 0,40 | bez zmian |
Okrągłe “40%” w marketingu odnosi się dokładnie do tej liczby. Jakość wyszukiwania utrzymana (F1 taki sam), czyli oszczędność nie kosztuje jakości.
Werdykt. Dla dużego kodu silny wybór. Wsparcie Zilliza oznacza szansę na przetrwanie roku-dwóch, a nie wyparowanie jak projekty solowe. Wersja przed 1.0 znaczy, że trafisz na ostre krawędzie (najczęstsze w zgłoszeniach: DEADLINE_EXCEEDED na gRPC w darmowym planie Zilliz Cloud, osierocone pliki Merkle), ale opiekun projektu jest responsywny.
Dla firm z wymaganiami zgodności najciekawszy jest tryb pełnego offline — Ollama lokalnie, Milvus w Dockerze, zero ruchu na zewnątrz. Krok po kroku opisałem to w konfiguracji Claude Context bez internetu.
Context Mode
mksglu/context-mode — ~8 500 gwiazdek, Elastic License 2.0 (source-available, NIE OSS), bardzo aktywne.
Co robi. Marketing mówi “sandbox do SQLite” — to uproszczenie. Tak naprawdę to serwer MCP + 4 hooki cyklu życia (PreToolUse, PostToolUse, PreCompact, SessionStart). Sandbox to osobny proces, nie SQLite. Narzędzie ctx_execute uruchamia izolowany proces (obsługuje 11 środowisk uruchomieniowych: JS/TS/Python/Shell/Ruby/Go/Rust/PHP/Perl/R/Elixir), odpala kod tam, zbiera standardowe wyjście. Do kontekstu wraca tylko to, co agent sam przez console.log wypisze. Surowe dane — 56 KB zrzut Playwright, 45 KB log nginx — nigdy nie opuszczają sandboxa.
SQLite jest drugą warstwą — bazą wiedzy. ctx_index dzieli markdown na fragmenty po nagłówkach, wrzuca do SQLite FTS5 z BM25 + Porter stemming + trigramy + Reciprocal Rank Fusion. Są dwie bazy: ulotna (/tmp/context-mode-<PID>.db) i trwała SessionDB, żeby przeżyć automatyczne kompaktowanie.
Hook PreToolUse przechwytuje Bash, Read, Grep, WebFetch, Task z dopasowaniami per platforma, blokuje lub przekierowuje do 6 narzędzi sandboxa.
Licencja — uwaga. Elastic License 2.0 to source-available, nie open source wg OSI. Klauzula zabrania hostowania tego jako SaaS. Dla zwykłego wewnętrznego użycia firmowego nie ma problemu, ale jeśli chcesz wbudować to w produkt komercyjny, przeczytaj licencję uważnie.
Instalacja:
# Jeden kanał (zalecany):
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode
/context-mode:ctx-doctor # sprawdzenie że działa
# Bez hooków (sam MCP):
claude mcp add context-mode -- npx -y context-mode
Obsługuje 12 platform: Claude Code, Gemini CLI, VS Code Copilot, Cursor, OpenCode, Codex, Kiro, Zed, Antigravity, Pi.
Realne liczby (z oficjalnego BENCHMARK.md w repo):
- Pobranie 7,5 MB JSON-a i znalezienie sekretu pod indeksem 13000: 7,5 MB → 0,9 KB (99%)
- Zgłoszenia GitHuba (20 elementów): 58,9 KB → 1,1 KB (98%)
- Git log 153 commitów: 11,6 KB → 107 B (99%)
- Badanie repo przez subagenta: 986 KB → 62 KB (94%)
Sumarycznie 21 scenariuszy, 315 KB → 5,4 KB (98%). Zestaw testów: 125 testów, wszystkie przechodzą.
Opinie i bugi. Show HN marzec 2026, 570+ punktów, numer jeden w trendach (dyskusja Show HN na Hacker News). Zgłoszenia żywe: procesy zombie MCP zjadające 50-60% CPU (#244), XSS w Insight API (#293), wpisana na sztywno ścieżka ~/.claude (#289), problemy stabilności sandboxa pod obciążeniem. Opiekun projektu typowo odpowiada w <24h z poprawką na gałęzi next.
Werdykt. Jeśli twoje sesje zjadają kontekst na logach, GitHub API, dużych JSON-ach z MCP — to jest narzędzie dla ciebie. Największy wpływ na obciążenia z rzeczywistym wolumenem danych. Uważaj na licencję, jeśli wbudowujesz w produkt. Windows, Cursor i Codex mają ostre krawędzie.
Code Review Graph
tirth8205/code-review-graph — ~12 000 gwiazdek, MIT, bardzo aktywne (v2.3.2, 23 release’y w 2 miesiące).
Co robi. Hybryda CLI + lokalnego serwer MCPa. Parsuje repo przez Tree-sitter do AST i zapisuje w SQLite jako graf: węzły to funkcje/klasy/importy, krawędzie to wywołania/dziedziczenie/pokrycie testów. Przy zmianie pliku hook Git (lub obserwator) liczy “zasięg zmiany” — idzie po grafie wstecz do wywołujących i w przód do testów pokrywających zmodyfikowaną funkcję. Inkrementalne aktualizacje po SHA-256, typowo <2 sekundy.
Claude nie czyta całego repo. Dostaje przez MCP “minimalny kontekst” — tylko zmienione pliki i ich zasięg zmiany. 28 narzędzi MCP: get_minimal_context_tool, get_impact_radius_tool, semantic_search_nodes_tool.
Instalacja:
# Python 3.10+
pip install code-review-graph # lub pipx / uv install
code-review-graph install # autodetekcja: Claude Code, Cursor, Windsurf, Zed, Continue
code-review-graph build # pierwsze parsowanie (~10 s / 500 plików)
Użycie (komendy ukośnikowe Claude Code):
/code-review-graph:build-graph— budowa od zera/code-review-graph:review-delta— zmiany od ostatniego commita/code-review-graph:review-pr— pełny przegląd PR-a z zasięgiem zmiany
Realne liczby. Średnia 8,2× redukcji na 6 repo, ale rozrzut dramatyczny:
| Repo | Naive | Graph | Redukcja |
|---|---|---|---|
| express | 693 | 983 | 0,7× (gorzej!) |
| FastAPI | 4 944 | 614 | 8,1× |
| Flask | 44 751 | 4 252 | 9,1× |
| Gin | 21 972 | 1 153 | 16,4× |
| httpx | 12 044 | 1 728 | 6,9× |
| Next.js | 9 882 | 1 249 | 8,0× |
“49× token reduction” to inna metryka — nie tokeny, tylko pliki. Monorepo Next.js 27 732 plików, do przeglądu wzięto ~15. Skrót marketingowy.
Opinie. Poradnik na Medium (Velvrix, Spring Boot + Cursor) potwierdza 5-10× realne oszczędności (poradnik Velvrix na Medium).
Werdykt. Dla średnich i dużych baz kodu silny kandydat — tam, gdzie standardowe czytanie plik po pliku to katastrofa kontekstowa. Nie jest to rozwiązanie na małe projekty (Express pokazuje, że przy małym kodzie narzut grafu przebija oszczędność). Jeśli twoja baza kodu to 500+ plików, warto rozważyć.
Token Savior
Mibayy/token-savior — ~555 gwiazdek, MIT, aktywne (v2.6.0, repo stworzone 30.03.2026).
Co robi. Serwer MCP w Pythonie — hybryda strukturalnego indeksatora kodu i silnika pamięci w SQLite. Nawigacja przez symbole za pomocą tree-sitter (osobne adnotatory dla języków: python_annotator.py, go_annotator.py, rust_annotator.py, typescript_annotator.py, java_annotator.py, c_annotator.py, csharp_annotator.py). Python ma dodatkowo wbudowany AST, C używa wyrażeń regularnych — miks tree-sitter + AST + regex.
Wynik: find_symbol("send_message") zwraca ~67 znaków zamiast czytania 41M znaków plików.
Drugi filar — trwała pamięć: SQLite z WAL + FTS5 + opcjonalnie sqlite-vec + sentence-transformers (all-MiniLM-L6-v2, 384-wymiarowe). Fuzja BM25 + wektor przez RRF. 12 typów obserwacji (decyzje, poprawki bugów, konwencje, zabezpieczenia), każda z bayesowskim wstępnym prawdopodobieństwem ważności, czasem życia, oceną zwrotu z inwestycji, wykrywaniem sprzeczności, automatyczną promocją (5× użycie → konwencja), destylacją MDL.
Instalacja. Pakiet na PyPI nazywa się token-savior-recall (z “-recall” na końcu), ale binarka to token-savior. To często myli — zgłoszenie #12.
# Minimum (uruchomi serwer):
pip install "token-savior-recall[mcp]"
# Z wyszukiwaniem wektorowym:
pip install "token-savior-recall[mcp,memory-vector]"
# Rejestracja w Claude Code:
claude mcp add token-savior -- /path/to/venv/bin/token-savior
Samo pip install token-savior-recall nie wystarczy — serwer padnie z ModuleNotFoundError: mcp. Trzeba dodatku [mcp].
Użycie. Trójwarstwowe stopniowe ujawnianie: L1 memory_index (~15 tok/wynik) → L2 memory_search (~60 tok) → L3 memory_get (~200 tok). Narzędzia nawigacji: find_symbol, get_dependencies, get_dependents, get_backward_slice, get_change_impact, plus edytowanie (replace_symbol_source, insert_near_symbol), punkty kontrolne, analiza martwego kodu, graf Leidena. Profile: ultra / lean / nav / core / full = 17 do 106 narzędzi.
Liczby (tsbench, 90 zadań, Opus 4.7):
- Baseline: 120/180 (66,7%) poprawnych rozwiązań
- Z Token Savior: 178/180 (98,9%)
- Czas zegarowy: 166 min → 36 min (-78%)
- Tokeny: 1,55M → 821K (-47%)
find_symbol: 41M → 67 znaków (-99,9%)
Ostrzeżenie: “97% fewer characters” w marketingu to znaki, nie tokeny.
Werdykt. Świeży projekt (miesiąc temu), ale zaskakująco dojrzały: 1318/1318 testów przechodzi, zgłoszenia zamykane szybko, są zewnętrzni współtwórcy. Ambitne narzędzie — łączy nawigację po kodzie z semantyczną pamięcią. Jeśli pracujesz na dużych projektach i chcesz, żeby Claude “pamiętał” kontekst między sesjami, warto dać szansę. Ostre krawędzie są (Windows+OneDrive #3), ale responsywne utrzymanie to rekompensuje.
Caveman Claude
juliusbrussee/caveman — ~41 000 gwiazdek, MIT, aktywne.
Co robi. Skill/plugin do Claude Code (+ Codex/Gemini/Cursor/Windsurf/Cline/Copilot). Nie modyfikuje modelu, nie modyfikuje twojego promptu. Wstrzykuje instrukcję systemową wymuszającą, żeby agent odpowiadał w stylu “jaskiniowca”: fragmenty zdań, bez rodzajników “the/a”, bez hedgingu, bez grzeczności, bez preambuły.
Przykład reguły: “Terse like caveman. Technical substance exact. Only fluff die. Drop: articles, filler, pleasantries, hedging. Fragments OK. Code unchanged. Pattern: [thing] [action] [reason]. [next step].”
Ważne: kompresji podlega tylko proza. Kod, ścieżki, URL-e, komendy, nagłówki zostają nietknięte. Dodatkowo caveman-compress (Python) przepisuje CLAUDE.md w miejscu (kopia zapasowa do CLAUDE.original.md), żeby zmniejszyć obciążenie wejścia co sesję.
Instalacja:
# Claude Code (plugin):
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman
# Hooki standalone bez pluginu:
bash <(curl -s https://raw.githubusercontent.com/JuliusBrussee/caveman/main/hooks/install.sh)
Użycie. Komendy ukośnikowe: /caveman, /caveman lite, /caveman full, /caveman ultra, /caveman wenyan. Wyzwalacze naturalnym językiem: “talk like caveman”, “less tokens please”. Stop: “stop caveman” / “normal mode”. Poziomy:
- Lite — wyrzuca wypełniacze, gramatyka zostaje
- Full — fragmenty, bez rodzajników
- Ultra — telegraficzne skróty
- Wenyan — klasyczna chińszczyzna (większa kompresja, ale jeśli nie znasz chińskiego, zły pomysł)
Liczby — tu uważaj. Marketing i README mówią 65-75% redukcji. Oficjalny benchmark autora na Claude API (10 zadań, tiktoken) pokazuje średnią 65% oszczędności tokenów wyjściowych (zakres 22-87%). Realny wpływ całosesyjny jest jednak niższy — szczegóły rozkładam w analizie liczb Cavemana.
Opinie. Viralowy hit: numer jeden na Hacker News, numer jeden w trendach GitHuba, 10k+ głosów na r/ClaudeAI, omówienia w Decrypt i Hackaday. Aktywne bugi: install.ps1 wywala się na Windowsie (#249), plakietka statusu zostaje po zatrzymaniu (#245), compress zapisuje pustą kopię zapasową (#237), Ultra “zjeżdża” podczas długich sesji (#233).
Werdykt. Szybki eksperyment do odpalenia: instalacja minutowa, efekt widoczny. Ale nie oczekuj 75% oszczędności całosesyjnych — realny wpływ to jednocyfrowe procenty do ~10%. Na prozie (dyskusje architektoniczne, wyjaśnienia, opisy PR-ów) faktycznie robi robotę. Na typowej sesji programistycznej efekt kosmetyczny. Dobre do połączenia z czymś solidniejszym (RTK, Context Mode).
Claude Token Efficient
drona23/claude-token-efficient — ~4 650 gwiazdek, MIT, aktywne.
Co robi. Jeden plik CLAUDE.md, 619 bajtów, 12 linii. Dosłownie 11 regułek w sekcji “Approach”:
- Think before acting. Read existing files before writing code.
- Be concise in output but thorough in reasoning.
- Prefer editing over rewriting whole files.
- Do not re-read files you have already read unless the file may have changed.
- Skip files over 100KB unless explicitly required.
- Suggest running
/costwhen a session is running long to monitor cache ratio. - Recommend starting a new session when switching to an unrelated task.
- Test your code before declaring done.
- No sycophantic openers or closing fluff.
- Keep solutions simple and direct.
- User instructions always override this file.
To wszystko. Brak hooków, skryptów, narzędzi. Repo ma też BENCHMARK.md, katalog profiles/ (warianty: benchmark, coding, agents, analysis + wersjonowane v5/v6/v8) i examples/.
Instalacja:
curl -o CLAUDE.md https://raw.githubusercontent.com/drona23/claude-token-efficient/main/CLAUDE.md
Uwaga autora. Autor sam uczciwie ostrzega: plik dodaje input tokens na każdej turze. Przy niskim wolumenie (kilka promptów dziennie) output netto wychodzi stratą.
Liczby. Mini-benchmark autora: 4 prompty, redukcja słów 63%. Przyznaje, że to “5-prompt directional indicator, not a statistically controlled study”. Bezpośrednie porównanie na zewnętrznym stelażu testowym (zgłoszenie #1, 30 uruchomień v8 vs C-structured): 0,935 dolara vs 1,131 = 17,4% taniej.
Marketing mówi 60-90%. Rzeczywistość README to 17% na realnych zadaniach kodowych.
Werdykt. Jeśli już masz CLAUDE.md, zobacz czy któraś z tych 11 reguł ci się przyda. Darmowe, minimalne, nie wymaga nic. Ale nie licz na 90% oszczędności. Traktuj jak rozsądny punkt startowy, nie końcowy.
Token Optimizer (Alex Greensh)
alexgreensh/token-optimizer — ~550 gwiazdek, PolyForm Noncommercial 1.0.0 (NIE open source), aktywne.
Co robi. Wielowarstwowy plugin do Claude Code (czysty Python, standardowa biblioteka). “Ghost tokens” w narracji autora to strukturalny narzut sesji: rozrost CLAUDE.md/MEMORY.md, nieużywane umiejętności (skills), duplikaty przypomnień systemowych, martwe serwery MCP, zawartość MEMORY.md poniżej linii 200 (którą Claude cicho ucina, ale nadal liczy się do okna).
Warstwy:
- Hooki (PreToolUse, SessionStart, SessionEnd, UserPromptSubmit) — kompresja wyjścia Basha (
git,pytest,lint,docker,tree), Delta Mode (przy ponownym odczycie zwraca tylko różnicę przezdifflib), Quality Nudges, Loop Detection, deduplikacja Read-Cache - CLI (
measure.py ...) — audyty CLAUDE.md/MEMORY.md,jsonl-trim,jsonl-dedup, cleanup orphaned topic files - Progressive Checkpoints przy 20/35/50/65/80% wypełnienia — auto-restore po auto-compact
- Tool Result Archive — wyniki >4KB idą na dysk, w kontekście zostaje tylko hint
expand abc123 - Dashboard lokalny (
localhost:24842) z SQLite~/.claude/_backups/token-optimizer/trends.db
Licencja — uwaga. PolyForm Noncommercial blokuje komercyjne użycie bez osobnej umowy. Dla firmowego użycia nie wrzucisz tego do pipeline’u produkcyjnego bez kontaktu z autorem.
Instalacja:
/plugin marketplace add alexgreensh/token-optimizer
/plugin install token-optimizer@alexgreensh-token-optimizer
Liczby. Wszystkie autoreklamowe, zero niezależnych benchmarków. Autor raportuje 50-70 tys. tokenów narzutu przed pierwszym promptem u zaawansowanych użytkowników, Delta Mode z 2000-token re-read do 50-token diff (~97%), case study własne: 942 sesje, 6,13B tokenów, “1500-2500 dolarów miesięcznie” oszczędności przy ciężkim Opus.
Werdykt. Narzędzie istnieje, ma szeroki zakres i działa lokalnie. Ale wszystkie liczby pochodzą od autora, zero niezależnej walidacji, licencja blokuje komercyjne użycie. “Invisible ghost tokens” to termin marketingowy autora — technicznie oznacza strukturalny narzut, nie magiczną klasę tokenów. Jeśli pracujesz hobbystycznie i masz czas na eksperyment, OK. Do pracy — ostrożnie.
Rekomendowane zestawy
Nie każdy problem wymaga wszystkich narzędzi. Dobierz do tego, co cię faktycznie boli.
Mam dużą bazę kodu
- Podstawa: Claude Context (zilliztech) — wyszukiwanie hybrydowe przez MCP, plus Ollama + lokalny Milvus jeśli chcesz offline. Konfigurację offline opisałem w osobnym artykule.
- Alternatywa dla monorepo: Code Review Graph (tirth8205) — jeśli używasz głównie do przeglądów PR i analiz delta
- Opcjonalnie: Token Savior (Mibayy) dla nawigacji po symbolach + trwałej pamięci między sesjami
Spaliłem tokeny na testach i logach
- Podstawa: RTK — kompresja wyjścia z Basha, konkretne metryki, aktywne utrzymanie. Pełna konfiguracja i debugowanie typowych bugów: szczegółowa analiza RTK.
- Dodatek: Context Mode (mksglu) dla zadań z ciężkimi pobraniami JSON/GitHub API — sandbox subprocess z 98% redukcji
Mam małe projekty, chcę szybkich efektów
- Claude Token Efficient (drona23) — jeden plik CLAUDE.md, realnie 17% taniej
- Włącz Memory & User Preferences (ustaw raz, zadziała wszędzie)
/effort lowdla drobnicy, Haiku dla subagentów
Potrzebuję efektu od zaraz, bez instalacji
Nawyki z sekcji powyżej, w tej kolejności:
- Przestań dosyłać doprecyzowania — edytuj prompt
/clearmiędzy zadaniami- Nowa rozmowa co 15-20 wiadomości (z streszczeniem)
- Wyłącz funkcje, których nie używasz (
/mcp,/config) - Dobierz model do zadania (Haiku dla zadań rutynowych)
Koszt zerowy, efekt w tygodniu.
Czego bym nie robił
- Nie łącz wielu optymalizatorów hooków naraz. RTK + Context Mode + Token Optimizer MCP + Token Optimizer (alexgreensh) wszystkie piszą do
~/.claude/settings.json. Konflikty są nieuniknione. Wybierz jedno narzędzie hooków + jedno MCP i testuj, zanim dołożysz kolejne. - Nie wierz marketingowym liczbom 90%+. Widziałeś wyżej — “75%” u Caveman to realnie 4-10%, “49×” u Code Review Graph to pliki nie tokeny, “95%+” u Token Optimizer MCP nie ma żadnej walidacji. Szukaj narzędzi, które podają metodologię benchmarku i baseline (Claude Context ma SWE-bench, RTK ma tabelę per-komenda).
- Czytaj licencję. PolyForm Noncommercial (Token Optimizer alexgreensh) i Elastic License 2.0 (Context Mode) nie są open source. Dla projektu hobbystycznego bez różnicy. Dla komercyjnego — różnica duża.
- Nie instaluj porzuconych repo. Claude Token Optimizer (nadimtuhin) — zero aktywności 5 miesięcy. Ekosystem Claude Code zmienia się za szybko, żeby opierać się na martwym kodzie.
- Nie włączaj agresywnego cache’owania bez świadomości TTL. Token Optimizer MCP ma 7-dniową retencję cache’a na dysku. Jeśli plik zmienisz zewnętrznie (nie przez Claude), cache zwróci nieaktualne dane. To prosty przepis na godziny debugowania.
Podsumowanie
Nawyki dają największy zwrot bez instalacji. Dopiero potem dobieraj narzędzia — dwa, nie dziesięć: RTK albo Context Mode dla terminala i MCP, Claude Context albo Code Review Graph dla dużej bazy kodu.
Uruchom /context w świeżej sesji i sprawdź, gdzie idą tokeny.