ekonda
kutana
Python

The library for developing systems for messengers and social networks

Last updated May 22, 2026
75
Stars
18
Forks
4
Issues
0
Stars/day
Attention Score
31
Language breakdown
Python 99.5%
Makefile 0.5%
โ–ธ Files click to expand
README

Kutana

Kutana logo

PyPI version

The library for developing systems for messengers and social networks. Great for developing bots. Refer to example for the showcase of the library abilities.

This library uses generalized attachment types, possible actions e.t.c. for flexibility to use plugins with different backends.

Installation

python -m pip install kutana

Documentation

You can read the extended description of the library in the docs/index.md file. At the moment, the documentation is not in the best condition. If you would like to contribute to its writing, welcome to the issues.

Running

From CLI

Following command will populate application's config, add specified backends and load plugins from specified folder.

python3 -m kutana run example/config.yml

usage: kutana [-h] {init,run} ...

#

helpfull cli utility

#

positional arguments:

{init,run}

init initiate kutana project

run run kutana project using provided config (working directory will be changed to the one with config file)

#

optional arguments:

-h, --help show this help message and exit

Refer to the example config.yml for the configuration details.

From code

from kutana import Kutana
from kutana.backends import VkontakteLongpoll
from kutana.loaders import loadpluginsfrom_path

Create application

app = Kutana()

Add manager to application

app.add_backend(VkontakteLongpoll(token="VK-GROUP-TOKEN"))

Load and register plugins

for plugin in loadpluginsfrom_path("example/plugins/"): app.add_plugin(plugin)

if name == "main": # Run application app.run()

Example plugin (plugins/echo.py)

from kutana import Plugin

plugin = Plugin(name="Echo")

@plugin.on_commands(["echo"]) async def _(msg, ctx): await ctx.reply(ctx.body, attachments=msg.attachments)

If your function exists only to be decorated, you can use _ to avoid
unnecessary names.

Available backends

ยฉ 2026 GitRepoTrend ยท ekonda/kutana ยท Updated daily from GitHub