npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@botconnector/bccli

v0.4.8

Published

BCCLI — BotConnector AI coding agent for the terminal

Readme

BCCLI

Bahasa Indonesia · English

npm npm downloads Node.js License: MIT Website

Agent AI coding dari BotConnector yang bekerja di terminal: membaca kode, mengedit file, dan menjalankan perintah — dengan izin kamu.

BCCLI membuat hello.js dan menjalankannya dengan node

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 && bccli

Pemakaian

| 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 serve

Subagent

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.md atau .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.md di ~/.bccli/skills/, .bccli/skills/, ~/.claude/skills/, .claude/skills/ — dipakai agent otomatis bila cocok, atau /nama-skill.
  • Perintah: commands/nama.md di folder yang sama → /nama argumen ($ARGUMENTS diganti 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