Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/grammyjs/grammy

The Telegram Bot Framework.
https://github.com/grammyjs/grammy

bot deno javascript nodejs telegram telegram-bot typescript

Last synced: 3 days ago
JSON representation

The Telegram Bot Framework.

Awesome Lists containing this project

README

        

grammY

# The Telegram Bot Framework

[![Bot API](https://img.shields.io/badge/Bot%20API-8.1-blue?logo=telegram&style=flat&labelColor=000&color=3b82f6)](https://core.telegram.org/bots/api)
[![Deno](https://shield.deno.dev/x/grammy)](https://deno.land/x/grammy)
[![npm](https://img.shields.io/npm/v/grammy?logo=npm&style=flat&labelColor=000&color=3b82f6)](https://www.npmjs.org/package/grammy)
[![All Contributors](https://img.shields.io/github/all-contributors/grammyjs/grammy?style=flat&labelColor=000&color=3b82f6)](#contributors-)

## _[docs.](https://grammy.dev) [reference.](https://grammy.dev/ref) [chat.](https://telegram.me/grammyjs) [news.](https://telegram.me/grammyjs_news)_

**grammY makes it easy to create Telegram bots.** Both for beginners and at scale.

You want grammY because it is easy to use. It is very powerful and always up to date. It has the best [documentation](https://grammy.dev) in town. It is extremely efficient and scales up effortlessly. It has a thriving ecosystem of plugins, a friendly community chat, seamless integrations with web frameworks and databases, and so much more.

Are you ready? πŸ€–πŸš€

Bots are written in [TypeScript](https://www.typescriptlang.org/) (or JavaScript) and run on [Node.js](https://nodejs.org/) or [Deno](#deno-support).

## Quickstart

> If you are new to Telegram bots, read the official [Introduction for Developers](https://core.telegram.org/bots) written by the Telegram team.

Visit [@BotFather](https://t.me/BotFather) and create a new bot. You will obtain a **bot token**.

Create a new directory and run

```bash
npm install grammy
```

inside it. Then create a file `bot.js` with this content:

```ts
const { Bot } = require("grammy");

// Create a bot object
const bot = new Bot(""); // <-- place your bot token in this string

// Register listeners to handle messages
bot.on("message:text", (ctx) => ctx.reply("Echo: " + ctx.message.text));

// Start the bot (using long polling)
bot.start();
```

Now you can run the bot via

```bash
node bot.js
```

and it will echo all received text messages.

Congrats! You just wrote a Telegram bot :)

## Going Further

grammY has an excellent [documentation](https://grammy.dev), and an [API Reference](https://grammy.dev/ref). It even integrates with your code editor, e.g. [VS Code](https://code.visualstudio.com/). You can hover over any element of grammY to get a detailed description of what that thing does or means.

If you are still stuck, just join the [Telegram chat](https://t.me/grammyjs) and ask for help. People are nice there and we appreciate your question, no matter what it is :)

Here are some more resources to support you:

## Resources

### [grammY website](https://grammy.dev)

β€”main project website and documentation.
Gets you started and explains all concepts.

### [grammY API reference](https://grammy.dev/ref)

β€”reference of everything that grammY exports.
Useful to look up descriptions about any element of grammY.

### [grammY examples](https://github.com/grammyjs/examples)

β€”repository full of example bots.
Includes a setup to easily run any of them.

### [Awesome grammY](https://github.com/grammyjs/awesome-grammY)

β€”list of awesome projects built with grammY.
Helpful if you want to see some real-world usage.

### [grammY chat](https://t.me/grammyjs)

β€”The chat where you can ask any question about grammY or bots in general.
We are also open for feedback, ideas, and contributions!

The Russian community chat can be found [here](https://t.me/grammyjs_ru).

### [grammY news](https://t.me/grammyjs_news)

β€”The channel where updates to grammY and the ecosystem are posted.
We are also [on Twitter](https://twitter.com/grammy_js).

### [Telegram Bot API Reference](https://core.telegram.org/bots/api)

β€”documentation of the API that Telegram offers, and that grammY connects to under the hood.

## Deno Support

All grammY packages published by [@grammyjs](https://github.com/grammyjs) run natively on [Deno](https://deno.land). We are compiling every codebase to still run on Node.js.

However, given that most bot developers are still using Node.js, all documentation is written Node.js-first. We may migrate it if Deno overtakes Node.js. If you are already on Deno today, import grammY from [`https://deno.land/x/grammy/mod.ts`](https://deno.land/x/grammy).

You may also be interested in [why we support Deno](https://grammy.dev/resources/faq.html#why-do-you-support-deno).

## JavaScript Bundles

The grammY core package in this repository is available as a JavaScript bundle via .
This lets you transpile all published versions including current `main` branch to standalone JavaScript files.
For example, the most recent source on `main` is available from .

Being compatible with browsers is especially useful for running bots on Cloudflare Workers.
For this reason, we also include a web bundle in our npm package.
You can simply do `import { Bot } from "grammy/web"`.

## [Contribution Guide Β»](./CONTRIBUTING.md)

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



KnorpelSenf
KnorpelSenf

πŸ€” πŸ’» πŸ“– 🎨 πŸ’‘ ⚠️ πŸ”Œ πŸ“¦ πŸ‘€ πŸ§‘β€πŸ« πŸ“† πŸš‡ πŸ”Š ️️️️♿️ πŸ“’
Heero
Heero

πŸ”Œ πŸ““ πŸ’‘ πŸ“– πŸ‘€ πŸ’» πŸ€”
Wojciech Pawlik
Wojciech Pawlik

πŸ€” πŸ‘€ πŸš‡ πŸ“¦ πŸ”§
Alessandro Bertozzi
Alessandro Bertozzi

πŸ“–
trgwii
trgwii

πŸ’» πŸ‘€
KnightNiwrem
KnightNiwrem

πŸ’» πŸ› πŸ”Œ πŸ“– πŸ’‘ πŸ‘€ πŸ§‘β€πŸ«
Muthu Kumar
Muthu Kumar

πŸ‘€
EdJoPaTo
EdJoPaTo

πŸ”Œ πŸ“– πŸ€” πŸ‘€ πŸ› πŸ’»
Amir Zouerami
Amir Zouerami

πŸ“– πŸ”Œ πŸ’‘


Roj
Roj

πŸ“– πŸ‘€ πŸš‡ 🌍 πŸ’» πŸ€” πŸ§‘β€πŸ« πŸ’‘
jokasimr
jokasimr

πŸ›
Ciki Momogi
Ciki Momogi

πŸ“– 🌍
AndreoliBR
AndreoliBR

πŸ‘€
Kirill Loskutov
Kirill Loskutov

πŸ“– πŸ› πŸ€” 🎨 πŸ’¬ πŸ‘€ πŸ’» πŸ”Œ
Andrew Lane
Andrew Lane

πŸ› πŸ‘€
code-withAshish
code-withAshish

πŸ“– πŸ’¬ πŸ› πŸ‘€
Stephane Mensah
Stephane Mensah

πŸ› πŸ”Œ
Asaku01
Asaku01

πŸ“–


ppsimn
ppsimn

πŸ›
Satont
Satont

πŸ”Œ πŸ“–
deptyped
deptyped

πŸ’‘ πŸ“– βœ… πŸ› 🌍
Jacek Nowacki
Jacek Nowacki

πŸ“– πŸ’» πŸ› πŸ‘€ πŸ€”
Outvi V
Outvi V

πŸ’»
Ikko Ashimine
Ikko Ashimine

πŸ“–
Yevhen Denesiuk
Yevhen Denesiuk

πŸ‘€ πŸ› πŸ’»
prastian
prastian

πŸ› πŸ’»
Sayem Chowdhury
Sayem Chowdhury

πŸ€”


kospra
kospra

πŸ€” πŸ’»
Chimit
Chimit

πŸ“–
Calsi
Calsi

πŸ“–
Jonas Zohren
Jonas Zohren

πŸ› πŸ’»
linbuxiao
linbuxiao

πŸ“– 🌍
JiquanWang99
JiquanWang99

πŸ“– 🌍
Borhan Hafez
Borhan Hafez

πŸ”Œ
WingLim
WingLim

πŸ“– 🌍 πŸ’» πŸ”Œ πŸ€”
taotie111
taotie111

πŸ“– 🌍


Merlin
Merlin

πŸ“–
Darvesh
Darvesh

πŸ› πŸ’» πŸ‘€
dcdunkan
dcdunkan

πŸ› πŸ’» πŸ”Œ πŸ‘€ πŸ“– πŸ€” πŸš‡ πŸ”§ πŸ§‘β€πŸ« 🚧
Kid
Kid

πŸ“– 🌍
Slava Fomin II
Slava Fomin II

πŸ› πŸ“–
Kiko Beats
Kiko Beats

πŸ“–
Vsevolod
Vsevolod

πŸ’» πŸ€” πŸ‘€
Habemuscode
Habemuscode

πŸ‘€ πŸ“– 🌍 🚧
Nikita Kolmogorov
Nikita Kolmogorov

πŸ”Œ


Vitaliy Meshchaninov
Vitaliy Meshchaninov

πŸ› πŸ’»
Дилян ΠŸΠ°Π»Π°ΡƒΠ·ΠΎΠ²
Дилян ΠŸΠ°Π»Π°ΡƒΠ·ΠΎΠ²

πŸ› πŸ’»
lmx-Hexagram
lmx-Hexagram

πŸ“–
Ilya Semenov
Ilya Semenov

πŸ€” πŸ‘€ πŸ’»
abdollahzadehAli
abdollahzadehAli

πŸ“– πŸ’‘
Saeed Nasiri
Saeed Nasiri

πŸ“–
Hesoyam
Hesoyam

πŸ“–
yrzam
yrzam

πŸ›
drmikecrowe
drmikecrowe

πŸ‘€


Martin
Martin

πŸ“– πŸ› πŸ‘€
Pavel
Pavel

πŸ’‘
Thor ι›·η₯ž Schaeff
Thor ι›·η₯ž Schaeff

πŸ’‘
x066it
x066it

πŸ› πŸ‘€
kolay
kolay

πŸ‘€
Evgeny Nepomnyashchiy
Evgeny Nepomnyashchiy

πŸ‘€
Ananta Krsna dasa
Ananta Krsna dasa

πŸ“–
Mighty Ali
Mighty Ali

πŸ’» πŸ‘€ πŸ€”
δΈ‰δΈ‰
δΈ‰δΈ‰

πŸ› πŸ’»


Roz
Roz

πŸ› πŸ’» πŸ‘€ πŸš‡ πŸ€” πŸ§‘β€πŸ« πŸ”Œ
Dani Haro
Dani Haro

πŸ’» πŸ”Œ πŸ“–
Ryukaizen
Ryukaizen

πŸ“–
Alisher Ortiqov
Alisher Ortiqov

πŸ“–
Tony Tkachenko
Tony Tkachenko

πŸ“–
Ra
Ra

πŸ’»
sartoshi-foot-dao
sartoshi-foot-dao

πŸ“–
Yoel Navas E.
Yoel Navas E.

πŸ€”
Vitor Gomes
Vitor Gomes

πŸ› πŸ’»


Aditya
Aditya

πŸ› πŸ‘€
Udit Karode
Udit Karode

πŸ‘€
Mike RockΓ©tt
Mike RockΓ©tt

πŸ‘€ πŸ›
Srinivasa IK Varanasi
Srinivasa IK Varanasi

πŸ’»
abdoo9
abdoo9

πŸ› πŸ’» πŸ‘€ πŸ“–
ak4zh
ak4zh

πŸ‘€ πŸ€” πŸ’»
Nikolay Lapshin
Nikolay Lapshin

πŸ’»
Aquatica
Aquatica

πŸ“– πŸ’¬
Fa Dzikri
Fa Dzikri

πŸ‘€ πŸ“– 🌍


Chandler Lattin
Chandler Lattin

πŸ’» πŸ‘€ πŸ”Œ
Sergey Parfenyuk
Sergey Parfenyuk

πŸ›
Γ‰merson Felinto
Γ‰merson Felinto

πŸ›
Petr Stankin
Petr Stankin

πŸ›
Maxim Lebedev
Maxim Lebedev

πŸ€” πŸ’»
Madnex
Madnex

πŸ“–
Svyatoslav Tupchienko
Svyatoslav Tupchienko

πŸ’»
Vladislav Deryabkin
Vladislav Deryabkin

πŸ› πŸ’» πŸ‘€
Kashyap Sharma
Kashyap Sharma

πŸ’‘


AlexOwl
AlexOwl

πŸ› πŸ’»
Shrimadhav U K
Shrimadhav U K

πŸ’»
Binamra Lamsal
Binamra Lamsal

πŸ€”
gertminov
gertminov

πŸ“– βœ…
Stephan Psaras
Stephan Psaras

πŸ›
shevernitskiy
shevernitskiy

πŸ› πŸ‘€ πŸ’»
mrmaster009
mrmaster009

πŸ“–
Andrey Zontov
Andrey Zontov

πŸ› πŸ’» πŸ’¬ πŸ€” πŸ“– 🌍
Abbass Al-Musawi
Abbass Al-Musawi

πŸ“– πŸ› πŸ’»


ArunR
ArunR

πŸ› πŸ’»
NDA
NDA

πŸ› πŸ€” πŸ’»
MatyiFKBT
MatyiFKBT

πŸ“–
Chris Andrew C. L.
Chris Andrew C. L.

πŸ› πŸ’» πŸ‘€
Islam Kiiasov
Islam Kiiasov

πŸ’»
Shane Avery Sistoza
Shane Avery Sistoza

πŸ€” πŸ’» ⚠️
Maicol
Maicol

πŸ’»
Nazar Antoniuk
Nazar Antoniuk

πŸ“– 🌍 🚧
Aleksei Ivanov
Aleksei Ivanov

πŸ‘€


Vladislav Ponomarev
Vladislav Ponomarev

⚠️ πŸ’» πŸ“¦
Louie Tan
Louie Tan

πŸ‘€
Leandro Vargas
Leandro Vargas

πŸ› πŸ’»
Sean Yap
Sean Yap

πŸ› πŸ’»
Sergey Solovev
Sergey Solovev

πŸ€” πŸ‘€
Sree (Taylor's Version)
Sree (Taylor's Version)

πŸ› πŸ’»
Yaroslav Vovchenko
Yaroslav Vovchenko

πŸ› πŸ’»
gabe
gabe

πŸ‘€
Lavrentiy Rubtsov
Lavrentiy Rubtsov

πŸ“–


Josh Gillies
Josh Gillies

πŸ’»
Uladzislau Hramyka
Uladzislau Hramyka

πŸ›
Gabriele Belluardo
Gabriele Belluardo

πŸ› πŸ’»
Dim Chen
Dim Chen

πŸ› πŸ’»
fwqaaq
fwqaaq

πŸ€” πŸ’»
Janek Szynal
Janek Szynal

πŸ€”
Alexander Mordvinov
Alexander Mordvinov

πŸ€”
Ash
Ash

πŸ‘€
Winston H.
Winston H.

πŸ€” πŸ’» πŸ‘€ ⚠️


Hero Protagonist
Hero Protagonist

πŸ’» πŸ› πŸ€” πŸ”Œ
Mobin Askari
Mobin Askari

πŸ”Œ
Ubertao
Ubertao

πŸ€” πŸ’»
Grigory
Grigory

πŸ€” πŸ’» πŸ“–
aleveha
aleveha

πŸ’»
barinbritva
barinbritva

πŸ‘€
Lyudmil Ivanov
Lyudmil Ivanov

πŸ’‘
lexomis
lexomis

πŸ‘€
Andrew Sologor
Andrew Sologor

πŸ‘€


rayz
rayz

πŸ’¬ πŸ€” πŸ’»
Zaid
Zaid

πŸ”§
Mat Milbury
Mat Milbury

πŸ› πŸ’»
Shibo Lyu
Shibo Lyu

πŸ’»
Mased
Mased

🌍 πŸ“–
Artem Prokop
Artem Prokop

πŸ““
SΓ©rgio Rebelo
SΓ©rgio Rebelo

πŸ‘€
Igor Katsuba
Igor Katsuba

πŸ€” πŸ’»
Oyatillo
Oyatillo

πŸ‘€ πŸ› πŸ’»


Mordechai Dror
Mordechai Dror

πŸ‘€
mahovich
mahovich

πŸ“–

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
Contributions of any kind welcome!