Installation
Boba ships as a single self-contained binary — no Node or Bun is required at runtime.
npm install -g botbandit
boba --helpThe command is boba. The package installs botbandit as an alias for it,
but every example in these docs uses boba.
The install resolves exactly one platform package for your machine (via npm
optionalDependencies, the same model esbuild and swc use). Supported platforms:
- macOS —
darwin-arm64,darwin-x64 - Linux (glibc) —
linux-x64,linux-arm64 - Linux (musl / Alpine) —
linux-x64-musl,linux-arm64-musl - Windows —
win32-x64
Run boba once and the setup wizard writes your
starter config.
The package is also published as @janole/boba. It is the same binary from
the same build — botbandit is the name to prefer.
Where Boba keeps its things
Everything lives under one application home, ~/.botbandit/:
| Path | What |
|---|---|
~/.botbandit/botbandit.config.yaml | Your config — written by the setup wizard |
~/.botbandit/docs/ | The markdown vault agents read and write |
~/.botbandit/extensions/ | Your own extensions, loaded at startup |
Override the home with BOTBANDIT_HOME, or point at one specific config file
with BOTBANDIT_CONFIG_PATH.
Boba looks for botbandit.config.yaml (or .yml) in the current directory
first, then in the application home — so a project can carry its own config
that overrides your global one.
Run from source
To hack on Boba itself, clone the monorepo and run the CLI from source with pnpm (which also provisions the pinned Bun runtime):
pnpm install
pnpm --filter @janole/boba dev # interactive TUI
pnpm --filter @janole/boba dev run "..." # one-shot prompt