πŸ”¦ RaitoΒΆ

REPL, hot-reload, keyboards, pagination, and internal dev tools β€” all in one.

Raito is a batteries-included companion for aiogram. It removes the boilerplate from bot development: routers load themselves, change live while the bot runs, and ship with roles, pagination, multi-step scenes, keyboards, throttling and a set of in-chat developer tools.

import asyncio

from aiogram import Bot, Dispatcher
from raito import Raito


async def main() -> None:
    bot = Bot(token="TOKEN")
    dispatcher = Dispatcher()
    raito = Raito(dispatcher, "src/handlers")

    await raito.setup()
    await dispatcher.start_polling(bot)


if __name__ == "__main__":
    asyncio.run(main())

Where to startΒΆ

The documentation is organised in four parts, each answering a different need.

🐣 Tutorial

Learning-oriented. Build your first Raito bot from an empty folder and grow it step by step. Start here if you are new.

πŸ› οΈ How-to guides

Task-oriented recipes. β€œHow do I add roles / paginate a list / build a keyboard?” Short, focused answers for things you already understand.

πŸ“– Reference

Information-oriented. The generated API, configuration options and the in-chat .rt commands. Look things up here.

πŸ’‘ Explanation

Understanding-oriented. How hot-reload, request-scoped scenes and the role system actually work under the hood.

Note

New to the four-part split? It follows the DiΓ‘taxis framework: tutorials teach, how-to guides solve a task, reference describes the machinery, and explanation gives you the mental model.