CLI Commands
OpenCrabs punya CLI lengkap dengan 20+ subperintah untuk mengelola setiap aspek agen.
Penggunaan
opencrabs [COMMAND] [OPTIONS]
Perintah
| Perintah | Deskripsi |
|---|---|
chat (default) | Menjalankan antarmuka chat TUI |
daemon | Berjalan di latar belakang (hanya channels, tanpa TUI) |
agent | Chat multi-giliran interaktif atau mode pesan-tunggal |
run | Menjalankan satu prompt secara non-interaktif; --quiet menyembunyikan chrome UI untuk stdout murni mesin, --format memilih text/json/markdown (v0.5.4) |
cron | Kelola tugas terjadwal (add/list/remove/enable/disable/test) |
channel | Manajemen channel (list, doctor) |
memory | Manajemen memori (list, get, stats, prune) |
session | Manajemen session (list, get) |
db | Manajemen database (init, stats, clear) |
logs | Manajemen log (status, view, clean, open) |
service | Manajemen layanan sistem (install/start/stop/restart/status/uninstall) |
status | Tampilkan status agen |
doctor | Jalankan pemeriksaan kesehatan koneksi; --fix memperbaiki baris cron macet, marker basi, dan izin (v0.3.83) |
onboard | Jalankan wizard penyiapan |
completions | Buat completion shell (bash/zsh/fish/powershell) |
version | Tampilkan info versi |
!command | Operator bang: jalankan perintah shell apa pun seketika tanpa bolak-balik LLM. Keluaran ditampilkan sebagai pesan sistem. Mis. !git status, !ls -la |
/evolve | Pembaruan otomatis: mengunduh rilis terbaru dan hot-restart. Berjalan otomatis saat startup bila [agent] auto_update = true |
/restart | Restart (v0.3.79): menjalankan ulang biner yang sama dengan argumen yang sama, jadi cara ia dulu dijalankan tidak perlu diketahui atau diulang. Giliran yang belum selesai dilanjutkan otomatis saat startup. Di TUI ia melanjutkan session saat ini. Hanya owner di channels; mengumumkan sebelum bertindak. |
/exit | Shutdown (v0.3.79): mematikan OpenCrabs. Menyalakannya lagi butuh akses ke mesin tempat ia berjalan, jadi ini satu-satunya perintah tanpa jalan kembali dari chat. Hanya owner di channels; mengumumkan sebelum bertindak. |
/clear | Session baru (v0.5.2): Menutup session saat ini dan memulai session kosong di tempatnya, tanpa panggilan summariser, jadi instan. Hanya owner di channels. |
/btw | Agen paralel: memunculkan sub-agent terisolasi untuk tugas sampingan sementara percakapan utama berlanjut. Mis. /btw research the latest Rust async patterns |
/mission-control | Mission Control: dasbor layar penuh berisi kotak masuk RSI (proposal tertunda), log aktivitas (perbaikan yang diterapkan), dan jadwal cron. Navigasi dengan tombol vim, terima/tolak proposal dengan a/r. |
/skills | Pemilih skills: jelajahi dan jalankan templat alur kerja dengan pencarian fuzzy. Setiap skill yang dimuat otomatis terdaftar sebagai slash command. |
/security-audit | Audit keamanan: audit keamanan & CVE menyeluruh tanpa terikat bahasa. Mendeteksi tipe proyek, menjalankan scanner yang tepat, meninjau diff terbaru untuk pola injeksi/auth/kripto, memberi skor 0-100. |
/cost-estimate | Estimasi biaya: estimasi biaya pembangunan codebase, rincian ROI berbantu AI, dan valuasi harga wajar. Menanyakan konteks bisnis sebelum menghasilkan rentang valuasi. |
/repo-audit | Audit repo: pemeriksaan kesehatan repositori tanpa terikat bahasa. Pipa 5 fase: deteksi bahasa → eksekusi tools natif → metrik git → analisis AST → skor + rekomendasi. Mencakup Rust, JS/TS, Python, Go. |
/goal | Loop tujuan otonom: tetapkan tujuan dengan /goal <teks> dan agen berputar otonom: mengeksekusi, menilai dirinya sendiri dengan juri LLM, dan berlanjut sampai tujuan tercapai atau anggaran giliran (default 20) habis. Mendukung /goal pause, /goal resume, /goal status, /goal clear. |
/models <provider/model> | Pergantian model langsung (v0.3.66): pindah langsung ke model tertentu di setiap channel. Gunakan /models anthropic/claude-sonnet-4-20250514 untuk langsung berpindah. Pemilih cakupan-terapan memungkinkan memilih hanya-session atau global. |
opencrabs session set-model | Pergantian model headless (v0.3.66): ganti model dari CLI tanpa TUI. Berguna untuk skrip dan otomasi. |
Flag Konfigurasi
| Flag | Default | Deskripsi |
|---|---|---|
[agent] auto_update | true | Pasang otomatis rilis baru saat startup dan hot-restart. Set false untuk mempertahankan dialog prompt manual. |
[agent] force_default | false | (v0.3.66) Bila true, mendorong pasangan provider/model default ke semua sessions saat konfigurasi di-reload. Berguna untuk menegakkan pergantian model global. |
[agent] config_drift_warnings | true | (v0.3.66) Tampilkan peringatan startup saat nilai konfigurasi diam-diam bergeser dari default yang diharapkan. Membantu menangkap perubahan konfigurasi yang tak disengaja. |
Pintasan Keyboard (TUI)
| Shortcut | Aksi |
|---|---|
F12 | Nyalakan/matikan penangkapan mouse untuk seleksi teks terminal natif |
Prompt Pembaruan Saat Startup
Saat versi baru tersedia, dialog di tengah muncul di layar splash menawarkan menerima (Enter) atau lewati (Esc). Menerima otomatis memicu /evolve. Setelah pembaruan, biner restart dan splash menampilkan versi baru.
Perintah Channel
/doctor, /help, /usage, /evolve, /restart, /exit, dan perintah sistem bekerja langsung di Telegram, Discord, Slack, dan WhatsApp tanpa melalui LLM. Dieksekusi seketika dan mengembalikan hasil di channel.
/restart dan /exit mengumumkan diri sebelum bertindak, karena begitu prosesnya hilang tidak ada yang tersisa untuk melaporkan kegagalan. Keduanya hanya untuk owner, seperti semua perintah lain yang mengubah proses yang berjalan. /exit adalah satu-satunya perintah tanpa jalan kembali dari chat: pemulihan butuh akses ke mesin tempat OpenCrabs berjalan.
Sejak v0.3.80, stop dengan bahasa natural juga dihormati, menyuruh bot berhenti dengan bahasa sehari-hari bekerja di channels dan TUI, bukan hanya kata polos “stop”.
Seluruh logika perintah channel dipusatkan di src/channels/commands.rs (847 baris) – handler bersama yang menghapus duplikasi logika perintah di 5 implementasi channel. Setiap channel mendelegasikan ke try_execute_text_command() untuk perilaku yang konsisten.
/evolve di channels kini berjalan langsung (mengunduh + memasang biner) tanpa bolak-balik LLM. Sebelumnya diarahkan melalui agen.
Mode Chat
# Default: launch TUI
opencrabs
# Same as above
opencrabs chat
Mode Agen
Mode non-interaktif untuk skrip dan otomasi:
# Interactive multi-turn chat
opencrabs agent
# Single-message mode
opencrabs agent -m "File apa yang berubah hari ini?"
Mode Daemon vs TUI
OpenCrabs berjalan dalam salah satu dari dua mode. Pilih yang cocok untuk mesinnya. Untuk satu profil, jalankan hanya satu pada satu waktu.
| Mode | Cara memulai | Apa itu | Dipakai di |
|---|---|---|---|
| TUI (interaktif) | opencrabs | UI terminal lengkap: panel chat, sessions, pengaturan. Channels Anda juga berjalan dan berbagi session Anda. | Mesin yang Anda duduki (laptop/desktop) |
| Daemon (headless) | opencrabs daemon, or install as a service: opencrabs service install && opencrabs service start | Tanpa UI. Hanya channels (Telegram, Discord, Slack, WhatsApp) + cron. Bertahan dari reboot, koneksi SSH terputus, dan crash. | Mesin selalu-aktif atau VPS |
Kenapa tidak keduanya sekaligus?
Satu kredensial bot (mis. token Telegram) hanya bisa memegang satu poll getUpdates yang hidup. Jika daemon dan TUI sama-sama memegang token profil yang sama, mereka berkelahi (HTTP 409) dan channel jatuh.
TUI selalu menang
Saat Anda membuka TUI ketika daemon untuk profil yang sama sedang berjalan, TUI mematikan daemon itu lebih dulu, mengambil alih channels, dan menampilkan banner tentang hal itu. Channels Anda sudah terpasang, jadi mereka cukup lanjut tanpa menyambung ulang. Daemon tetap mati sampai Anda menyalakannya lagi (opencrabs service start, atau jalankan ulang opencrabs daemon).
Di mesin tempat daemon biasanya berjalan, alur sehari-harinya: buka opencrabs saat ingin duduk bersamanya; tutup TUI dan jalankan opencrabs service start saat ingin headless lagi.
Mulai otomatis saat boot
- Daemon: gunakan installer layanan (
opencrabs service install); ia memasang systemd (Linux) / launchd (macOS) untuk mulai saat boot dan restart saat crash. Ini setup selalu-aktif yang disarankan. - TUI: agar UI terminal terbuka otomatis saat login, gunakan autostart terminal/desktop, bukan installer layanan:
- Desktop Linux: taruh file
.desktopdi~/.config/autostart/denganExec=x-terminal-emulator -e opencrabs. - macOS: Pengaturan Sistem > Umum > Item Login > tambahkan skrip
.commandyang menjalankanopencrabs. - VPS lewat SSH: jalankan di dalam
tmux/screendan sambungkan ulang. Di VPS headless Anda biasanya ingin daemon, bukan TUI.
- Desktop Linux: taruh file
Sangat disarankan untuk pengguna harian. Jika Anda berencana memakai OpenCrabs setiap hari, mintalah ia menyiapkan dirinya sebagai layanan sistem. Cukup katakan semacam “siapkan dirimu untuk menyala bersama komputerku” atau “hapus layanan mulai-otomatisnya”. Agen menangani pemasangan dan penghapusan launchd (macOS) atau systemd (Linux) secara otomatis untuk Anda.
Menjaga TUI tetap berjalan di VPS (tmux)
Jika Anda ingin TUI interaktif lengkap selalu tersedia di server jauh (bukan daemon headless), tmux adalah jalannya. Session Anda bertahan dari koneksi SSH terputus, laptop tidur, dan koneksi tidak stabil.
1. Pasang tmux
# Debian / Ubuntu
sudo apt install tmux
# RHEL / CentOS / Fedora
sudo yum install tmux
2. Cari di mana opencrabs terpasang
which opencrabs
# If that returns nothing, search the whole filesystem
find / -name "opencrabs" -type f 2>/dev/null
3. Mulai sesi tmux bernama
tmux new -s opencrabs
4. Jalankan opencrabs di dalamnya
opencrabs
5. Lepaskan (opencrabs tetap berjalan)
Tekan Ctrl+B, lalu D. Anda kini bisa menutup SSH dan opencrabs tetap berjalan.
6. Sambungkan ulang nanti
tmux attach -t opencrabs
Sudah selesai. Kembali dari mesin mana pun, sambungkan ulang, dan lanjutkan dari tempat Anda berhenti. Jika Anda hanya butuh channels (Telegram, Discord, Slack, WhatsApp) berjalan headless tanpa TUI, daemon lebih cocok: opencrabs service install && opencrabs service start.
Endpoint Kesehatan
Tambahkan ke config.toml untuk membuka pemeriksaan kesehatan:
[daemon]
health_port = 8080
Lalu GET http://localhost:8080/health mengembalikan 200 OK dengan status JSON. Berguna untuk watchdog systemd, monitor uptime, atau load balancer.
Manajemen Layanan
Pasang OpenCrabs sebagai layanan sistem (launchd di macOS, systemd di Linux):
opencrabs service install
opencrabs service start
opencrabs service stop
opencrabs service restart
opencrabs service status
opencrabs service uninstall
Layanan sadar-profil
Setiap profil mendapat layanan mandirinya sendiri:
# Install a specific profile as a service
opencrabs -p hermes service install
opencrabs -p hermes service start
# Each profile gets its own service name
# macOS: com.opencrabs.daemon.hermes
# Linux: opencrabs-hermes.service
# Manage independently
opencrabs -p hermes service status
opencrabs -p hermes service stop
opencrabs -p hermes service uninstall
Beberapa profil bisa berjalan sebagai layanan daemon simultan dengan isolasi penuh.
Variabel lingkungan OPENCRABS_PROFILE
Set OPENCRABS_PROFILE=hermes untuk memilih profil tanpa flag -p. Berguna untuk layanan systemd, tugas cron, dan mode daemon.
Penanganan masalah: daemon tetap mati
Jika opencrabs service status bilang stopped:
- Apakah Anda membuka TUI? Membuka
opencrabssengaja mematikan daemon agar session interaktif bisa memiliki channels. Daemon tetap mati sampai Anda menjalankanopencrabs service startlagi. - Build lama mungkin masih punya
Restart=on-failurealih-alihRestart=always. Buat ulang unit denganopencrabs service install(laluservice start) untuk mendapatkan kebijakan selalu-restart. - Konfigurasi, kunci, perintah, dan tools hot-reload saat runtime. Mengedit
config.tomlataukeys.tomltidak pernah butuh restart daemon. Jika perubahan tidak berlaku, periksa log untuk barisConfigWatcher: reloadedalih-alih me-restart.
Manajemen Cron
# List all cron jobs
opencrabs cron list
# Add a new cron job
opencrabs cron add \
--name "Daily Report" \
--cron "0 9 * * *" \
--tz "America/New_York" \
--prompt "Check emails and summarize" \
--provider anthropic \
--model claude-sonnet-4-20250514 \
--thinking off \
--deliver-to telegram:123456
# Remove a cron job (accepts name or ID)
opencrabs cron remove "Daily Report"
# Enable/disable (accepts name or ID)
opencrabs cron enable "Daily Report"
opencrabs cron disable "Daily Report"
Pintasan Keyboard TUI
| Tombol | Aksi |
|---|---|
Enter | Kirim pesan |
Esc | Batal / tutup |
Ctrl+N | Session baru |
Ctrl+L | Layar sessions |
Ctrl+K | Bersihkan session saat ini |
Ctrl+O | Buka/tutup lipatan grup tools |
| | Pisahkan panel horizontal |
_ | Pisahkan panel vertikal |
Ctrl+X | Tutup panel yang difokuskan |
Tab | Putar fokus panel / Terima autocomplete |
Up/Down | Navigasi saran / sessions |
/ | Mulai slash command (mis. /help, /models) |
: | Buka pemilih emoji |