블로그로 돌아가기

도구 및 통합가이드

Crush를 CheapTokens에 연결: crushrc provider, 모델, 키

두 개의 crushrc 명령으로 CheapTokens를 Crush에 추가하세요: completions provider와 실제 한도가 있는 모델; 키는 환경 변수에서 가져옵니다.

작성자: CheapTokens Team 게시됨읽는 시간 6분

CheapTokens provider와 모델 줄이 있는 Crush 설정 파일
이 페이지의 내용
  1. Crush 설치
  2. crushrc에 CheapTokens 넣기
  3. Crush를 열고 첫 작업 실행
  4. 코딩 세션 비용
  5. 작동하지 않을 때

Crush를 CheapTokens에 연결하려면 crushrc에 두 개의 명령을 넣으세요: 기본 URL https://api.cheaptokens.dev/v1와 함께 provider add, 그리고 --type completions, 그리고 전체 모델 id와 함께 model add. 그런 다음 Crush를 열고 Ctrl+l를 누르고, 모델을 선택한 뒤 작업을 주세요. 키는 파일이 아니라 환경 변수에 남습니다.

이전 가이드를 따랐다면 아마 crush.json를 편집했을 것입니다. Crush는 여전히 그 파일을 읽지만, README에서는 이를 deprecated라고 부릅니다: 현재 설정은 crushrc이고, v0.99.0(2026년 10월 29일)부터 provider --type은 벤더가 아니라 API 형식을 설명합니다. 출처는 Crush README와 릴리스 노트이며, 2026년 11월 10일에 확인했습니다. 그 날짜 기준 최신 안정 릴리스는 v0.100.0입니다.

Crush 설치#

이미 가지고 있는 패키지 관리자를 아무거나 고르세요. Crush는 단일 바이너리라서 어떤 경로를 택해도 상관없습니다.

Crush 설치

Homebrew

bash
brew install charmbracelet/tap/crush

npm

bash
npm install -g @charmland/crush

winget

bash
winget install charmbracelet.crush

Go

bash
go install github.com/charmbracelet/crush@latest

README에는 apt와 yum 저장소, Scoop, Nix, Arch, FreeBSD도 나열되어 있습니다. 시작되는지 확인하려면 crush을 한 번 실행한 뒤 종료하세요.

crushrc에 CheapTokens 넣기#

README는 crushrc를 "Crush 전용 빌트인이 몇 개 있는 그냥 Bash"라고 설명합니다. 그게 전부입니다: 셸을 작성하고, provider add과 model add은 Crush가 이해하는 명령입니다. Crush는 이 순서로 파일을 찾습니다: ./.crushrc, ./crushrc, 그다음 ~/.config/crush/crushrc.

그래서 위치는 직접 고릅니다. 프로젝트 로컬 .crushrc는 한 저장소에만 적용되고, ~/.config/crush/에 있는 것은 어디서나 적용됩니다. 처음 시도할 때는 전역 파일이 더 쉽습니다.

먼저 키를 셸에 넣으세요. CheapTokens 대시보드에서 생성하고 export하세요(아래 값은 자리 표시자입니다):

bash
export CHEAPTOKENS_API_KEY="your-key-here"

그런 다음 ~/.config/crush/crushrc를 열고 작성하세요:

bash
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 32768

몇 가지 세부 사항은 다시 볼 가치가 있습니다:

  • --type completions은 OpenAI 자체가 아닌 OpenAI 호환 provider에 대한 Crush 이름입니다. responses은 OpenAI 프록시용, messages는 Anthropic 호환 provider용입니다. 예전 openai-compat도 여전히 작동하며 마이그레이션됩니다.
  • 기본 URL은 /v1로 끝납니다. 이것은 OpenAI 스타일 Chat Completions에 대한 CheapTokens 주소입니다. 전체 엔드포인트 목록은 CheapTokens 문서에 있습니다.
  • $CHEAPTOKENS_API_KEY은 셸에서 확장되므로 파일에는 비밀이 없고, 프로젝트 .crushrc는 안전하게 git에 넣을 수 있습니다.
  • 모델 id는 전체 id인 deepseek-ai/DeepSeek-V4-Flash-0731입니다. deepseek-v4-flash 같은 짧은 id는 API에서 거부됩니다. provider 이름 뒤에 슬래시가 하나 더 오는데, id 자체에 슬래시가 있기 때문입니다.
  • --context-window 380000은 DeepSeek-V4-Flash의 반올림된 380K이고, --default-max-tokens 32768은 답변당 한도입니다. 이것이 CheapTokens에서 해당 모델의 실제 한도입니다: 380K 컨텍스트와 답변당 최대 32,768 토큰. README의 샘플 값(64000과 5000)을 그대로 두지 말고 model add에 넣으세요.
CheapTokens provider와 모델이 있는 crushrc 파일
crushrc: provider 한 줄과 model 한 줄; 키는 환경에서 가져옴

README는 model add를 간단한 id(deepseek/deepseek-chat)로만 보여줍니다. 여러분의 id에는 슬래시가 하나 더 있으므로, 다음 단계의 모델 선택기가 실제 확인입니다: 모델이 cheaptokens 아래에 나타나면 해당 줄이 의도대로 읽힌 것입니다.

같은 잔액으로 다른 모델을 쓰고 싶으신가요? 자체 id와 한도를 가진 model add 줄을 하나 더 추가하세요. GLM-5.3-Flash는 zai-org/GLM-5.3-Flash(390K 컨텍스트, 답변당 최대 8,192 토큰)이고, MiniMax-M2.7은 MiniMaxAI/MiniMax-M2.7(180K 컨텍스트, 답변당 최대 8,192 토큰)입니다. --default-max-tokens은 추가하는 모델의 답변 한도 이하로 유지하세요.

Crush를 열고 첫 작업 실행#

프로젝트 폴더에서 crush를 시작하세요. Ctrl+l을 눌러 모델 선택기를 열고 cheaptokens 그룹에서 DeepSeek-V4-Flash를 선택하세요. README에는 기본 모델에 대한 crushrc 명령이 설명되어 있지 않으므로 선택기가 방법입니다.

crushrc에서 첫 답변까지: provider, model, 선택기, 작업
설정에서 첫 답변까지의 경로

이제 작고 확인 가능한 것을 주세요. 예를 들어: Read this repo and tell me which file starts the app, in two lines. 실제 파일을 언급하는 답변이 나오면 전체 체인이 작동한다는 뜻입니다: 키, 기본 URL, 모델 id.

직접 해보기시도해 보세요: Ctrl+l을 눌렀는데 모델이 목록에 없습니다. 무엇을 먼저 확인하시겠습니까?정답 보기

파일 위치와 변수입니다. Crush는 우선순위에 따라 설정을 찾습니다: ./.crushrc, ./crushrc, ~/.config/crush/crushrc. 프로젝트에 내용이 다른 .crushrc나 crushrc가 없는지, 그리고 편집한 파일에 provider가 추가되었는지 확인하세요. 그리고 echo $CHEAPTOKENS_API_KEY은 crush을 시작하는 같은 셸에서 키를 출력해야 합니다.

권한 프롬프트는 의도적으로 있습니다. crushrc의 permissions allow <tools>은 지정된 도구를 묻지 않고 실행하게 하고, --yolo는 모든 프롬프트를 건너뛰며, README 자체도 이것에 매우 주의하라고 말합니다.

코딩 세션 비용#

터미널의 에이전트 단계는 입력이 많습니다: Crush는 매번 히스토리, 파일 내용, 도구 출력을 보내고 적당한 답변을 받습니다. 평균 단계가 30,000 토큰을 보내고 2,000을 받는다고 가정해 봅시다. DeepSeek-V4-Flash에서 그 단계의 비용은 $0.00065이며, 가격은 시간대와 관계없이 동일하고 피크 시간이 없습니다. 입력과 출력을 합쳐 계산하면 OpenRouter의 참조 가격보다 저렴합니다.

자신의 숫자로 바꿔 보세요: 그런 단계 40개로 이루어진 세션은 슬라이더 하나 차이입니다.

비용 계산기

Crush에서 코딩 에이전트의 하루

요청당 입력 토큰: 30,000 · 요청당 출력 토큰: 2,000 · 일일 요청 수: 40

모델일일월간
GLM-5.3-Flash$0.0272$0.816
DeepSeek-V4-Flash$0.026$0.78
MiniMax-M2.7$0.072$2.16

단계당 입력은 세션이 진행될수록 늘어나므로, 긴 세션은 평균이 아니라 380K 윈도우와 비교해 확인하세요. 모든 모델의 현재 토큰당 가격은 가격 페이지에 있습니다.

작동하지 않을 때#

Crush는 프로젝트에 로그를 씁니다: ./.crush/logs/crush.log. 추측하기 전에 읽어 보세요:

bash
crush logs --tail 500
crush logs --follow
crush --debug

crushrc에 option debug true을 넣어 디버그 출력을 켜 둘 수도 있습니다. 그런 다음 보이는 것을 API가 반환한 HTTP 상태와 대조하세요:

  • 401: 키가 전송되었지만 인식되지 않았습니다: 오타 또는 교체된 키입니다. 다시 생성하거나 복사하세요.
  • 402: 잔액 또는 키의 한도가 소진되었습니다. 키 없이 보낸 요청도 똑같이 보이므로, crush을 시작하는 셸에서 echo $CHEAPTOKENS_API_KEY를 실행하세요. 키가 있으면 잔액을 충전하세요.
  • 429: 짧은 시간에 너무 많은 요청입니다. Retry-After 값을 기다린 뒤 다시 시도하세요.
  • 400 또는 "model not found": 모델 id를 보세요. 문서에 있는 전체 id여야 하며, 벤더 접두사가 포함되어야 합니다.

crush.json에서 옮겨 왔다면, ~/.local/share/crush/crush.json은 설정이 아니라 Crush의 상태이므로 손으로 편집하지 마세요.

다른 도구에서 같은 설정을 하려면 Aider를 CheapTokens에 연결과 Kilo Code를 CheapTokens에 연결을 참고하세요. 저렴한 DeepSeek 모델 페이지에는 여기서 사용한 모델의 한도가 있습니다.