@janole/boba
v0.0.19
Published
Boba — run your own crew of agents across terminal, web, and chat, on your machines and models.
Maintainers
Readme
Boba
Run your own crew.
Run agents across terminal, web, and chat — on your machines, with your models and tools.
Boba is the operator's seat for AI agents. It coordinates and runs agents, connects them to your terminal, browser, and Telegram, works with whatever models you point it at (hosted or local), and keeps you in control of your machines, models, data, and workflow. It's sharpest today for coding work, but it isn't limited to it.
Early preview. Boba is under active development and interfaces may change between releases.
npm install -g @janole/boba
boba --helpQuickstart
Install (single self-contained binary, no Node/Bun required at runtime):
npm install -g @janole/bobaPoint it at a model. Pick a provider and set its credentials. For example, with OpenAI Codex:
export BOTBANDIT_PROVIDER=codex export BOTBANDIT_CODEX_MODEL=<model>Other providers (Alibaba/DashScope, OpenRouter, Ollama, …) are configured the same way — see Configuration.
Run a one-shot prompt:
boba run "Summarize what this repo does."Or drop into the interactive terminal UI:
boba/exitor/quitto leaveEscinterrupts a running turn;Ctrl+Ctwice force-quits
Embedding the CLI
@janole/boba also exports its platform launcher for Node-based wrapper CLIs.
It preserves the real terminal streams required by the interactive TUI and
returns Boba's exit status.
import { runBoba } from "@janole/boba";
process.exitCode = runBoba(process.argv.slice(2));What you get
- A terminal UI (TUI) — the primary way to drive agents interactively.
- Multiple agents & sub-agents — coordinate a crew, not just one chatbot.
- Tools with approvals — agents read/write files, run shell, and more; risky actions can require your sign-off.
- Memory, tasks, and scheduling — agents that remember, track work, and run on a timer.
- A live terminal and diff view — watch what your agents are doing.
- Telegram and a web UI — reach your agents from outside the terminal (the web UI is self-hostable and currently alpha).
- Any model, your infra — hosted or local, your data stays on your machines.
Configuration
Configuration resolves in this order:
- Environment variables
botbandit.config.yaml/botbandit.config.ymlin the current directory- Defaults
Common environment variables:
BOTBANDIT_PROVIDER— e.g.codex,alibaba- Codex:
BOTBANDIT_CODEX_MODEL - Alibaba/DashScope:
ALIBABA_API_KEY(orDASHSCOPE_API_KEY),BOTBANDIT_ALIBABA_MODEL, optionalBOTBANDIT_ALIBABA_BASE_URL - OpenAI-compatible: provider config with
baseProvider: openai-compatible,baseURL,apiKey, andmodels - OpenRouter:
OPENROUTER_API_KEY, with models underproviders.openrouter.modelsin the config file
Secrets in config values support two schemes:
plain:<value>(default)env:<ENV_VAR_NAME>
License
Licensed under FSL-1.1-ALv2.
