This fork is no longer maintained. See the original project for updates.
Hello there, I am AssistentNio! I am a unique chatbot designed to assist you with all your Matrix needs. Equipped with the state-of-the-art OpenAI chatbot functionality and a plethora of helpful tools, I help make your everyday tasks easier. Whether it's setting reminders, share expenses in a group, or looking up information, I am here to help you streamline your daily life. So let's get started!
This plugin-based bot for @matrix-org is written in python using
matrix-nio, supporting end-to-end-encryption out of the box.
It's based on the lovely nio-smith by @alturiak and nio-template by @anoadragon453.
Pull Requests and feedback welcome. :-)
aichat: interact with OpenAI's chat-based models, including GPT. (README.md, Contributed by JimmyPesto)cashup: settle expenses among a group (README.md, Contributed by JimmyPesto)dates: stores dates and birthdays, posts reminders (README.md, Contributed by @alturiak)echo: echoes back text following the command. (README.md, Contributed by @alturiak)federation_status: Checks federation-status of all connected homeservers (README.md, Contributed by @alturiak)help: lists all available plugins. If called with a plugin as parameter, lists all available commands (README.md, Contributed by @alturiak)manage_bot: Various commands to manage the bot interactively. (README.md, Contributed by @alturiak)meter: Plugin to provide a simple, randomized meter (README.md, Contributed by @alturiak)oracle: predicts the inevitable future (german, sorry) (README.md, Contributed by @alturiak)pick: Pick a random item from a given list of items. (README.md, Contributed by @alturiak)quote: Store conversations as quotes to be displayed later. (README.md, Contributed by @alturiak)roll: Roll one or more dice. The trigger is 'roll'. (README.mde, Contributed by @alturiak)sample: Collection of several sample commands to illustrate usage and maybe serve as a plugin template. (README.md, Contributed by @alturiak)spruch: Posts a random quote by more or less famous persons. (german, sorry) (README.md, Contributed by @alturiak)translate: Provide translations of all room-messages via Google Translate (README.md, Contributed by @alturiak)wiki: Lookup keywords in various online encyclopedias. (README.md, Contributed by @alturiak)wissen: Post a random or specific entry of the database of useless knowledge. (german, sorry) (README.md, Contributed by @alturiak)xkcd_comic: Post a xkcd-comic as image or url. (README.md, Contributed by @alturiak)
Note:
- Automatic loading of plugins can be configured by allow and deny list in the bot's configuration.
- List of plugins might be extended by plugins from nio-smith by @alturiak.
See docs/PLUGINS.md for further details on plugin capabilities.
- ✔ configurable command-prefix
- ✔ fuzzy command matching (for the autocorrect-victims among us)
- ✔ silently ignores unknown commands to avoid clashes with other bots using the same command prefix
- ✔ dynamic population of
help-command with plugins valid for the respective room - ✔ auto join channels on invite (can be restricted to specified accounts)
- ✔ resilience against temporary homeserver-outages (e.g. during restarts)
- ✔ resilience against exceptions caused by plugins
- ✔ simple rate-limiting to avoid losing events to homeserver-side ratelimiting
- ❌ cross-signing support
- ❌ user-management
It is recommended to run AssistantNio using docker compose. docs/SETUP_DOCKER.md contains a short guide on getting you started.
If you really want to run AssistantNio on your host system, follow docs/SETUP_NATIVE.md.
Don't mix docker and native execution based on the same config file and the same device_id/device_name.
If you really need to execute the code locally (eg. for development) create an additional data directory and config.yaml file.
Please see docs/STRUCTURE.md for a description of the project structure and included files.