Skip to content

Simula ​

A local Telegram Bot API simulation environment for building, testing, and debugging Telegram bots with realtime runtime simulation and full API compatibility.

It provides a fully controlled local runtime that replaces the official Telegram Bot API server during development, enabling safe and isolated bot testing without relying on production Telegram infrastructure.

Explore the source code on GitHub → https://github.com/laraXgram/Simula


Introduction ​

Chat interface

Simula acts as a drop-in development-time replacement for the official Telegram Bot API server and client, without requiring any modifications to existing bot implementations.

It allows developers to build and test Telegram bot integrations locally using any programming language, framework, or bot library. Instead of communicating with production Telegram services during development, bots interact with the Simula runtime, enabling faster iteration, safer debugging, and fully controlled testing workflows.

The simulation environment also supports experimentation with premium Telegram capabilities and Telegram Stars payment flows, which normally require real accounts and live transactions. These scenarios can be tested locally inside Simula without performing actual payments or interacting with production Telegram services, making it especially useful for integration testing, framework development, and advanced bot feature validation.

Simula is designed to isolate development workflows from production Telegram infrastructure while maintaining API compatibility.


Architecture Overview ​

Simula provides a local Telegram Bot API-compatible runtime consisting of:

  • a simulated Bot API server
  • a Telegram-like simulated client interface with support for web and upcoming desktop clients
  • a realtime observability console
  • a documentation-driven API scraper and code generator

Together, these components create a controlled development environment for testing Telegram bot integrations without interacting with production Telegram services.


Key Capabilities ​

Simula provides a complete local Bot API simulation workflow including:

  • simulated Telegram client interface
  • local Bot API server runtime
  • realtime update streaming
  • webhook and polling testing support
  • Telegram Stars payment flow simulation
  • premium feature experimentation
  • structured runtime observability console
  • reproducible Bot API interaction tracing
  • trace bundle export/import for reproducible debugging

Use Cases ​

Simula is especially useful for:

  • Telegram bot framework development
  • webhook integration debugging
  • Telegram Stars payment workflow testing
  • premium feature experimentation
  • offline bot development environments
  • CI integration testing
  • reproducible Bot API interaction debugging

Realtime Debug Console ​

Debug console

Simula provides a built-in realtime observability console for inspecting Bot API interactions end-to-end during development.

The debug console exposes a structured view of the runtime communication pipeline between bots and the simulated Telegram environment, allowing developers to trace requests, inspect responses, and monitor update delivery as they occur.

Available tooling includes:

  • realtime request and response timeline visualization
  • webhook delivery inspection with status filtering
  • live websocket update stream monitoring
  • structured JSON inspectors for payload analysis
  • side-by-side request vs response diff viewer
  • trace bundle export and import for reproducible debugging sessions

Trace bundles capture a portable snapshot of the runtime state, including:

  • request/response logs
  • websocket update streams
  • selected bot token context
  • active Bot API base URL
  • export timestamps

These bundles can be shared across environments to reproduce integration issues, support bug reports, and perform offline investigation without requiring access to the original runtime instance.


Download ​

Get the latest prebuilt release for local development and testing.

VersionPlatformAction
LatestWebDownload

Quick Start ​

Web ​

Download and extract the release package, then start both services using the included launcher:

Extract:

simula-web.zip

Run:

sh
run-web.sh
sh
run-web.bat

After startup:

ServiceAddress
Clienthttp://127.0.0.1:8888
APIhttp://127.0.0.1:8081
Debug Consolehttp://127.0.0.1:8888/debug

Both API and client start automatically. No external Telegram connectivity is required during development when using the Simula runtime.

Bots can connect to the Simula API endpoint using existing Telegram Bot API-compatible implementations without any code changes.


Docker Profiles ​

Simula ships with structured Docker environments for different workflows.

Release Profile ​

Production-like runtime:

./scripts/release-up.sh

Manual equivalent:

docker compose --profile release run --rm scraper
docker compose --profile release up -d --build api-server client

Stop services:

docker compose --profile release down

Dev Profile ​

Hot-reload environment for active development:

docker compose --profile dev up --build

Test Profile ​

Run quality checks:

docker compose --profile test run --rm api-server-test
docker compose --profile test run --rm client-test

Scraper Profile ​

Scrape the official Telegram Bot API documentation and regenerate strongly-typed Rust and TypeScript bindings used by the simulator runtime.

docker compose --profile scraper run --rm scraper

Outputs:

  • Rust bindings
  • TypeScript bindings

Runtime Data Persistence ​

Runtime data is stored using Docker volumes:

VolumePurpose
api-dataSQLite + runtime API state
api-filesuploaded media

Backups stored locally:

backups/

Backup ​

./scripts/backup.sh

Restore ​

Latest archive:

./scripts/restore.sh

Specific archive:

./scripts/restore.sh simula_YYYYMMDD_HHMMSS.tgz

IMPORTANT

Stop running services before restore.


Local Native Development ​

Scraper ​

cd scraper
pip install -r requirements.txt
python src/scraper.py
python src/generator.py

API Server ​

cd api-server
cargo run

Client ​

cd client
npm install
npm run dev

Released under the MIT License.