BMO connects your local OpenCode instance to Telegram, a rich CLI TUI, and a webchat interface — all sharing a single SQLite database and session history.
- Telegram Bot — chat with BMO from anywhere via Telegram
- CLI TUI — interactive terminal with rich markdown, session management, agent switching, and
!shell commands - Webchat — browser-based chat with automatic Cloudflare Tunnel for public access
- Shared State — all frontends share one SQLite database and one active session
- BFP Protocol — peer-to-peer agent discovery and messaging (A2A-compatible)
- Self-Evolving — BMO writes its own code, installs dependencies, and updates itself
BMO introduces a groundbreaking, universal open standard for Agent-to-Agent (A2A) communication: the BMO Friendship Protocol (BFP). BFP allows any AI agent in the world (whether it's BMO, Hermes, ClaudeCode, or others) to seamlessly discover, securely communicate with, and delegate complex tasks to any other agent via Decentralized Identifiers (DIDs) and standard WebSockets.
Read the full vision and architectural details in the BFP Whitepaper.
npm install -g @aliwey/bmo# Setup wizard — links Telegram token and configures settings
bmo init
# Launch Telegram bot + CLI TUI
bmo
# Launch webchat with public Cloudflare Tunnel
bmo web
# Start peer-to-peer relay (BFP)
bmo relayIn the CLI, prefix any command with ! to run it as a shell command:
!git status
!dir
!npm install
BMO sees the output and can act on it.
- Python 3.10+
- Node.js 18+
- OpenCode server (auto-started by BMO)
| Command | Description |
|---|---|
bmo |
Launch bot + CLI TUI |
bmo init |
Configuration wizard |
bmo web |
Webchat server + tunnel |
bmo relay |
BFP peer relay |
bmo --version |
Show version |
bmo --update |
Update to latest |
All data lives in ~/.bmo/:
.env— configurationdata/bot.db— SQLite database (sessions, memory, agents)logs/— log files
MIT © Aliwey