Skip to content

JimmyPesto/nio-smith

 
 

Repository files navigation

Status: Archived

This fork is no longer maintained. See the original project for updates.

AssistantNio

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. :-)

Included Plugins

  • 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:

See docs/PLUGINS.md for further details on plugin capabilities.

Features

  • ✔ 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

Setup

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.

Project Structure

Please see docs/STRUCTURE.md for a description of the project structure and included files.

About

a modular bot for @matrix-org, written in python using matrix-nio, supporting end-to-end-encryption out of the box

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 100.0%