@botconnector/bccli
v0.4.8
Published
BCCLI — BotConnector AI coding agent for the terminal
Maintainers
Readme
BCCLI
Bahasa Indonesia · English
Agent AI coding dari BotConnector yang bekerja di terminal: membaca kode, mengedit file, dan menjalankan perintah — dengan izin kamu.

Rekaman sesi asli: BCCLI membuat file hello.js lalu menjalankannya dengan node.
# install satu baris (macOS / Linux / WSL2) — pasang Node portable bila perlu, tanpa sudo
curl -fsSL https://raw.githubusercontent.com/farijarifriyanto-debug/bccli/main/install.sh | bash
# Windows (PowerShell 5.1+) — butuh Node.js 22+ terpasang lebih dulu
irm https://raw.githubusercontent.com/farijarifriyanto-debug/bccli/main/install.ps1 | iex
# atau manual, bila Node.js 22+ sudah terpasang
npm i -g @botconnector/bccli # rilis stabil terbaru, butuh Node.js 22+
npm i -g @botconnector/bccli@next # …atau pra-rilis berikutnya
bccli login # simpan API key BotConnector Cloud
cd project-kamu && bccliPemakaian
| Perintah | Fungsi |
|---|---|
| bccli | mode interaktif |
| bccli -p "tugas" | satu tugas tanpa interaksi (skrip/CI) |
| bccli -p "tugas" --output-format json | hasil akhir sebagai satu objek JSON; stream-json = event JSONL per tahap (tool_use/tool_result/message/result) untuk CI |
| bccli -c / bccli -r | lanjutkan sesi terakhir / pilih sesi |
| bccli -m provider/model | pilih model |
| bccli --reasoning <auto|off|low|medium|high|max> | pilih level reasoning untuk invocation ini |
| bccli models | daftar model |
Perintah di dalam sesi (ketik / untuk saran, ↑↓ pilih, Enter jalankan):
| Perintah | Fungsi |
|---|---|
| /help | daftar perintah dan pintasan |
| /model | ganti model |
| /reasoning | pilih Auto / Off / Low / Medium / High / Max |
| /provider | tambah/pilih provider AI |
| /language | ganti bahasa tampilan (en / id) |
| /mcp | pasang/kelola server MCP |
| /new | sesi baru (sesi lama tetap tersimpan) |
| /resume | lanjutkan sesi lain di folder ini |
| /session | info sesi ini |
| /status | versi, model, mode izin, MCP, konteks |
| /permissions | lihat/cabut izin |
| /pr | review pull request (/pr <n\|url\|branch>) |
| /worktree | daftar git worktree; buat dengan bccli -w <nama> |
| /undo | batalkan edit file giliran terakhir |
| /redo | terapkan ulang edit file yang baru dibatalkan /undo |
| /rewind | mundur beberapa giliran: percakapan + edit file (/rewind 2) |
| /diff | git diff project |
| /copy | salin jawaban terakhir |
| /export | simpan percakapan ke markdown |
| /memory | instruksi project (/memory , /memory global ) |
| /init | buat/perbarui AGENTS.md untuk project ini |
| /agents | daftar subagent |
| /tasks | daftar tugas latar belakang |
| /skills | daftar skill dan perintah custom |
| /doctor | cek kesehatan instalasi |
| /login | simpan API key provider aktif |
| /logout | hapus API key provider aktif |
| /clear | mulai percakapan baru |
| /compact | ringkas percakapan |
| /cost | pemakaian token sesi ini |
| /exit | keluar |
/undo hanya membatalkan perubahan lewat alat edit/tulis (bukan perintah bash), per giliran, sampai 20 giliran ke belakang.
Shift+Tab ganti mode izin: default → acceptEdits → plan → allowAll.
Membaca file rahasia (.env, .ssh, .aws, id_rsa, *.pem, *.key, secret*,
credential*) selalu meminta izin; allowAll satu-satunya mode yang tidak bertanya, dan
izin itu tidak bisa diberikan "untuk sesi ini".
Mode -p tidak pernah bertanya: alat yang butuh izin ditolak, kecuali memakai
--allow-all atau --allowed-tools bash,edit,fetch.
Bahasa
Tampilan BCCLI (bantuan, pesan, prompt izin) memakai bahasa Inggris secara default. Bahasa Indonesia tetap tersedia:
bccli --lang id # hanya untuk satu kali jalan
BCCLI_LANG=id bccli # lewat environment
/language id # di dalam sesi; disimpan di ~/.bccli/config.json ("language")Urutan prioritas: --lang, lalu BCCLI_LANG, lalu language di config, lalu Inggris. Bahasa jawaban model mengikuti bahasa yang kamu tulis, dan
pesan alat yang dibaca model (hasil tool, galat) selalu berbahasa Inggris supaya tidak mengganggu bahasa jawabannya.
Provider
/provider di dalam sesi (atau bccli provider add <id>) memasang provider hanya dengan API key:
| Id | Provider |
|---|---|
| bc-cloud | BotConnector Cloud (default) |
| openrouter | OpenRouter |
| openai | OpenAI |
| gemini | Google Gemini |
| deepseek | DeepSeek |
| groq | Groq |
| ollama-cloud | Ollama Cloud |
| ollama | Ollama lokal (tanpa key) |
| lmstudio | LM Studio lokal (tanpa key) |
Provider lain yang OpenAI-compatible: pilih Custom… di /provider, atau
bccli provider add corp --url https://corp.example/v1 --name "Corp".
/model menampilkan model dari semua provider yang sudah punya key, dikelompokkan
per provider; ketik untuk menyaring. Pilihan tersimpan sebagai default.
Reasoning dapat dipilih lewat bccli --reasoning <auto|off|low|medium|high|max> atau /reasoning.
Auto memakai default model/provider dan BCCLI tidak mengirim override reasoning apa pun. BCCLI tidak
otomatis menurunkan atau menaikkan reasoning effort. Level manual diteruskan bila kontrak provider/model
mendukungnya; level yang tidak didukung menghasilkan error yang jelas dan tidak di-downgrade diam-diam.
.bccli/config.json di dalam project hanya boleh memilih model dan menambah provider baru tanpa API key —
preference reasoning hanya dibaca dari config user ~/.bccli/config.json, bukan dari repo yang di-clone —
izin (permissionMode, allow) dan provider yang sudah ada hanya diatur dari ~/.bccli/config.json,
supaya repo yang kamu clone tidak bisa memberi dirinya izin penuh atau mencuri API key.
Daftar lengkap kunci ~/.bccli/config.json beserta nilai dan cakupannya: docs/config.md.
Integrasi agent eksternal
BCCLI dapat memasang BotConnector sebagai provider untuk agent lain:
| Perintah | Fungsi |
|---|---|
| bccli integrations | lihat status integrasi |
| bccli connect opencode | hubungkan OpenCode ke BotConnector |
| bccli connect aider | hubungkan Aider ke BotConnector |
| bccli connect cline | hubungkan Cline CLI ke BotConnector |
| bccli connect deepseek-harness / bccli connect dsh | hubungkan DeepSeek Harness ke BotConnector |
| bccli connect codex | buat profile Codex Responses API + launcher BotConnector |
| bccli connect claude-code | buat launcher Claude Code via Anthropic Messages compatibility |
| bccli connect cursor | buat guided setup Cursor + warning override Base URL |
| bccli connect openai-cli | buat launcher OpenAI CLI khusus BotConnector |
| bccli connect openai-sdk | buat env profile untuk OpenAI Python/Node SDK |
| bccli connect openai-compatible | buat env profile universal OpenAI-compatible |
| bccli disconnect <agent> | pulihkan config sebelum integrasi |
OpenCode memakai config global ~/.config/opencode/opencode.json. BCCLI mengambil katalog model BotConnector saat connect,
menjaga config provider lain, dan menyimpan secret di file terpisah di ~/.bccli/integrations/.
Aider memakai ~/.aider.conf.yml yang menunjuk ke env file BCCLI terpisah; BCCLI menolak menimpa setting
OpenAI/env-file Aider yang sudah ada.
Cline memakai provider openai-compatible di ~/.cline/data/settings/providers.json. Jika slot itu sudah dipakai
endpoint lain, BCCLI menolak menimpanya. Cline sendiri menyimpan API key provider di file tersebut.
DeepSeek Harness memakai custom provider botconnector di $DSH_HOME/settings.yaml dengan
api: openai-completions dan apiKeyEnv: BOTCONNECTOR_API_KEY; key diletakkan pada blok BCCLI di
$DSH_HOME/.env. Provider DSH lain tetap dipertahankan. Setelah connect, jalankan profile web dengan
dsh web (setara dengan dsh --profile web); dsh tanpa profile memang ditolak oleh DSH 0.1.x.
Codex memakai profile $CODEX_HOME/botconnector.config.toml dengan wire_api = "responses" dan launcher
BCCLI yang membaca key dari storage BCCLI saat dijalankan. Claude Code memakai launcher terisolasi dengan
ANTHROPIC_BASE_URL=https://api.botconnector.id dan endpoint kompatibilitas /v1/messages + token counting.
Login/config utama Codex dan Claude Code tidak ditimpa.
External agent memanggil BotConnector langsung, jadi discovery model tidak memakai identitas khusus BCCLI. Akses yang memang dibatasi ke BCCLI/Web App (misalnya Luna launch access) tidak otomatis diwariskan. Sebelum mengubah config eksternal, BCCLI membuat backup agar disconnect dapat memulihkannya.
Internet
web_search: mencari di web tanpa perlu izin. Memakai akun BotConnector Cloud bila ada key, kalau tidak langsung ke Keenable (gratis, tanpa key). Hasilnya judul, URL, dan cuplikan singkat, jadi hemat token.fetch: membuka satu URL dari komputer ini (butuh izin per host).
MCP
/mcp (atau bccli mcp add <nama>) memasang server dari katalog:
playwright, context7, fetch, filesystem, git, github. Server remote lain:
bccli mcp add nama --url https://…. Tersimpan di ~/.bccli/mcp.json (format mcpServers
seperti Claude Code). Semua alat MCP selalu minta izin.
.bccli/mcp.json di dalam repo tidak dijalankan sebelum kamu setujui (ditanya sekali per folder).
bccli mcp serve menjalankan MCP server stdio dengan tools BotConnector milikmu
(bc_search, bc_fetch, bc_models, bc_chat) untuk dipakai Claude Code, Cursor,
opencode, dan host MCP lain. Butuh bccli login (atau BOTCONNECTOR_API_KEY):
claude mcp add botconnector -- npx -y @botconnector/bccli mcp serveSubagent
Agent bisa mendelegasikan pekerjaan lewat alat task:
explore— hanya baca & cari, bisa jalan paralel;general— semua alat (edit/perintah tetap minta izin);- custom —
.bccli/agents/nama.mdatau.claude/agents/nama.md:
---
name: reviewer
description: review perubahan kode
tools: [read, grep, glob]
model: openrouter/qwen/qwen3-coder
---
Kamu reviewer kode. Laporkan bug nyata saja.Skill & perintah custom
- Skill: folder berisi
SKILL.mddi~/.bccli/skills/,.bccli/skills/,~/.claude/skills/,.claude/skills/— dipakai agent otomatis bila cocok, atau/nama-skill. - Perintah:
commands/nama.mddi folder yang sama →/nama argumen($ARGUMENTSdiganti argumen).
Todo & mode plan
Tugas ≥ 3 langkah menampilkan checklist di atas kotak input. Di mode plan (Shift+Tab),
agent hanya membaca lalu mengajukan rencana; [a] setujui dengan edit otomatis,
[y] setujui dengan tanya tiap langkah, [n] minta perbaikan.
Instruksi project dibaca dari AGENTS.md, CLAUDE.md, dan BCCLI.md.
Pengembangan
npm install
npm test && npm run typecheck && npm run lint && npm run build
npm run coverage # gerbang coverage (juga dijalankan di CI Linux)CI (ci.yml) menjalankan hal yang sama di Linux, macOS, dan Windows, plus gerbang coverage di Linux.
Rilis: naikkan version di package.json, lalu push tag v<version> — release.yml
menjalankan test, smoke test ke BotConnector Cloud, dan npm publish --provenance.
Pelajari lebih lanjut
- Unduh & panduan BCCLI
- Developer API BotConnector — endpoint kompatibel OpenAI SDK
- Switchboard — harness agent open source dari BotConnector
- Berkontribusi
