Skip to content

LaraGramThe AI-ready, full-stack Telegram framework

Bots, MTProto userbots, Telegram Mini Apps, APIs, web pages and admin panels — all in one expressive PHP framework, all in one codebase.

LaraGram

One Framework, Every Telegram Surface ​

The same listens, models, queues and templates power every part of your project. Write a bot, add a userbot, open a Mini App and serve an API or admin panel — without switching frameworks or copying code between projects.

php
// listens/bot.php — answers every message: streams the reply,
// reads photos and documents, transcribes voice messages.
use App\Ai\Agents\SupportAgent;
use LaraGram\Support\Facades\Bot;

Bot::agent(SupportAgent::class);
php
// listens/bot.php
use LaraGram\Request\Request;
use LaraGram\Support\Facades\Bot;

Bot::onText('say {text}', function (Request $request, string $text) {
    $request->sendMessage(chat()->id, $text);
});
php
// listens/client.php
use LaraGram\MTProto\Facades\Client;
use LaraGram\MTProto\Foundation\ClientRequest;

Client::onText('hello', function (ClientRequest $request) {
    $request->sendMessage(peer: $request->chatId(), message: 'hi 👋');
});
php
// routes/web.php — every request carries validated Telegram init data
use App\Http\Controllers\ProfileController;
use LaraGram\Support\Facades\Route;

Route::middleware('telegram')->group(function () {
    Route::get('/', [ProfileController::class, 'show'])->name('profile');
    Route::post('/profile', [ProfileController::class, 'update']);
});
php
// routes/api.php — tokens, OAuth2 and Mini Apps through one guard
use LaraGram\Http\Request;
use LaraGram\Support\Facades\Route;

Route::get('/user', function (Request $request) {
    return $request->user();
})->middleware('auth:citadel');
php
// routes/web.php — a Luna page rendered by React, Vue or Svelte
use App\Models\User;
use LaraGram\Luna\Luna;
use LaraGram\Support\Facades\Route;

Route::middleware('auth')->prefix('admin')->group(function () {
    Route::get('/users', fn () => Luna::render('Admin/Users', [
        'users' => User::latest()->paginate(20),
    ]));
});

Get Started in a Minute ​

shell
composer global require laraxgram/installer

laragram new my-bot

cd my-bot
php laragram dev

The installer sets up your bot token and webhook, and optionally a local Bot API server, MTProto, a Mini App starter kit, API routes, LaraGram Brain and Surge. The dev command then runs everything your application needs side by side.

Released under the MIT License.