Bub it. Build it.
Bub is a collaborative agent for shared delivery workflows, evolving into a framework that helps other agents operate with the same collaboration model. It is not a personal-assistant shell: it is designed for shared environments where work must be inspectable, handoff-friendly, and operationally reliable.
Documentation: https://bub.build
Built on Republic, Bub treats context as explicit assembly from verifiable interaction history, rather than opaque inherited state. This aligns with Socialized Evaluation: systems are judged by how well teams can inspect, review, and continue work together.
- Multi-operator collaboration in shared delivery environments.
- Explicit command boundaries for predictable execution.
- Verifiable history (
tape,anchor,handoff) for audit and continuity. - Channel-neutral behavior across CLI and message channels.
- Extensible tools and skills with a unified operator-facing workflow.
git clone https://github.com/bubbuild/bub.git
cd bub
uv sync
cp env.example .envMinimal .env:
BUB_MODEL=openrouter:qwen/qwen3-coder-next
LLM_API_KEY=your_key_hereStart interactive CLI:
uv run bubhello: natural language routed to model.,help: internal command.,git status: shell command., ls -la: shell command (space after comma is optional).
Common commands:
,help
,tools
,tool.describe name=fs.read
,skills.list
,skills.describe name=friendly-python
,handoff name=phase-1 summary="bootstrap done"
,anchors
,tape.info
,tape.search query=error
,tape.reset archive=true
,quit
Telegram:
BUB_TELEGRAM_ENABLED=true
BUB_TELEGRAM_TOKEN=123456:token
BUB_TELEGRAM_ALLOW_FROM='["123456789","your_username"]'
uv run bub messageDiscord:
BUB_DISCORD_ENABLED=true
BUB_DISCORD_TOKEN=discord_bot_token
BUB_DISCORD_ALLOW_FROM='["123456789012345678","your_discord_name"]'
BUB_DISCORD_ALLOW_CHANNELS='["123456789012345678"]'
uv run bub messageuv run ruff check .
uv run mypy
uv run pytest -q
just docs-test