Documentation - v0.27.0
    Preparing search index...

    Documentation - v0.27.0

    mtcute logo

    modern typescript library for mtproto
    documentation  •  api reference  •  telegram chat

    Tests CI tl layer npm

    import { TelegramClient } from '@mtcute/node'
    import { Dispatcher, filters } from '@mtcute/dispatcher'

    const tg = new TelegramClient({
    apiId: Number.parseInt(process.env.API_ID),
    apiHash: process.env.API_HASH,
    storage: 'my-account'
    })
    const dp = Dispatcher.for(tg)

    dp.onNewMessage(filters.chat('private'), async (msg) => {
    await msg.replyText('hiiii from mtcute! 🌸')
    })

    const self = await tg.start({ /* optional params */ })
    console.log(`✨ logged in as ${self.displayName}`)

    mtcute is a modern, performant and ✨ cute ✨ mtproto library and bot framework, supporting both web and nodejs.

    🤖 just starting a (user)bot? use the scaffolding tool:

    pnpm create @mtcute/bot
    

    🏭 want to integrate it into your existing nodejs app? use the nodejs package:

    pnpm add @mtcute/node
    

    ✨ building something for web? use the web package:

    pnpm add @mtcute/web
    

    🚀 using the newfangled runtimes? we've got you covered:

    • bun: bun add @mtcute/bun
    • deno: import { TelegramClient } from 'jsr:@mtcute/deno'

    learn more: guide

    • 🍰 simple: mtcute hides all the complexity and provides a clean and modern api
    • compatible: mtcute supports almost everything bot api does, and even more!
    • 🍡 lightweight: running instance uses less than 50 mb of ram
    • 🛡️ type-safe: most of the apis (including mtproto) are strictly typed to help your workflow
    • ⚙️ hackable: almost every aspect of the library is customizable, including networking and storage
    • 🕙 up-to-date: mtcute uses the latest TL schema to provide the newest features as soon as possible

    mtcute strives to:

    • be customizable enough to fit most of the possible use-cases
    • be lightweight, both in terms of runtime and bundle size
    • support (theoretically) any environment without much hassle
    • provide a solid foundation for all kinds of applications on telegram platform
    • provide a convenient high-level api for the most commonly used features

    mtcute is NOT and will never be:

    • a library for spam/flood or otherwise malicious activities
    • a fully feature-complete library - highlevel apis will never cover the entirety of the apis. feel free to contribute, though!
    • a drop-in replacement for (insert library name)
    • a teapot
    git clone https://github.com/mtcute/mtcute
    fnm use # or `nvm use`
    cd mtcute
    pnpm install --frozen-lockfile

    # generate code from tl schema
    pnpm -C packages/tl run gen-code

    some parts were based on or greatly inspired by these projects:

    thanks @dotvhs for the logo <3