กลับไปที่บล็อก

เครื่องมือและการเชื่อมต่อคู่มือ

เชื่อมต่อ Crush กับ CheapTokens: provider, โมเดล, คีย์ใน crushrc

เพิ่ม CheapTokens ลงใน Crush ด้วยสองคำสั่ง crushrc: provider แบบ completions และโมเดลที่มีขีดจำกัดจริง; คีย์มาจาก environment variable

โดย CheapTokens Teamเผยแพร่เมื่อ ใช้เวลาอ่าน 6 นาที

ไฟล์ config ของ Crush พร้อมบรรทัด provider และโมเดล CheapTokens
ในหน้านี้
  1. ติดตั้ง Crush
  2. ใส่ CheapTokens ลงใน crushrc
  3. เปิด Crush และรันงานแรก
  4. เซสชันเขียนโค้ดมีค่าใช้จ่ายเท่าไร
  5. หากใช้งานไม่ได้

หากต้องการเชื่อมต่อ Crush กับ CheapTokens ให้ใส่สองคำสั่งลงใน crushrc ของคุณ: provider add พร้อม base URL https://api.cheaptokens.dev/v1 และ --type completions และ model add พร้อม model id แบบเต็ม จากนั้นเปิด Crush กด Ctrl+l เลือกโมเดลและมอบหมายงานให้มัน คีย์จะอยู่ใน environment variable ไม่ใช่ในไฟล์

หากคุณทำตามคู่มือเก่า คู่มือนั้นน่าจะแก้ไข crush.json Crush ยังอ่านไฟล์นั้นอยู่ แต่ README ของมันระบุว่าเลิกใช้แล้ว: config ปัจจุบันคือ crushrc และตั้งแต่ v0.99.0 (29 ตุลาคม 2026) provider --type อธิบายรูปแบบ API ไม่ใช่ผู้ให้บริการ แหล่งข้อมูลคือ Crush README และ release notes ตรวจสอบเมื่อ 10 พฤศจิกายน 2026; release เสถียรล่าสุด ณ วันนั้นคือ v0.100.0

ติดตั้ง Crush#

เลือก package manager ที่คุณมีอยู่แล้ว 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 ยังระบุ repository ของ apt และ yum, Scoop, Nix, Arch และ FreeBSD รัน crush หนึ่งครั้งเพื่อตรวจสอบว่ามันเริ่มทำงานได้ จากนั้นออก

ใส่ CheapTokens ลงใน crushrc#

README อธิบาย crushrc ว่าเป็น "แค่ Bash ที่มี builtin เฉพาะของ Crush" นั่นคือเคล็ดลับทั้งหมด: คุณเขียน shell และ provider add กับ model add คือคำสั่งที่ Crush เข้าใจ Crush ค้นหาไฟล์ตามลำดับนี้: ./.crushrc, ./crushrc แล้วจึง ~/.config/crush/crushrc

ดังนั้นคุณเลือกได้ว่าจะให้มันอยู่ที่ไหน .crushrc ระดับโปรเจกต์ใช้กับ repository เดียว; ไฟล์ใน ~/.config/crush/ ใช้ได้ทุกที่ สำหรับการลองครั้งแรก แบบ global ง่ายกว่า

ก่อนอื่นใส่คีย์ลงใน shell ของคุณ สร้างมันในแดชบอร์ด 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 คือชื่อของ Crush สำหรับ provider ที่เข้ากันได้กับ OpenAI ซึ่งไม่ใช่ OpenAI เอง responses สำหรับการ proxy OpenAI, messages สำหรับตัวที่เข้ากันได้กับ Anthropic openai-compat แบบเก่ายังใช้ได้และจะถูก migrate
  • base URL ลงท้ายด้วย /v1 นั่นคือที่อยู่ CheapTokens สำหรับ Chat Completions แบบ OpenAI; รายการ endpoint ทั้งหมดอยู่ใน เอกสาร CheapTokens
  • $CHEAPTOKENS_API_KEY ถูกขยายโดย shell ดังนั้นไฟล์จึงไม่มีข้อมูลลับ และ .crushrc ระดับโปรเจกต์สามารถ commit ลง git ได้อย่างปลอดภัย
  • model id คือแบบเต็ม deepseek-ai/DeepSeek-V4-Flash-0731 id แบบสั้นเช่น deepseek-v4-flash จะถูก API ปฏิเสธ หลังชื่อ provider มี slash ที่สอง เพราะ id เองก็มีหนึ่งตัว
  • --context-window 380000 คือ 380K แบบปัดเศษของ DeepSeek-V4-Flash และ --default-max-tokens 32768 คือขีดจำกัดต่อคำตอบของมัน นี่คือขีดจำกัดจริงของโมเดลใน CheapTokens: context 380K และสูงสุด 32,768 tokens ต่อคำตอบ ใส่ค่าเหล่านี้ลงใน model add แทนที่จะปล่อยค่าตัวอย่างจาก README (64000 และ 5000)
ไฟล์ crushrc ที่มี provider และโมเดล CheapTokens
crushrc: หนึ่งบรรทัด provider และหนึ่งบรรทัดโมเดล; คีย์มาจาก environment

README แสดง model add พร้อม id แบบง่ายเท่านั้น (deepseek/deepseek-chat) id ของคุณมี slash เพิ่ม ดังนั้นตัวเลือกโมเดลในขั้นตอนถัดไปคือการตรวจสอบจริง: หากโมเดลปรากฏภายใต้ cheaptokens แสดงว่าบรรทัดนั้นถูกอ่านตามที่ต้องการ

ต้องการโมเดลอื่นบนยอดคงเหลือเดียวกันหรือไม่? เพิ่มบรรทัด model add อีกหนึ่งบรรทัดพร้อม id และขีดจำกัดของมันเอง GLM-5.3-Flash คือ zai-org/GLM-5.3-Flash (context 390K สูงสุด 8,192 tokens ต่อคำตอบ) และ MiniMax-M2.7 คือ MiniMaxAI/MiniMax-M2.7 (context 180K สูงสุด 8,192 tokens ต่อคำตอบ) ให้ --default-max-tokens อยู่ที่หรือต่ำกว่าขีดจำกัดคำตอบของโมเดลที่คุณเพิ่ม

เปิด Crush และรันงานแรก#

เริ่ม crush ในโฟลเดอร์โปรเจกต์ กด Ctrl+l เพื่อเปิดตัวเลือกโมเดลและเลือก DeepSeek-V4-Flash จากกลุ่ม cheaptokens README ไม่ได้อธิบายคำสั่ง crushrc สำหรับโมเดลเริ่มต้น ดังนั้นตัวเลือกโมเดลคือวิธีที่ใช้

จาก crushrc สู่คำตอบแรก: provider, โมเดล, ตัวเลือก, งาน
เส้นทางจาก config สู่คำตอบแรก

ตอนนี้ให้งานเล็ก ๆ ที่ตรวจสอบได้ เช่น: Read this repo and tell me which file starts the app, in two lines. คำตอบที่ระบุชื่อไฟล์จริงหมายความว่าทั้งห่วงโซ่ทำงาน: คีย์, base URL, model id

ลองด้วยตัวเองลองดู: คุณกด Ctrl+l แล้วโมเดลไม่อยู่ในรายการ คุณจะตรวจสอบอะไรก่อน?แสดงคำตอบ

ตำแหน่งไฟล์และตัวแปร Crush ค้นหา config ตามลำดับความสำคัญ: ./.crushrc, ./crushrc, ~/.config/crush/crushrc ตรวจสอบว่าโปรเจกต์ไม่มี .crushrc หรือ crushrc อื่นที่มีเนื้อหาต่างกัน และ provider ถูกเพิ่มในไฟล์ที่คุณแก้ไข และ echo $CHEAPTOKENS_API_KEY ต้องพิมพ์คีย์ใน shell เดียวกับที่คุณเริ่ม crush

พรอมต์ขออนุญาตมีไว้โดยเจตนา permissions allow <tools> ใน crushrc อนุญาตให้เครื่องมือที่ระบุชื่อรันได้โดยไม่ถาม; --yolo ข้ามทุกพรอมต์ และ README เองก็บอกให้ระวังมากกับมัน

เซสชันเขียนโค้ดมีค่าใช้จ่ายเท่าไร#

ขั้นตอนของ agent ใน terminal เน้น input หนัก: Crush ส่งประวัติ เนื้อหาไฟล์ และ output ของเครื่องมือทุกครั้ง และได้คำตอบกลับมาไม่มาก สมมติว่าแต่ละขั้นตอนส่งเฉลี่ย 30,000 tokens และรับ 2,000 บน DeepSeek-V4-Flash ขั้นตอนนั้นมีค่าใช้จ่าย $0.00065 และราคาเท่ากันทุกชั่วโมง ไม่มีช่วง peak นับรวม input และ output แล้ว ถูกกว่าราคาอ้างอิงของ OpenRouter

ใส่ตัวเลขของคุณเอง: เซสชัน 40 ขั้นตอนแบบนี้ห่างเพียงสไลเดอร์เดียว

เครื่องคำนวณค่าใช้จ่าย

หนึ่งวันของ coding agent ใน 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

input ต่อขั้นตอนเพิ่มขึ้นเมื่อเซสชันดำเนินไป ดังนั้นตรวจสอบเซสชันยาวเทียบกับหน้าต่าง 380K ไม่ใช่ค่าเฉลี่ย ราคาต่อ token ปัจจุบันของทุกโมเดลอยู่ในหน้าราคา

หากใช้งานไม่ได้#

Crush เขียน log ในโปรเจกต์ของคุณ ./.crush/logs/crush.log อ่านมันก่อนเดา:

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

คุณยังสามารถใส่ option debug true ลงใน crushrc เพื่อเปิด debug output ไว้ได้ จากนั้นเทียบสิ่งที่เห็นกับ HTTP status ที่ API ส่งกลับ:

  • 401: ส่งคีย์ไปแล้วแต่ไม่รู้จัก: พิมพ์ผิดหรือคีย์ถูกเปลี่ยน สร้างหรือคัดลอกใหม่
  • 402: ยอดคงเหลือหรือขีดจำกัดของคีย์หมด คำขอที่ไม่มีคีย์เลยก็ดูเหมือนกัน ดังนั้นรัน echo $CHEAPTOKENS_API_KEY ใน shell ที่คุณเริ่ม crush หากคีย์อยู่ที่นั่น ให้เติมยอดคงเหลือ
  • 429: คำขอมากเกินไปในช่วงเวลาสั้น รอตามค่า Retry-After แล้วลองอีกครั้ง
  • 400 หรือ "model not found": ดู model id ต้องเป็นแบบเต็มจากเอกสาร พร้อม vendor prefix

หากคุณย้ายมาจาก crush.json โปรดทราบว่า ~/.local/share/crush/crush.json คือ state ของ Crush ไม่ใช่ config; อย่าแก้ไขด้วยมือ

สำหรับการตั้งค่าเดียวกันในเครื่องมืออื่น ดู เชื่อมต่อ Aider กับ CheapTokens และ เชื่อมต่อ Kilo Code กับ CheapTokens หน้าโมเดลสำหรับ DeepSeek ราคาถูก มีขีดจำกัดของโมเดลที่ใช้ที่นี่