Công cụ & tích hợpHướng dẫn
Kết nối Crush với CheapTokens: provider, model, key trong crushrc
Thêm CheapTokens vào Crush bằng hai lệnh crushrc: một provider completions và một model với giới hạn thực; key đến từ biến môi trường.

Trên trang này
Để kết nối Crush với CheapTokens, hãy đưa hai lệnh vào crushrc của bạn: provider add với base URL https:/ và -, cùng model add với id model đầy đủ. Sau đó mở Crush, nhấn Ctrl+l, chọn model và giao cho nó một tác vụ. Key nằm trong biến môi trường, không nằm trong file.
Nếu bạn làm theo hướng dẫn cũ, có lẽ nó chỉnh sửa crush.json. Crush vẫn đọc file đó, nhưng README của nó gọi đó là deprecated: cấu hình hiện tại là crushrc, và từ v0.99.0 (29 tháng 10 năm 2026) provider --type mô tả định dạng API, không phải nhà cung cấp. Nguồn là README của Crush và ghi chú phát hành, kiểm tra ngày 10 tháng 11 năm 2026; bản phát hành ổn định mới nhất tại thời điểm đó là v0.100.0.
Cài đặt Crush#
Chọn bất kỳ trình quản lý gói nào bạn đã có. Crush là một binary duy nhất, nên đi đường nào cũng không quan trọng.
Cài đặt Crush
Homebrew
brew install charmbracelet/tap/crushnpm
npm install -g @charmland/crushwinget
winget install charmbracelet.crushGo
go install github.com/charmbracelet/crush@latestREADME cũng liệt kê các kho apt và yum, Scoop, Nix, Arch và FreeBSD. Chạy crush một lần để kiểm tra rằng nó khởi động, rồi thoát.
Đưa CheapTokens vào crushrc#
README mô tả crushrc là "chỉ là Bash với một vài builtin riêng của Crush". Đó chính là toàn bộ mẹo: bạn viết shell, và provider add cùng model add là các lệnh mà Crush hiểu. Crush tìm file theo thứ tự này: ./.crushrc, ./crushrc, rồi ~/.
Vậy bạn chọn nơi nó nằm. Một .crushrc cục bộ trong dự án áp dụng cho một repository; file trong ~/.config/crush/ áp dụng ở mọi nơi. Lần thử đầu tiên, file toàn cục dễ hơn.
Đầu tiên đưa key vào shell của bạn. Tạo nó trong dashboard CheapTokens và export nó (giá trị bên dưới là placeholder):
export CHEAPTOKENS_API_KEY="your-key-here"Sau đó mở ~/ và viết:
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 32768Có vài chi tiết đáng xem lại:
-là tên Crush cho các provider tương thích OpenAI không phải chính OpenAI.- type completions responsesdành cho proxy OpenAI,messagescho các provider tương thích Anthropic.openai-compatcũ vẫn hoạt động và được migrate.- Base URL kết thúc bằng
/v1. Đó là địa chỉ CheapTokens cho Chat Completions kiểu OpenAI; danh sách đầy đủ các endpoint nằm trong tài liệu CheapTokens. $CHEAPTOKENS_được shell mở rộng, nên file không chứa bí mật và mộtAPI_ KEY .crushrccủa dự án có thể đưa vào git an toàn.- Id model là id đầy đủ,
deepseek-. Một id ngắn nhưai/ DeepSeek- V4- Flash- 0731 deepseek-bị API từ chối. Sau tên provider có thêm một dấu gạch chéo, vì bản thân id đã có một dấu.v4- flash -là 380K đã làm tròn của DeepSeek-V4-Flash, và- context- window 380000 -là giới hạn mỗi câu trả lời của nó. Đây là giới hạn thực của model trong CheapTokens: ngữ cảnh 380K và tối đa 32.768 token mỗi câu trả lời. Hãy đặt chúng vào- default- max- tokens 32768 model addthay vì để các giá trị mẫu từ README (64000 và 5000).

README chỉ hiển thị model add với một id đơn giản (deepseek/). Id của bạn có thêm một dấu gạch chéo, nên trình chọn model ở bước tiếp theo là phép kiểm tra thực sự: nếu model xuất hiện dưới cheaptokens, dòng đó đã được đọc đúng như mong muốn.
Muốn thêm model khác trên cùng số dư? Thêm một dòng model add nữa với id và giới hạn riêng. GLM-5.3-Flash là zai- (ngữ cảnh 390K, tối đa 8.192 token mỗi câu trả lời), và MiniMax-M2.7 là MiniMaxAI/ (ngữ cảnh 180K, tối đa 8.192 token mỗi câu trả lời). Giữ - bằng hoặc thấp hơn giới hạn câu trả lời của model bạn thêm.
Mở Crush và chạy tác vụ đầu tiên#
Khởi động crush trong một thư mục dự án. Nhấn Ctrl+l để mở trình chọn model và chọn DeepSeek-V4-Flash từ nhóm cheaptokens. README không mô tả lệnh crushrc nào cho model mặc định, nên trình chọn là cách làm.

Giờ giao cho nó một việc nhỏ và có thể kiểm tra, ví dụ: Read this repo and tell me which file starts the app, in two lines. Một câu trả lời nêu tên một file thực có nghĩa là toàn bộ chuỗi hoạt động: key, base URL, id model.
Tự mình thử xemThử xem: bạn nhấn Ctrl+l và model không có trong danh sách. Bạn kiểm tra gì trước tiên?Hiện đáp án
Vị trí file và biến. Crush tìm cấu hình theo thứ tự ưu tiên: ./.crushrc, ./crushrc, ~/. Kiểm tra rằng dự án không có .crushrc hay crushrc nào khác với nội dung khác, và provider đã được thêm vào file bạn đã sửa. Và echo $CHEAPTOKENS_ phải in ra key trong cùng shell nơi bạn khởi động crush.
Các lời nhắc cấp quyền có lý do của nó. permissions allow <tools> trong crushrc cho phép các tool được đặt tên chạy mà không hỏi; --yolo bỏ qua mọi lời nhắc, và chính README nói phải rất cẩn thận với nó.
Một phiên lập trình tốn bao nhiêu#
Một bước agent trong terminal nặng về input: Crush gửi lịch sử, nội dung file và output của tool mỗi lần, và nhận về một câu trả lời khiêm tốn. Giả sử một bước trung bình gửi 30.000 token và nhận 2.000. Trên DeepSeek-V4-Flash, bước đó tốn $0.00065, và giá như nhau ở mọi giờ, không có giờ cao điểm. Tính cả input và output cộng lại, như vậy rẻ hơn giá tham chiếu của OpenRouter.
Thay bằng số của bạn: một phiên 40 bước như vậy chỉ cách một thanh trượt.
Máy tính chi phí
Một ngày của coding agent trong Crush
Token đầu vào mỗi yêu cầu: 30.000 · Token đầu ra mỗi yêu cầu: 2.000 · Số yêu cầu mỗi ngày: 40
| Mô hình | Mỗi ngày | Mỗi tháng |
|---|---|---|
| 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 |
Input mỗi bước tăng dần khi phiên kéo dài, nên hãy kiểm tra một phiên dài so với cửa sổ 380K thay vì so với mức trung bình. Giá hiện tại theo token cho mọi model nằm trên trang giá.
Nếu không hoạt động#
Crush ghi log trong dự án của bạn, .. Đọc nó trước khi đoán:
crush logs --tail 500
crush logs --follow
crush --debugBạn cũng có thể đặt option debug true vào crushrc để giữ output debug. Sau đó đối chiếu những gì bạn thấy với mã trạng thái HTTP mà API trả về:
- 401: key đã được gửi nhưng không được nhận diện: gõ sai hoặc key đã bị thay. Tạo hoặc sao chép lại.
- 402: số dư hoặc giới hạn của key đã hết. Một request không có key cũng trông giống vậy, nên hãy chạy
echo $CHEAPTOKENS_trong shell nơi bạn khởi độngAPI_ KEY crush. Nếu key có ở đó, hãy nạp thêm số dư. - 429: quá nhiều request trong thời gian ngắn. Chờ theo giá trị
Retry-Afterrồi thử lại. - 400 hoặc "model not found": xem id model. Nó phải là id đầy đủ từ tài liệu, có tiền tố nhà cung cấp.
Nếu bạn chuyển từ crush.json, lưu ý rằng ~/ là trạng thái của Crush, không phải cấu hình; đừng chỉnh sửa nó bằng tay.
Để có cùng thiết lập trong các tool khác, xem Kết nối Aider với CheapTokens và Kết nối Kilo Code với CheapTokens. Trang model cho DeepSeek giá rẻ có các giới hạn của model được dùng ở đây.



