██████╗ ██╗███╗ ███╗ █████╗
██╔══██╗██║████╗ ████║██╔══██╗
██████╔╝██║██╔████╔██║███████║
██╔══██╗██║██║╚██╔╝██║██╔══██║
██████╔╝██║██║ ╚═╝ ██║██║ ██║
╚═════╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
AI assistant berbahasa Indonesia yang berjalan di terminal — multi-tenant, plugin system, REST API, Web Admin, Telegram, dan support 100+ model AI.
- 🤖 AI-powered replies — 11 provider: OpenAI, Anthropic, Gemini, Groq, Mistral, DeepSeek, Together AI, OpenRouter, Ollama, LM Studio, dan OpenAI-compatible endpoint
- 🖥️ Interactive TUI — arrow-key menus, number hotkeys, ESC cancel
- 👥 Multi-tenant — kelola banyak akun WhatsApp dari satu instalasi
- 🧩 Plugin system — drop
.jske~/.bima/plugins/untuk tambah command dan tool AI - 📚 Knowledge base — index PDF, Word, Excel; agent ambil konteks otomatis
- 🔍 Semantic search — local vector embeddings via
@xenova/transformers - 🎙️ Voice note STT — transkripsi audio masuk via Whisper (ffmpeg-powered)
- 💬 Group awareness — pilih grup mana yang didengar dan dibalas
- 🧠 Long-term memory — ingat preferensi user antar sesi
- ⏰ Reminders — jadwal pesan dikirim di waktu tertentu
- 🌐 Web search — DuckDuckGo + Brave Search, auto-browse hasil
- 💸 Realtime prices — crypto (CoinGecko) dan saham (Yahoo Finance)
- 🔬 Deep research — multi-source web research dengan AI sub-queries
- 🔊 Voice notes (TTS) —
/voiceuntuk balas pesan sebagai voice note - 📊 Prediction markets — Polymarket real-time via
/polymarket - 👁️ Topic watcher —
/watchmonitor topik, kirim alert ke grup - 👤 Member profiles — lacak history interaksi member grup via
/profiles - 👁🗨 Vision AI — kirim foto ke WhatsApp/Telegram, BIMA analisis (GPT-4o, Claude, Gemini)
- 💬 Telegram support — jalankan BIMA di Telegram sekaligus WhatsApp
- 📣 Cross-group mention tracking — lacak siapa di-tag dari semua grup, query via DM
- 🌐 REST API — HTTP endpoint untuk kirim pesan, query agent, kelola KB dari luar
- 🖥️ Web Admin Panel — browser UI untuk send pesan, lihat log, kelola KB
- 📱 Termux (Android) — jalan di HP Android via Termux
# 1. Install global
npm install -g bima-agent
# 2. Jalankan
bima
# 3. Setup wizard
# → /model — pilih AI provider & masukkan API key
# → /wa — scan QR code dengan WhatsApp
# → /input — pilih grup yang didengar
# → /output — pilih grup tempat Bima membalasData (auth session, knowledge base, plugins) disimpan di ~/.bima/.
Override dengan env var BIMA_DATA.
| Platform | Status | Catatan |
|---|---|---|
| Linux / Debian / Ubuntu | ✅ Full | npm install -g bima-agent |
| macOS | ✅ Full | npm install -g bima-agent |
| Windows | ✅ Full | npm install -g bima-agent |
| Docker | ✅ Full | docker-compose up |
| Termux (Android) | ✅ Partial | Lihat bagian Termux di bawah |
| Railway / Render / Fly.io | ✅ Full | Deploy via Docker image |
# Install Node.js 20+
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
npm install -g bima-agent
bimapkg update && pkg install nodejs ffmpeg
npm install -g bima-agent
bimaCatatan Termux: Semantic search (vector embeddings) dan local Whisper STT membutuhkan ONNX Runtime yang mungkin tidak tersedia di semua perangkat ARM. Semua fitur lain — WhatsApp, Telegram, AI replies, voice note via cloud STT, knowledge base (keyword search), web search — berjalan normal. Untuk STT gunakan
/sttdan pilihopenai,groq, atauhf.
# Start (butuh terminal interaktif untuk QR scan pertama kali)
docker-compose up
# Setelah scan QR, jalankan headless
docker-compose up -dSession dan data disimpan di ./bima-data/ di host. Container auto-restart kecuali dihentikan manual.
docker build -t bima-agent .
docker run -it --rm \
-v "$(pwd)/bima-data:/data" \
-e BIMA_DATA=/data \
bima-agentJalankan BIMA di Telegram sekaligus (atau sebagai pengganti) WhatsApp — AI, KB, dan memory yang sama.
# 1. Dapatkan token dari @BotFather di Telegram
# → /newbot → pilih nama → copy token
# 2. Di terminal BIMA:
/tg token 123456789:ABCdefGHI... # simpan token
/tg start # aktifkan botBot menerima: teks, foto (vision AI), voice note (STT), file (PDF/Excel/Word → KB).
BIMA menyediakan REST API HTTP untuk integrasi eksternal (n8n, Zapier, custom app).
# Aktifkan API (simpan otomatis, auto-start sesi berikutnya)
/api start 3000
# Set API key (opsional, untuk keamanan)
/api key rahasia123
# Status
/api status
# Hentikan
/api stop| Method | Route | Deskripsi |
|---|---|---|
GET |
/ |
Web Admin Panel |
GET |
/api/status |
Status WA, TG, model, tenant |
GET |
/api/groups |
Daftar grup dikonfigurasi |
POST |
/api/send |
Kirim pesan WA {"jid":"...","text":"..."} |
POST |
/api/query |
Tanya agent AI {"question":"..."} |
GET |
/api/knowledge |
List dokumen KB |
DELETE |
/api/knowledge/:hash |
Hapus dokumen KB |
GET |
/api/log?groupJid=xxx&hours=24 |
Log percakapan grup |
GET |
/api/ltm |
Long-term memory entries |
Auth via header X-API-Key: <key> atau query ?key=<key>.
# Kirim pesan
curl -X POST http://localhost:3000/api/send \
-H "X-API-Key: rahasia123" \
-H "Content-Type: application/json" \
-d '{"jid":"6281234567890@s.whatsapp.net","text":"Halo dari API!"}'
# Kirim ke nomor HP
curl -X POST http://localhost:3000/api/send \
-H "X-API-Key: rahasia123" \
-d '{"phone":"081234567890","text":"Halo!"}'
# Tanya agent
curl -X POST http://localhost:3000/api/query \
-H "X-API-Key: rahasia123" \
-d '{"question":"Siapa yang tag saya hari ini?"}'Buka browser ke http://localhost:3000/ setelah /api start.
- Dashboard — status WA, TG, model, tenant, daftar grup
- Send — kirim pesan ke grup atau nomor HP, tanya AI agent
- Knowledge Base — lihat dan hapus dokumen
- Log — lihat percakapan grup per periode
API key bisa diinput langsung di panel, disimpan di localStorage browser.
| Command | Deskripsi |
|---|---|
/help |
Tampilkan daftar perintah |
/wa |
Hubungkan WhatsApp (scan QR) |
/status |
Status koneksi & konfigurasi |
/model |
Set AI provider, model, dan API key |
/input |
Pilih grup WhatsApp sebagai input |
/output |
Pilih grup WhatsApp sebagai output |
/api |
REST API + Web Admin (start/stop/key/status) |
/knowledge |
Lihat dokumen tersimpan |
/compact |
Kompres konteks dokumen (hemat token) |
/stt |
Konfigurasi Speech-to-Text |
/tts |
Konfigurasi Text-to-Speech |
/reminder |
Lihat pengingat aktif |
/memory |
Reset memori percakapan semua user |
/ltm |
Lihat / hapus long-term memory |
/search <query> |
Cari di web dari terminal |
/polymarket [query] |
Cari Polymarket prediction markets |
/tg |
Kelola Telegram bot (token/start/stop/status) |
/watch |
Monitor topik, kirim notif ke grup |
/profiles |
Lihat profil member grup |
/tenant |
Kelola tenant (list/add/switch/del) |
/skill |
Kelola plugin (list/add/remove/info) |
/logout |
Logout WhatsApp & hapus session |
/clear |
Bersihkan layar |
/exit |
Keluar dari BIMA |
~/.bima/
├── auth/ # Baileys WhatsApp session
├── plugins/ # Custom plugins (.js files)
├── config.json # Provider, model, API key, grup, apiPort
├── db.json # Knowledge base index
└── ltm.json # Long-term memory
Drop file .js ke ~/.bima/plugins/:
// ~/.bima/plugins/my-plugin.js
module.exports = {
name: 'my-plugin',
description: 'Contoh plugin custom',
commands: {
'/greet': async (args, ctx) => {
ctx.log('INFO', `Halo, ${args || 'dunia'}!`);
},
},
tools: [
{
name: 'get_weather',
description: 'Ambil cuaca saat ini untuk sebuah kota',
async execute(input, tenantId) {
return `Cuaca di ${input}: cerah 32°C`;
},
},
],
};ctx exposes: ctx.log(type, msg), ctx.config.
| Provider | Contoh Model | API Key |
|---|---|---|
| OpenRouter | meta-llama/llama-3.1-8b-instruct:free, 100+ model |
Ya — openrouter.ai/keys |
| OpenAI | gpt-4o-mini, gpt-4o |
Ya |
| Anthropic | claude-3-haiku-20240307, claude-3-5-sonnet-20241022 |
Ya |
| Google Gemini | gemini-1.5-flash, gemini-1.5-pro |
Ya |
| Groq | llama-3.1-8b-instant, mixtral-8x7b-32768 |
Ya (free tier ada) |
| Mistral AI | mistral-small-latest |
Ya |
| DeepSeek | deepseek-chat, deepseek-coder |
Ya |
| Together AI | meta-llama/Llama-3-8b-chat-hf |
Ya |
| Ollama (lokal) | llama3, mistral, dll |
Tidak |
| LM Studio (lokal) | model apapun yang di-load | Tidak |
| OpenAI-compatible | custom endpoint | Opsional |
Gratis: OpenRouter banyak model free-tier. Groq gratis dengan rate limit. Ollama dan LM Studio jalan sepenuhnya di mesin lokal.
- Fork repo dan buat feature branch
- Buat perubahan — PR fokus pada satu fitur
- Smoke test:
node src/cli.jsdan verifikasi command yang diubah - Buka pull request dengan deskripsi perubahan
Bug report: sertakan versi Node.js, OS, dan output error lengkap.
MIT © 2026 BIMA Contributors