5 poin oleh GN⁺ 2025-08-01 | 2 komentar | Bagikan ke WhatsApp
  • Sebagai AI coding agent untuk terminal, terintegrasi dengan berbagai LLM (model bahasa besar) untuk meningkatkan produktivitas kode lewat penulisan kode, otomatisasi alur kerja, dan pemeliharaan konteks kode
  • Mendukung pemilihan banyak model atau pergantian model secara bebas di tengah sesi, serta mempertahankan sesi/konteks per proyek
  • Menyediakan fitur ramah pengembang seperti integrasi LSP (Language Server Protocol), dukungan MCP (Model Context Protocol) yang dapat diperluas, pengecualian file via .gitignore dan file ignore khusus
  • Dapat berjalan di hampir semua lingkungan terminal utama seperti macOS, Linux, Windows, dan FreeBSD, serta dapat dipasang melalui beragam manajer paket, Go, atau binary
  • Mendukung pengaturan intuitif sekaligus kustomisasi tingkat lanjut, termasuk variabel lingkungan, pengaturan JSON, daftar putih alat, agar juga ramah untuk pengguna tingkat lanjut

Crush

  • Agen coding AI yang berjalan di lingkungan terminal, yang memungkinkan integrasi bebas dengan LLM favorit pengembang untuk mendukung penulisan, penyuntingan, dan otomatisasi kode
  • Dapat memilih dan beralih secara bebas antar berbagai model (Anthropic, OpenAI, Groq, OpenRouter, dan lain-lain), serta mengelola konteks secara mandiri per sesi
  • Melalui LSP (Language Server Protocol), agent menerima konteks tambahan sesuai bahasa sehingga lebih cerdas membantu penulisan kode
  • Melalui MCP (Model Context Protocol), dapat mengumpulkan dan memanfaatkan informasi tambahan dari sistem eksternal, HTTP, command line, SSE, dan sumber lainnya

Fitur Utama

  • Dukungan multi-model: Integrasi berbagai LLM seperti OpenAI, Anthropic, Groq, OpenRouter, dan bisa menambah sendiri
  • Pekerjaan berbasis sesi: Mengelola beberapa sesi kerja dan pemisahan konteks untuk tiap proyek
  • Pergantian model yang fleksibel: Dapat mengubah model kapan saja di tengah sesi sambil mempertahankan konteks yang ada
  • Integrasi LSP: Koneksi LSP untuk Go, TypeScript, Nix, dan bahasa utama lainnya guna memperkuat konteks kode
  • Ekstensibilitas: Berbasis protokol MCP, memudahkan penambahan fitur eksternal via HTTP/CLI/SSE
  • Dukungan lintas platform luas: Berjalan di terminal OS utama termasuk macOS, Linux, Windows (WSL, PowerShell), FreeBSD, OpenBSD, NetBSD
  • Pengaturan intuitif: Dapat dipakai langsung tanpa pengaturan tambahan, dengan opsi konfigurasi JSON per proyek/global jika diperlukan
  • Fitur pengecualian yang kuat: Mengelola file/folder yang dikecualikan dari konteks melalui .gitignore dan .crushignore
  • Daftar putih alat: Mendukung persetujuan awal sebelum menjalankan alat dan opsi eksekusi otomatis; flag --yolo dapat melewati seluruh prompt (gunakan dengan hati-hati)
  • Penyedia kustom: Dapat menambahkan API kompatibel OpenAI, Anthropic secara bebas dan menentukan opsi detail

Instalasi dan Memulai

  • Dapat dipasang lewat berbagai manajer paket seperti Homebrew, NPM, Arch, Nix, Debian/Ubuntu, Fedora/RHEL, serta binary/Go
  • Pada eksekusi pertama, diperlukan API key LLM yang disukai (OpenAI, Anthropic, Groq, dsb.), dan juga bisa ditentukan lewat variabel lingkungan
  • Contoh LLM yang dapat dihubungkan lewat variabel lingkungan: OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, GEMINI_API_KEY, VERTEXAI_PROJECT, dan lainnya

Contoh Konfigurasi

  • Menerapkan opsi lanjutan melalui file JSON global atau per proyek (./.crush.json, ./crush.json, $HOME/.config/crush/crush.json)
  • Konfigurasi LSP: Menentukan perintah per bahasa
    {  
      "lsp": {  
        "go": { "command": "gopls" },  
        "typescript": { "command": "typescript-language-server", "args": ["--stdio"] }  
      }  
    }  
    
  • Konfigurasi MCP: Contoh ekstensi eksternal berbasis HTTP/CLI/SSE
    {  
      "mcp": {  
        "filesystem": {  
          "type": "stdio",  
          "command": "node",  
          "args": ["/path/to/mcp-server.js"]  
        }  
      }  
    }  
    
  • Pengecualian file dan persetujuan alat
    • Mengecualikan file/folder tertentu melalui .crushignore
    • Lewat daftar putih alat atau flag --yolo untuk melewati prompt

Fitur Pengguna Lanjutan

  • Pendaftaran penyedia kustom: Tambahkan API kompatibel OpenAI/Anthropic, dan tentukan opsi detail seperti harga dan konteks
  • Logging: Tersedia file log per proyek, dan dapat dipantau secara real-time menggunakan perintah CLI crush logs, crush logs --follow
  • Opsi debug: Aktifkan log detail lewat flag --debug atau konfigurasi

2 komentar

 
kaydash 2025-08-03

aider benar-benar jelek sih;;

 
GN⁺ 2025-08-01
Opini Hacker News
  • Rasanya aneh bahwa kebanyakan agen coding AI berbasis terminal justru berusaha mempercantik text UI secara berlebihan. Ada banyak ruang kosong, line art, widget, ASCII art, gradien, bahkan animasi. Namun fitur dasar yang benar-benar diinginkan seperti key binding yang lengkap, autocomplete tab, scrollback yang konsisten, atau rendering teks tanpa flicker malah tidak ada. Setidaknya alat ini tidak ditulis dengan node.js, jadi ada harapan dari sisi performa, misalnya dengan mengurangi redraw output terminal yang tidak perlu. Tapi saat dipakai dengan ekspektasi sebagai REPL atau CLI, model interaksinya memang sama namun perilakunya terasa benar-benar berbeda, dan juga jelas berbeda nuansanya dibanding Unix TUI kelas editor atau reader. Saya penasaran apakah tren ini hanya meniru Claude Code atau sebenarnya sudah dimulai lebih awal. Karena itu saya masih lebih memilih Aider. Tampilannya dan kegunaannya lebih dekat ke REPL

    • Alat ini dibuat oleh perusahaan bernama Charm, dan misinya memang membuat jendela perintah terlihat menarik. Mereka sudah aktif selama bertahun-tahun bahkan sebelum demam LLM. Mereka membuat framework dan alat CLI untuk golang

    • Hal yang saya suka dari terminal adalah alur kerja berbasis scrolling, di mana saya bisa mengetik perintah lalu melihat aksi dan output dari berbagai sumber dan program berurutan seperti log. Yang benar-benar saya inginkan adalah alur kerja scrolling multiprogram berbasis HTML yang kuat. Tapi percobaan seperti ini belakangan justru seperti menggabungkan sisi buruk dari keduanya. UI yang bagus sebaiknya ditemui di sistem rendering yang lebih baik

    • Tren text UI seperti ini sebenarnya sudah menjadi gaya khas charmbracelet bahkan sebelum agen AI muncul. Saya justru menyukainya karena, tidak seperti TUI tradisional, key binding-nya mudah ditemukan secara intuitif

    • Salah satu alasan antarmuka semacam ini cepat mengumpulkan penggemar dan pengembang belakangan ini mungkin karena banyak orang pada dasarnya sudah terbiasa dengan editor bergaya IDE grafis. Tidak semua pengembang bekerja hanya di terminal. (Saya sendiri masih punya hari-hari ketika X/Wayland pun tidak saya nyalakan)

    • Setidaknya Claude Code bisa dipakai dari emacs https://github.com/stevemolitor/claude-code.el

  • Salah satu hal bagus dari alat ini adalah karena masih tahap awal, kodenya sangat jelas dan termodularisasi dengan baik. Ini adalah cetak biru yang sangat bagus untuk dirujuk jika ingin merancang agen, mencakup hal-hal seperti tool calling, session, ringkasan otomatis, dan manajemen persistensi. Tautan commit ini benar-benar layak disimpan

  • Bagi yang benar-benar ingin membaca apa yang terjadi di GIF demo, saya mengonversinya menjadi video yang diperlambat dengan ffmpeg lalu mengunggahnya https://share.cleanshot.com/XBXQbSPP

  • Saya sudah mencobanya dengan serius sekitar 15 menit. Dibanding Claude Code, kelebihannya adalah UI yang indah, sidebar berguna untuk melacak file yang berubah dan biaya, serta UX penerimaan perubahan yang mulus (hotkey, diff yang mudah dibaca). Sebaliknya, kekurangannya adalah tidak bisa menggabungkan beberapa model, dan banyak file biner yang tidak perlu ditambahkan ke direktori. Inisialisasi awal membuat file bernama CHARM.md, tetapi isinya tidak sesuai dengan informasi yang ingin saya bagikan ke model. Misalnya, tidak menyampaikan bahwa test case Go saya memakai PascalCasing. Selain itu, saat keluar dengan Ctrl+C terminal saya crash

    • Soal inisialisasi awal yang membuat CHARM.md, saya benar-benar berharap semua orang sekarang bisa sepakat pada satu standar file instruksi agen yang umum dikenal (misalnya AGENT.md). Ini memang standar yang dipromosikan Amp untuk alat CLI mereka sendiri, tetapi walau saya paham ironinya, saya tetap mendukung pendekatan itu https://ampcode.com/AGENT.md. Atau ada juga hack tidak langsung seperti ini https://kau.sh/blog/agents-md/
  • Pertanyaan yang benar-benar penting adalah, agen baru mana yang mendukung model lokal dengan baik. Saya ingin menghilangkan ketergantungan pada API eksternal, dan saya bersedia menerima sedikit pengorbanan performa

    • Ada issue yang sedang berjalan untuk menambahkan dukungan Ollama ke Crush (sudah 2 minggu)

    • Kebanyakan agen berjalan di endpoint yang kompatibel dengan OpenAI

    • OpenHands bisa dikonfigurasi dengan LLM apa pun yang diinginkan https://github.com/All-Hands-AI/OpenHands

    • Aider juga secara eksplisit menyatakan mendukung model lokal, meski saya belum mencobanya sendiri https://aider.chat/docs/llms.html

  • Akan sangat bagus jika ada tabel yang membandingkan semua alat baru seperti Claude Code, opencode, aider, cortex, dan semacamnya. Cara kerja atau pembeda masing-masing alat tidak mudah terlihat sekilas

    • Perbandingan atau benchmarking dengan model komersial sangat sulit karena biayanya. Saat saya menulis makalah baru-baru ini, saya menghabiskan lebih dari 10 ribu dolar hanya untuk mengevaluasi beberapa model komersial SOTA. Perbandingan dengan model terbuka bisa dilakukan dengan murah, tetapi reviewer tetap menginginkan perbandingan dengan yang "terbaik", jadi mau tidak mau harus dilakukan. Selain itu, struktur internal atau stack model komersial tidak transparan dan bisa berubah kapan saja, sehingga sangat tidak efisien. Saya rasa tidak baik jika riset akademik selalu mewajibkan perbandingan dengan model komersial

    • Seingat saya, opencode adalah nama aslinya, lalu namanya diubah karena terjadi konflik di antara para pengembang

    • Performa tidak hanya bergantung pada alat, tetapi juga pada model yang dipakai, codebase (konteks), dan tugas yang diberikan (prompt). Faktor-faktor ini tidak independen, dan perbedaan performa bisa besar tergantung kombinasinya. Sebagai contoh, Claude Sonnet 4 dengan Claude Code bagus untuk implementasi fitur backend Python, sedangkan Gemini 2.5 Pro lebih baik untuk mengubah kode frontend React. Artinya, tidak mungkin membandingkan hanya alatnya dengan semua variabel lain tetap; yang dibutuhkan adalah kombinasi alatmodelkonteks*prompt. 16x Eval memang menangani sebagian aspek ini, tetapi elemen seperti alat masih belum disertakan https://eval.16x.engineer/

  • "glamorous" adalah ekspresi yang juga dipakai dalam bahasa Inggris Britania https://dictionary.cambridge.org/dictionary/english/glamorous

  • Saya sudah memakai Crush selama beberapa minggu terakhir, dan saya benar-benar antusias. Saya sudah lama mengikuti Charm, dan mereka adalah salah satu dari sedikit tim yang benar-benar memahami pengalaman pengembang sambil terus membuat alat yang disukai orang. Fakta bahwa mereka masuk ke perlombaan AI coding sedini ini juga pertanda bagus. Jelas ini alat yang dibuat oleh orang-orang yang benar-benar memakainya

  • Muncul lagi satu alat baru, dan kali ini desainnya benar-benar bagus. Saya pasti akan mengujinya. Hal yang mengecewakan di semua alat (EDIT: opencode bisa autentikasi GitHub) adalah saya tidak bisa langsung autentikasi dengan langganan saya ke layanan berbayar bulanan (github copilot, claude code, openai codex, cursor, dll.). Saya sudah berlangganan layanannya, jadi akan sangat bagus jika saya bebas mengganti antarmukanya saat saya tidak suka interface bawaannya

    • Kebanyakan alat tidak mendukung program lain untuk "memakai" langganan bulanan tersebut. Jadi Anda harus mendapatkan API key terpisah dan membayar per token. Bahkan Claude Code pun untuk sementara waktu tidak bisa terhubung dengan langganannya sendiri
  • Diperkuat LSP: Crush memanfaatkan LSP sebagai konteks tambahan seperti yang umumnya dilakukannya. Ini fitur yang paling menarik bagi saya. Fitur multi-session atau project juga menarik perhatian saya

    • Ada LSP MCP, jadi bisa dipakai bersama agen lain juga