π€ baibot is an AI (Large Language Model) bot for Matrix built by etke.cc (managed Matrix servers).
The name is pronounced 'bye'-bot and is a play on AI, referencing the fictional character π§π¬ Bai Ganyo.
It's designed as a more private and featureful alternative to matrix-chatgpt-bot. It's influenced by chaz, but does not use the AIChat CLI tool and instead does everything in-process, without forking.
-
π¨ Encourages provider choice (Anthropic, Groq, LocalAI, OpenAI, Venice and βοΈ many more) as well as mixing & matching models:
-
Supports different use purposes (depending on the βοΈ provider & model):
- π¬ text-generation: communicating with you via text (though certain models may "see" images as well). The OpenAI provider also supports π οΈ built-in tools (web search, code interpreter)
- 𦻠speech-to-text: turning your voice messages into text
- π£οΈ text-to-speech: turning bot or users text messages into voice messages
- ποΈ image-generation: creating and editing images based on instructions
-
πͺ Supports seamless voice interaction (turning user voice messages into text, answering in text, then turning that text back into voice)
-
𦻠Supports transcribe-only mode (turning user voice messages into text, without doing text-generation)
-
π£οΈ Supports text-to-speech-only mode (turning user text messages into voice, without doing text-generation)
-
π Supports encryption for Matrix communication and Account-Data-stored configuration
-
β»οΈ Supports context-management for every provider (automatically trimming older messages on whole-turn boundaries once a conversation outgrows the context window)
-
π οΈ Allows customizing much of the bot's configuration at runtime (using commands sent via chat)
-
π₯ Actively maintained by the team at etke.cc
This is the chums branch of Chums-Team/baibot, the fork that runs the assistant of the Chums messenger. On top of upstream baibot it adds the following. All of it is optional: without the corresponding configuration the bot behaves like upstream.
-
π° Billing: an append-only SQLite ledger of the money spent per room. Each LLM call reserves, charges (the provider's real cost with a markup; for OpenRouter the cost it reports) and releases; spending caps per day and month;
balance,statsandbillingchat commands. -
πΈ x402 top-ups: users pay USDT (TRC-20) on TRON into a room's balance, through the payment sidecar in this repository and an x402 facilitator;
topupchat command. -
π‘ Matrix events for the Chums client:
cc.chums.x402_request,cc.chums.cap_hit,cc.chums.x402_topup_confirmedfrom the bot,cc.chums.set_user_localefrom the client. -
π Localization of the replies to users in 8 languages, per user, and an optional introduction per language after joining a room.
-
π§ Administrator-only commands, for deployments where users only talk to the bot.
-
π TRON wallet login: the bot authenticates with the key of a TRON wallet (private key or seed phrase) on homeservers where accounts belong to wallets and password login is off, and derives the passphrase of its encryption key backup from the same key, like the Chums web client. Cargo feature
tron-login, on by default. -
π Runbook and a
docker-compose.ymlfor running the bot next to the sidecar.
The changes are listed at the top of the changelog.
You can find more screenshots on the π Features and other π Documentation pages, as well as in the docs/screenshots directory.
π² For a quick experiment, you can refer to the π§βπ» development documentation which contains information on how to build and run the bot (and its various dependency services) locally.
For a real installation, see the π Installation documentation which contains information on π Running in a container and π₯οΈοΈοΈοΈοΈ Running a binary.
See the bot's π documentation for more information on how to use and configure the bot.
See the bot's π§βπ» development documentation for more information on how to develop on the bot.
This bot evolves over time, sometimes with backward-incompatible changes.
When updating the bot, refer to the changelog to catch up with what's new.
-
Matrix room: #baibot:etke.cc
-
GitHub issues: etkecc/baibot/issues
