Slavi Pantaleev 062fbbb8ef Add support for custom avatars (via file path) and for not touching the already-set avatar
This is based on the work done in https://github.com/etkecc/baibot/pull/60 by https://github.com/Fmstrat (Ben Curtis),
with various changes on top to make the code more idiomatic and flexible.

This commit squashes the following patches (newest first):

- Improve handling of `user.avatar` configuration (null & empty string being the same now) and add support for a special `keep` value
- Minor import reordering
- Simplify avatar configuration (`user.avatar.source` -> `user.avatar`)
- Combine `logo_bytes` and `mime_type` determination logic and do not fall back to default avatar if reading the custom avatar file fails
- Switch from deprecated `mime_guess::guess_mime_type(avatar_path)` to `mime_guess::from_path(avatar_path).first_or_octet_stream()`
- Relax `mime_guess` constraint and order alphabetically
- Use `mime` from `mxlink`
- Add mime-type support and switch to user.avatar.source
- (Original work by Fmstrat) Add support for custom avatars

Co-authored-by: Fmstrat <nospam@nowsci.com>
2025-12-15 08:07:24 +02:00
2024-09-12 13:44:06 +03:00
2024-09-12 13:44:06 +03:00
2024-09-12 13:44:06 +03:00
2025-12-06 07:01:39 +02:00
2025-11-20 05:51:45 +02:00
2025-11-20 05:51:45 +02:00
2025-02-27 09:31:26 +02:00
2024-09-12 13:44:06 +03:00

baibot logo

baibot

🤖 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.

🌟 Features

🖼️ Screenshots

Introduction and general usage

You can find more screenshots on the 🌟 Features and other 📚 Documentation pages, as well as in the docs/screenshots directory.

🚀 Getting Started

🗲 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.

📚 Documentation

See the bot's 📚 documentation for more information on how to use and configure the bot.

💻 Development

See the bot's 🧑‍💻 development documentation for more information on how to develop on the bot.

📜 Changes

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.

🆘 Support

Description
BaiBot, but with MCP added in (yes, it's vibecoded. womp womp)
Readme AGPL-3.0 4.4 MiB
Languages
Rust 97.6%
Just 2%
Shell 0.2%
Dockerfile 0.2%