Telegram bot framework for .NET

Starts like a script.
Grows like a system.

TeleFlow keeps the first command simple and the grown bot explicit: typed handlers, dependency injection, generated metadata, state, callbacks, long polling, webhooks, and direct Telegram Bot API access.

Program.cs
builder.Services.AddTelegramBot(options =>
{
    options.Token = token;
});

builder.Services.AddMemoryStateStorage();
builder.Services.AddTelegramHandlersFromAssembly(
    typeof(Program).Assembly);
builder.Services.AddLongPolling();

public sealed class StartHandler
{
    [Command("start")]
    public Task Handle(
        MessageContext ctx,
        CancellationToken ct)
    {
        return ctx.Message.AnswerAsync(
            "Hello from TeleFlow.",
            ct);
    }
}
NuGet packages Telegram chat Architecture Roadmap

Choose your path

One documentation site for different levels

Framework principles

Convenient does not have to mean hidden

TeleFlow uses normal C# handlers and normal .NET dependency injection. The recommended path generates handler metadata at build time and fails clearly when generated registration is missing.

Documentation map

Read in English or Russian