Wtyczka do Claude Code, która pokazuje, ile limitu zostało Ci do końca tygodnia, ile kosztuje bieżąca rozmowa i sama skraca odpowiedzi, zanim limit się skończy.
Claude Code ma tygodniowe limity. Im dłużej rozmawiasz z agentem, tym szybciej limit topnieje. Z limitami trzeba więc obchodzić się jak z pieniędzmi w portfelu: ustalać budżet i mądrze nim zarządzać.
Oto jak to działa:
-
Mówi, ile Ci zostało. Wpisujesz „ile mi zostało limitu" i wiesz, z czym pracujesz do końca tygodnia. Ta liczba to odczyt, nie zgadywanka.
-
Pokazuje, ile kosztuje ta rozmowa. Widzisz koszt bieżącej sesji i to, czy jest droga na tle Twoich innych. Wtedy wiesz, kiedy rozmowa zaczyna się przejadać i lepiej ją wyczyścić.
-
Trzyma budżet, który jej wyznaczysz. Wpisujesz
/budzet 1i od tej chwili Claude sam się dostraja: pisze zwięźle, przy 70% skraca odpowiedzi, przy 90% odpuszcza kosztowne narzędzia, a po przekroczeniu proponuje wyczyszczenie rozmowy. To hamulec, nie licznik do oglądania.
Zmierzone na 78 913 turach moich własnych sesji: tydzień przed wtyczką, dwanaście dni po.
| bez wtyczki | z wtyczką | ||
|---|---|---|---|
| limit zjadany przez jedną turę | 42 521 | 30 846 | −27,5% |
| to samo w typowej turze (mediana) | 32 710 | 25 791 | −21,2% |
| tur pracy przy tym samym limicie | 33 300 | 45 613 | +37,9% |
W obu okresach zużyłem prawie tyle samo limitu — 1 416 mln jednostek przed, 1 407 mln po. Za to samo wyszło o 37,9% więcej pracy. W tygodniu to +2,65 dnia (21,2 godziny przy ośmiogodzinnym dniu).
Skąd to się bierze — nie stąd, że model pisze krócej. To najmniejsza część zysku. Główna oszczędność to mniejsze porcje treści wciągane do rozmowy: model czyta węższe fragmenty plików zamiast całych. Każda taka porcja zostaje w rozmowie do końca i jest doliczana przy każdej kolejnej turze.
To jak oszczędzanie prądu w domu: nie bierze się z gaszenia żarówek, tylko z rzadszego włączania piekarnika.
Jak to policzone i czego ten pomiar nie dowodzi
Jednostka to token ważony — tokeny przeliczone proporcjami z cennika API, gdzie generowanie odpowiedzi jest wielokrotnie droższe niż odczytanie tego, co model już widział. Porównuję średni koszt jednej tury w dwóch okresach: 24–30.07 (bez wtyczki, 33 300 tur) i 1–12.08 (z wtyczką, 45 613 tur). Dzielę przez tury, nie przez dni — dzienne sumy mierzyłyby pracowitość, nie skuteczność narzędzia.
To porównanie dwóch okresów jednej osoby, nie badanie z grupą kontrolną. Proporcje przeliczające tokeny na limit są przepisane z cennika API — nie wiem na pewno, czy limit subskrypcji nalicza tak samo. Część efektu to zmiana nawyku, a nie sama wtyczka. Choć to ta sama rzecz: narzędzie działa właśnie przez to, że zmienia sposób pracy.
Sprawdziłem, czy spadku nie tłumaczy coś innego niż wtyczka. Porównanie ograniczone do jednej wersji Claude Code (2.1.220 występuje w obu okresach, 29 839 i 7 470 tur) daje ten sam wynik: −27,2%. Ograniczenie do jednego modelu — −26,5%. Po doliczeniu pracy agentów w tle — −25,5%. Po odrzuceniu 1% najdroższych tur — −25,4%. Przy równych wagach tokenów zamiast proporcji z cennika — −21,9%. Spadek jest w całym rozkładzie, nie w pojedynczych kosztownych sesjach: percentyl 75 spada z 46 175 na 36 097, percentyl 90 z 63 367 na 45 980.
Rozmawiasz z nią zwykłym językiem — nic nie konfigurujesz.
| wpisujesz | dostajesz |
|---|---|
/budzet 1 |
ustawia budżet tej rozmowy na 1% limitu tygodniowego |
/budzet 0.5 |
to samo, dowolna liczba (także ułamkowa) |
/budzet |
pokazuje stan limitu i pyta, jaki budżet ustawić |
| „ile mi zostało limitu" | ile procent limitu do końca tygodnia |
| „ile kosztowała ta rozmowa" | koszt bieżącej sesji |
| „zdejmij budżet" | koniec pilnowania |
Po ustawieniu budżetu Claude widzi go przed każdą odpowiedzią i sam się dostraja: najpierw pisze zwięźle, przy 70% skraca odpowiedzi, przy 90% odpuszcza kosztowne narzędzia, a po przekroczeniu proponuje wyczyszczenie rozmowy.
Na początku zobaczysz tokeny zamiast procentów. Wtyczka musi się najpierw nauczyć, ile tokenów zjada 1% limitu na Twoim koncie — a to zależy od konta. Uczy się sama, przy zwykłej pracy. Nic nie musisz robić ani wpisywać. Procenty pojawią się po dniu albo dwóch.
Działa na macOS, Linuksie i Windows. Wymaga Pythona 3.8 lub nowszego — wtyczka sama sprawdzi, czy go masz, i przeprowadzi Cię przez instalację, jeśli nie.
Trzy źródła, w kolejności ważności:
- Odczyt limitu z API Anthropica (
GET /api/oauth/usage) — prawdziwy procent, nie szacunek. Wtyczka pyta tym samym adresem co Claude Code, tokenem z pęku kluczy systemu — a na Linuksie i Windows z pliku~/.claude/.credentials.json— w tle, najwyżej raz na 15 minut. Jako zapas czyta~/.claude.json→cachedUsageUtilizationi bierze świeższe z dwóch. - Transkrypty sesji (
~/.claude/projects/**/*.jsonl) — tokeny ważone, dodawane dokładnie. - Kurs tokeny → procent — jedyne przybliżenie w całym narzędziu, liczone z Twoich danych.
Żadna stała nie jest zaszyta w kodzie. Kurs zależy od planu i aktywnych promocji, więc wtyczka liczy go od zera na Twoim koncie. Do pierwszego pomiaru pokazuje wyłącznie liczby względne — żadnych zmyślonych procentów.
Dwa polecenia w Claude Code — najpierw dodajesz katalog, potem instalujesz z niego wtyczkę:
/plugin marketplace add studiogo/budzet
/plugin install budzet@budzet
Hook wpina się sam — nic nie musisz dopisywać do settings.json.
- Skopiuj katalog
skills/budzetdo~/.claude/skills/budzet. - Dopisz hook do
~/.claude/settings.json, w sekcjihooks.UserPromptSubmit:
macOS i Linux
{
"hooks": [
{ "type": "command", "command": "python3 ~/.claude/skills/budzet/bin/budzet.py hook-stdin", "timeout": 10 }
]
}Windows
{
"hooks": [
{ "type": "command", "command": "py -3 \"C:/Users/TWOJA-NAZWA/.claude/skills/budzet/bin/budzet.py\" hook-stdin", "timeout": 10 }
]
}Trzy pułapki na Windows:
- Wpisz pełną ścieżkę. Claude Code nie przepuszcza polecenia hooka przez wiersz poleceń, więc
%USERPROFILE%i~nie są rozwijane — trafiają do polecenia dosłownie i plik się nie znajduje. - Polecenie
python3istnieje, ale nie uruchamia Pythona — prowadzi do sklepu Microsoftu. Używajpy -3albopython. - Zły wpis blokuje pisanie. Gdy hook zwróci kod 2 (a tyle zwraca Python, gdy nie znajdzie pliku), Claude Code odrzuca cały prompt z komunikatem „operation blocked by hook". Dlatego najpierw uruchom
sprawdz, a wpis dodaj dopiero, gdy ścieżka na pewno się zgadza.
Jeśli wolisz mieć te same ustawienia na Macu i na Windows, dodaj oba polecenia obok siebie — to, które nie pasuje do systemu, odpadnie bez blokowania rozmowy:
{
"hooks": [
{ "type": "command", "command": "python3 \"<pełna ścieżka>/budzet.py\" hook-stdin", "timeout": 10 },
{ "type": "command", "command": "py -3 \"<pełna ścieżka>/budzet.py\" hook-stdin", "timeout": 10 }
]
}Linia licznika wstrzykuje się raz, nie dwa razy. Na macOS wariant py -3 odpada, bo takiego polecenia tam nie ma.
- Sprawdź, czy wszystko gra:
python3 ~/.claude/skills/budzet/bin/budzet.py sprawdzPodkomenda sprawdz wypisze, co działa, czego brakuje i co z tym zrobić. Hook z założenia milczy przy każdym błędzie — nigdy nie może zablokować pracy — więc gdy licznik nie pokazuje się w rozmowie, to jest jedyne miejsce, które powie dlaczego.
Zaraz po instalacji zobaczysz liczby względne zamiast procentów. To zamierzone: wtyczka nie zna jeszcze Twojego kursu tokeny → procent. Policzy go sama, gdy zużycie tygodniowe przekroczy 3 punkty procentowe. Nic nie musisz robić — odczyty limitu wtyczka pobiera w tle.
Na kontach Claude Code bywają promocje powiększające tygodniowy limit (w sierpniu 2026 to „+50% weekly limits"). Gdy promocja się skończy, pula naprawdę się zmieni, więc kurs policzony na starej puli przestanie obowiązywać. Wtyczka wykryje to sama i zacznie liczyć od zera — zobaczysz znowu liczby względne zamiast procentów, przez dzień albo dwa.
To nie jest awaria. Tak samo zachowa się przy zmianie planu. Wtyczka woli przyznać się, że nie zna kursu, niż pokazywać procenty policzone na nieaktualnej puli.
Plan konta wtyczka sprawdza u Anthropica, nie w pliku Claude Code. Ten plik potrafi po zmianie planu trzymać starą nazwę jeszcze długo — zmierzone 29.08.2026, gdy mówił „max 20x", a serwer „max 5x". Gdyby wtyczka wierzyła plikowi, po przejściu na mniejszy plan pokazywałaby zaniżone procenty i nie zająknęła się o tym ani słowem.
W rozmowie: „ile mi zostało limitu", „ustaw budżet sesji", „ile zjadła ta sesja".
Z terminala:
BIN=~/.claude/skills/budzet/bin/budzet.py
python3 $BIN status # pełny obraz
python3 $BIN ustaw 2.5 # budżet 2,5% limitu tygodniowego na tę sesję
python3 $BIN ustaw # budżet = koszt Twojej typowej sesji
python3 $BIN skasuj # zdejmij budżet
python3 $BIN odswiez # pobierz świeży odczyt limitu (w tle dzieje się samo)
python3 $BIN dokladnosc # zmierz błąd własnych przewidywańPowiedziane wprost, żeby nikt nie oparł na tych liczbach decyzji, której nie udźwigną:
- Widzi tylko pracę w konsoli, na tym komputerze. Rozmowy przez przeglądarkę, aplikację albo drugi komputer liczą się do limitu, ale nie do transkryptów. Koszt sesji będzie zaniżony. Paski limitu pozostają wiarygodne, bo pochodzą z odczytu.
- Wagi tokenów są przepisane z cennika interfejsu programistycznego, nie zmierzone na limicie subskrypcji.
- Źródło prawdy ma rozdzielczość 1 punktu procentowego — czyli ok. 12,5 mln tokenów ważonych, więcej niż jedna typowa sesja. Dlatego pojedynczej sesji nie da się zmierzyć bezpośrednio, tylko przeliczyć kursem.
W praktyce: rzetelnie odpowiada na „ile zostało limitu" i „czy ta sesja jest droga na tle moich innych sesji". Nie odpowiada precyzyjnie na „dokładnie ile zjadłem". Budżet działa jak hamulec, nie jak miarka.
Wszystko w ~/.claude/state/budzet/:
kalibracja.json— kurs, pary pomiarowe, dziennik odczytów limituodczyt-limitu.json— ostatni odczyt limitu pobrany z APIbudzet-<id sesji>.json— budżet pojedynczej sesjicache/— wyniki skanowania transkryptów
Jedyne połączenie sieciowe to pytanie o Twój limit, wysyłane do Anthropica — tego samego adresu używa Claude Code. Nic innego nie wychodzi poza Twój komputer: transkrypty, koszty i budżety są liczone wyłącznie lokalnie.
Wtyczka jest sprawdzona na jednym koncie (Max 20x) i dwóch systemach (macOS, Windows 11). Nie była jeszcze uruchamiana na Pro ani na Max 5x — kurs liczy się z Twoich danych, więc powinna działać wszędzie, ale nikt tego poza autorem nie potwierdził.
Jeśli ją odpalisz, najbardziej przyda się jedno: wynik python3 ~/.claude/skills/budzet/bin/budzet.py sprawdz plus nazwa Twojego planu. Zgłoszenia przez Issues.
Zgłoszenia i propozycje zmian → CONTRIBUTING.md. Najbardziej przydają się zgłoszenia z kont innych niż Max 20x — na takim była sprawdzana.
MIT — LICENSE.

