- เป็น AI coding agent ที่ทำงานในเทอร์มินัล เชื่อมต่อกับ LLM (Large Language Model) หลากหลายเพื่อสนับสนุนการเขียนโค้ด การอัตโนมัติของเวิร์กโฟลว์ และการคงรักษาบริบทของโค้ด เพื่อช่วยเพิ่ม ประสิทธิภาพการผลิตโค้ด
- รองรับการเลือก หลายโมเดล ได้อย่างอิสระหรือสลับ โมเดล ได้ระหว่างการทำงานในเซสชัน และรองรับการคงสถานะ เซสชัน/บริบทตามโครงการ
- รองรับฟังก์ชันที่เป็นมิตรกับนักพัฒนา เช่น การผสาน LSP (Language Server Protocol) การรองรับ MCP (Model Context Protocol) ที่ขยายได้ และการยกเว้นไฟล์ด้วย .gitignore และไฟล์อื่น ๆ
- ทำงานได้ในสภาพแวดล้อมเทอร์มินัลหลักทั้งหมด เช่น macOS, Linux, Windows, FreeBSD และสามารถติดตั้งได้หลายวิธีทั้งผ่านตัวจัดการแพ็กเกจ, Go และไฟล์ไบนารี
- รองรับการตั้งค่าอันเป็นธรรมชาติและการปรับแต่งระดับสูงได้พร้อมกัน โดยมีตัวแปรสภาพแวดล้อม การตั้งค่า JSON และรายชื่อเครื่องมือที่อนุญาต ซึ่งออกแบบให้รองรับผู้ใช้ขั้นสูง
Crush
- AI coding agent ที่รันในเทอร์มินัล ซึ่งสามารถผสานกับ LLM ที่นักพัฒนาชอบได้อย่างอิสระเพื่อรองรับ การเขียน การแก้ไข และการอัตโนมัติ ของโค้ด
- รองรับการเลือกและสลับ หลายโมเดล (Anthropic, OpenAI, Groq, OpenRouter ฯลฯ) ได้อิสระ และจัดการบริบทแยกตามแต่ละเซสชันได้
- ใช้ LSP (Language Server Protocol) เพื่อรับบริบทเพิ่มเติมที่เหมาะสมกับแต่ละภาษา ทำให้ช่วยเหลือการเขียนโค้ดได้ฉลาดขึ้น
- ด้วย MCP (Model Context Protocol) สามารถเก็บและใช้ข้อมูลเพิ่มเติมจากระบบภายนอก HTTP, command line และ SSE ได้หลากหลายแหล่ง
คุณสมบัติหลัก
- รองรับมัลติโมเดล: เชื่อมต่อกับ LLM หลากหลายเช่น OpenAI, Anthropic, Groq, OpenRouter และสามารถเพิ่มเองได้
- การทำงานตามเซสชัน: รองรับหลายเซสชันและบริบทแยกตามโครงการสำหรับแต่ละงาน
- การสลับโมเดลอย่างยืดหยุ่น: เปลี่ยนโมเดลได้อย่างอิสระได้แม้ในระหว่างเซสชัน พร้อมรักษาบริบทเดิม
- การผสาน LSP: เชื่อมต่อ LSP ของภาษา Go, TypeScript, Nix และภาษาอื่น เพื่อเสริมความเข้าใจบริบทของโค้ด
- ความสามารถในการขยาย: เพิ่มฟังก์ชันได้ง่ายผ่านโปรโตคอล MCP เพื่อเชื่อมต่อ HTTP/CLI/SSE จากภายนอก
- รองรับแพลตฟอร์มกว้าง: ทำงานได้บนเทอร์มินัลของ macOS, Linux, Windows (WSL, PowerShell), FreeBSD, OpenBSD, NetBSD และ OS terminal หลักอื่น ๆ
- การตั้งค่าใช้งานทันที: ใช้งานได้ทันทีโดยไม่ต้องตั้งค่า และรองรับการตั้งค่า JSON เฉพาะโปรเจกต์หรือระดับระบบ
- การละเว้นที่ทรงพลัง: จัดการไฟล์/ไดเรกทอรีที่ไม่รวมในบริบทผ่าน
.gitignore และ .crushignore
- whitelist เครื่องมือ: รองรับการอนุมัติล่วงหน้าก่อนเรียกใช้เครื่องมือและตัวเลือกการทำงานอัตโนมัติ พร้อม flag
--yolo ที่ให้ข้าม prompt ทั้งหมดได้ (ควรใช้ด้วยความระวัง)
- custom provider: เพิ่มและปรับแต่งตัวเลือกรายละเอียดย่อย เช่น ราคาระดับ API และบริบทได้กับ OpenAI และ Anthropic compatible API
การติดตั้งและเริ่มต้นใช้งาน
- ติดตั้งได้ผ่านตัวจัดการแพ็กเกจและวิธีอื่น ๆ มากมาย เช่น Homebrew, NPM, Arch, Nix, Debian/Ubuntu, Fedora/RHEL และไบนารี/Go
- เมื่อตั้งค่าใช้งานครั้งแรก ต้องกรอก LLM API Key ที่ต้องการก่อน (OpenAI, Anthropic, Groq เป็นต้น) หรือกำหนดผ่านตัวแปรสภาพแวดล้อมได้
- ตัวแปรสภาพแวดล้อมที่รองรับสำหรับเชื่อมต่อ LLM ได้แก่
OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, GEMINI_API_KEY, VERTEXAI_PROJECT เป็นต้น
ตัวอย่างการตั้งค่า
- ใช้ไฟล์ JSON ระดับ global หรือระดับโปรเจกต์ (
./.crush.json, ./crush.json, $HOME/.config/crush/crush.json) เพื่อใช้ตัวเลือกขั้นสูง
- การตั้งค่า LSP: ระบุคำสั่งเฉพาะของแต่ละภาษาได้
{
"lsp": {
"go": { "command": "gopls" },
"typescript": { "command": "typescript-language-server", "args": ["--stdio"] }
}
}
- การตั้งค่า MCP: ตัวอย่างการขยายระบบภายนอกผ่าน HTTP/CLI/SSE
{
"mcp": {
"filesystem": {
"type": "stdio",
"command": "node",
"args": ["/path/to/mcp-server.js"]
}
}
}
- การยกเว้นไฟล์และการอนุมัติเคล็อกเครื่องมือ
- ใช้
.crushignore เพื่อไม่รวมไฟล์/โฟลเดอร์บางส่วน
- ใช้ whitelist การอนุญาตการรันเครื่องมือหรือ flag
--yolo เพื่อข้าม prompt
ฟีเจอร์สำหรับผู้ใช้ขั้นสูง
- ลงทะเบียน custom provider: เพิ่ม API ที่เข้ากันได้กับ OpenAI/Anthropic, ระบุตัวเลือกระดับละเอียดเช่นราคา/บริบทได้
- ระบบบันทึก (logging): มีไฟล์ล็อกแยกตามโปรเจกต์ และใช้คำสั่ง CLI อย่างเช่น
crush logs, crush logs --follow เพื่อติดตามแบบเรียลไทม์
- ตัวเลือกดีบัก: เปิด log แบบละเอียดด้วย flag
--debug หรือผ่าน config
ยังไม่มีความคิดเห็น