Narzędzia i integracjePrzewodnik
Połącz Crush z CheapTokens: dostawca, model i klucz w crushrc
Dodaj CheapTokens do Crush za pomocą dwóch komend crushrc: dostawcy completions i modelu z rzeczywistymi limitami; klucz pochodzi ze zmiennej środowiskowej.

Na tej stronie
Aby połączyć Crush z CheapTokens, umieść dwie komendy w swoim crushrc: provider add z bazowym URL https:/ oraz -, a także model add z pełnym identyfikatorem modelu. Następnie otwórz Crush, naciśnij Ctrl+l, wybierz model i zleć mu zadanie. Klucz pozostaje w zmiennej środowiskowej, a nie w pliku.
Jeśli korzystałeś ze starszego przewodnika, prawdopodobnie edytuje on crush.json. Crush nadal odczytuje ten plik, ale jego README nazywa go przestarzałym: obecna konfiguracja to crushrc, a od wersji v0.99.0 (29 października 2026) dostawca --type opisuje format API, a nie dostawcę. Źródłami są README Crush oraz informacje o wydaniach, sprawdzone 10 listopada 2026; najnowsze stabilne wydanie na ten dzień to v0.100.0.
Zainstaluj Crush#
Wybierz menedżer pakietów, który już masz. Crush to jeden plik binarny, więc nie ma znaczenia, którą drogę wybierzesz.
Zainstaluj Crush
Homebrew
brew install charmbracelet/tap/crushnpm
npm install -g @charmland/crushwinget
winget install charmbracelet.crushGo
go install github.com/charmbracelet/crush@latestREADME wymienia także repozytoria apt i yum, Scoop, Nix, Arch i FreeBSD. Uruchom raz crush, aby sprawdzić, czy się uruchamia, a następnie wyjdź.
Dodaj CheapTokens do crushrc#
README opisuje crushrc jako "po prostu Bash z kilkoma wbudowanymi funkcjami specyficznymi dla Crush". Na tym polega cały trik: piszesz shell, a provider add i model add to komendy, które Crush rozumie. Crush szuka pliku w tej kolejności: ./.crushrc, ./crushrc, a następnie ~/.
Więc sam wybierasz, gdzie będzie się znajdować. Lokalny dla projektu .crushrc dotyczy jednego repozytorium; ten w ~/.config/crush/ dotyczy wszędzie. Na pierwszy raz łatwiejszy jest globalny.
Najpierw umieść klucz w swoim shellu. Utwórz go w panelu CheapTokens i wyeksportuj (wartość poniżej to placeholder):
export CHEAPTOKENS_API_KEY="your-key-here"Następnie otwórz ~/ i wpisz:
provider add cheaptokens --type completions \
--base-url "https://api.cheaptokens.dev/v1" \
--api-key "$CHEAPTOKENS_API_KEY"
model add cheaptokens/deepseek-ai/DeepSeek-V4-Flash-0731 \
--name "DeepSeek-V4-Flash" \
--context-window 380000 \
--default-max-tokens 32768Kilka szczegółów wartych drugiego spojrzenia:
-to nazwa Crush dla dostawców zgodnych z OpenAI, którzy nie są samym OpenAI.- type completions responsessłuży do proxy OpenAI,messagesdo tych zgodnych z Anthropic. Staryopenai-compatnadal działa i jest migrowany.- Bazowy URL kończy się na
/v1. To adres CheapTokens dla Chat Completions w stylu OpenAI; pełna lista endpointów znajduje się w dokumentacji CheapTokens. $CHEAPTOKENS_jest rozwijany przez shell, więc plik nie zawiera sekretu, a projektowyAPI_ KEY .crushrcmożna bezpiecznie umieścić w gicie.- Identyfikator modelu jest pełny,
deepseek-. Krótki identyfikator, taki jakai/ DeepSeek- V4- Flash- 0731 deepseek-, jest odrzucany przez API. Po nazwie dostawcy następuje drugi ukośnik, ponieważ sam identyfikator go zawiera.v4- flash -to zaokrąglone 380K DeepSeek-V4-Flash, a- context- window 380000 -to jego limit na odpowiedź. To rzeczywiste limity modelu w CheapTokens: kontekst 380K i do 32 768 tokenów na odpowiedź. Umieść je w- default- max- tokens 32768 model addzamiast pozostawiać przykładowe wartości z README (64000 i 5000).

README pokazuje model add tylko z prostym identyfikatorem (deepseek/). Twój identyfikator ma dodatkowy ukośnik, więc wybór modelu w następnym kroku jest prawdziwym sprawdzianem: jeśli model pojawi się w grupie cheaptokens, linia została odczytana zgodnie z zamierzeniem.
Chcesz inny model na tym samym saldzie? Dodaj jeszcze jedną linię model add z własnym identyfikatorem i limitami. GLM-5.3-Flash to zai- (kontekst 390K, do 8 192 tokenów na odpowiedź), a MiniMax-M2.7 to MiniMaxAI/ (kontekst 180K, do 8 192 tokenów na odpowiedź). Utrzymuj - na poziomie równym lub niższym niż limit odpowiedzi dodawanego modelu.
Otwórz Crush i uruchom pierwsze zadanie#
Uruchom crush w folderze projektu. Naciśnij Ctrl+l, aby otworzyć wybór modelu, i wybierz DeepSeek-V4-Flash z grupy cheaptokens. README nie opisuje komendy crushrc dla domyślnego modelu, więc wybór modelu to jedyna droga.

Teraz zleć coś małego i sprawdzalnego, na przykład: Read this repo and tell me which file starts the app, in two lines. Odpowiedź, która wymienia istniejący plik, oznacza, że cały łańcuch działa: klucz, bazowy URL, identyfikator modelu.
Spróbuj samSpróbuj: naciskasz Ctrl+l, a modelu nie ma na liście. Co sprawdzasz najpierw?Pokaż odpowiedź
Lokalizację pliku i zmienną. Crush szuka konfiguracji według priorytetu: ./.crushrc, ./crushrc, ~/. Sprawdź, czy projekt nie ma innego .crushrc lub crushrc o innej zawartości oraz czy dostawca został dodany w pliku, który edytowałeś. A echo $CHEAPTOKENS_ musi wypisać klucz w tym samym shellu, w którym uruchamiasz crush.
Monity o uprawnienia są tam celowo. permissions allow <tools> w crushrc pozwala nazwanym narzędziom działać bez pytania; --yolo pomija każdy monit, a samo README mówi, by zachować przy nim dużą ostrożność.
Ile kosztuje sesja kodowania#
Krok agenta w terminalu jest obciążony wejściem: Crush za każdym razem wysyła historię, zawartość plików i wyjście narzędzi, a otrzymuje skromną odpowiedź. Załóżmy, że przeciętny krok wysyła 30 000 tokenów i otrzymuje 2 000. Na DeepSeek-V4-Flash ten krok kosztuje $0.00065, a cena jest taka sama o każdej porze, bez godzin szczytu. Licząc wejście i wyjście razem, jest to taniej niż cena referencyjna OpenRouter.
Podstaw własne liczby: sesja 40 takich kroków to jedno przesunięcie suwaka.
Kalkulator kosztów
Jeden dzień agenta kodującego w Crush
Tokeny wejściowe na żądanie: 30 000 · Tokeny wyjściowe na żądanie: 2000 · Żądania dziennie: 40
| Model | Dziennie | Miesięcznie |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.0272 | $0.816 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.026 | $0.78 |
| MiniMax-M2.7$0.05$0.15 | $0.072 | $2.16 |
Wejście na krok rośnie w miarę trwania sesji, więc długą sesję sprawdzaj względem okna 380K, a nie średniej. Aktualne ceny za token dla każdego modelu są na stronie cenowej.
Jeśli nie działa#
Crush zapisuje log w twoim projekcie, .. Przeczytaj go, zanim zaczniesz zgadywać:
crush logs --tail 500
crush logs --follow
crush --debugMożesz też umieścić option debug true w crushrc, aby utrzymać wyjście debugowania. Następnie dopasuj to, co widzisz, do statusu HTTP zwróconego przez API:
- 401: klucz został wysłany, ale nie został rozpoznany: literówka lub zastąpiony klucz. Utwórz go lub skopiuj ponownie.
- 402: saldo lub limit klucza został wyczerpany. Żądanie bez klucza wygląda tak samo, więc uruchom
echo $CHEAPTOKENS_w shellu, w którym uruchamiaszAPI_ KEY crush. Jeśli klucz tam jest, doładuj saldo. - 429: zbyt wiele żądań w krótkim czasie. Poczekaj na wartość
Retry-Afteri spróbuj ponownie. - 400 lub "model not found": sprawdź identyfikator modelu. Musi to być pełny identyfikator z dokumentacji, z prefiksem dostawcy.
Jeśli przeniosłeś się z crush.json, pamiętaj, że ~/ to stan Crush, a nie konfiguracja; nie edytuj go ręcznie.
Aby uzyskać tę samą konfigurację w innych narzędziach, zobacz Połącz Aider z CheapTokens i Połącz Kilo Code z CheapTokens. Strona modelu taniego DeepSeek zawiera limity użytego tutaj modelu.



