Documentation menu
Getting started
New in v2.0
Feature deep dives
Reference
Features
Features & Capabilities
Every verified capability: multi-source routing, per-task content rules, AI rewriting, ordered delivery, observability, ten-language UI and DevOps tooling.
Verified against the checkout built for v2.2.4 · updated 20 Oct 2026
On this page
AutoTelegramForward routes messages between Telegram chats: it reads from source chats you authorize, decides what should go out, rewrites what needs rewriting, and delivers it durably to one or many targets. This page lists every capability, grouped by the subsystem that owns it.
Honest status
What is done, what is partial, what is not built
Every row below is read from the repository's own feature catalog at build time — 18 catalogued capabilities with their completion condition and the entry points that implement them. Nothing on this page is asserted by the website.
14 of 18 catalogued capabilities
2 of 18 catalogued capabilities
2 of 18 catalogued capabilities
- Create forwarding ruleclients: web · bot · mobile · miniapp
- Update forwarding rule (optimistic concurrency)
- Pause/resume rule with durable queue semantics
- Durable message forwarding pipeline
- Branding hop (A -> C -> B) composed with every message transform
- SHA-256 content fingerprint deduplication
- Keyword-triggered reply add-on
- Central Logger gRPC microservice
- End-to-end correlation ID propagation
- Web DevOps log explorer with live stream, filters, stats, purge
- Field-aware secret redaction in logs/errors
- Dead-letter queue inspect/replay/purge with tenant scoping
- Telegram timeout classified as OUTCOME_UNCONFIRMED (never silent success/failure)
- Service topology live health probing
Database query error/latency events
Tracked in the catalog as PARTIALLY_IMPLEMENTED with an entry point that does not exist yet.
Transactional audit / outbox for business mutations
Tracked in the catalog as PARTIALLY_IMPLEMENTED with an entry point that does not exist yet.
Slow-query threshold monitoring with configurable limits
Tracked in the catalog as NOT_IMPLEMENTED with an entry point that does not exist yet.
Bounded-label metrics aggregation (per-feature latency, error rates)
Tracked in the catalog as NOT_IMPLEMENTED with an entry point that does not exist yet.
New in v2.2.4
The nine deep dives below cover everything that changed in the v2.0 line — read them in order if you are upgrading from an older release.
All features
Core engine
Content pipeline
Capability parity
Same capabilities, four clients
Bot UI, dashboard, mobile app and the REST API are checked against each other, not just documented.
| Capability | Bot UI | Web dashboard | Mobile app | REST API |
|---|---|---|---|---|
| Channel / group / PV forwarding | ||||
| Multi-source → multi-target tasks | ||||
| Interactive login (phone / OTP / 2FA) | ||||
| Content policy (cleaner, filters, regex) | ||||
| Per-source / per-target policy overrides | ||||
| AI rewriting + prompt templates | ||||
| Deduplication, reply & edit sync | ||||
| Delays, scheduling & auto-delete | ||||
| Localization (10 languages) | ||||
| Log explorer, stats & DLQ control | ||||
| Live topology & health probing | ||||
| Encrypted backup & migration (.atf) |
Verified capability list
Generated from the checkout at build time (18 catalogued behaviours, 78 gRPC methods, 29 CLI command groups).
Routing & Task Model
- One task = M source chats → N target chats (lists, not single values)
- Per-task content rules stored as metadata["content_policy"] — no schema migration needed
- Per-source and per-target policy overrides that can only add constraints, never relax them
- Primary source/target mirror always kept in step by the sanctioned set_targets() write path
- Copy mode (clean, no forward tag) vs Direct forward (native Telegram quote header)
- Forum topic targeting via message_thread_id, per target
- Priority ordering, execution order and per-task pause/resume
Content Policy Engine
- Keyword blacklist and whitelist with any / all / phrase matching modes
- Word-boundary matching (cat never matches concatenate) with Unicode folding
- Persian/Arabic normalisation so a key typed on one keyboard catches text from another
- Link blocking and link stripping, plus ReDoS-refused regex_block / regex_require patterns
- Ordered find → replace pairs (literal or re: regex) applied in a single deterministic pass
- Length gates and media allow/deny gates evaluated cheapest-first
Transformation & Templates
- 12 validated shortcodes for headers and footers, interpolated per delivery
- Dynamic attribution hyperlinks for public and private source channels
- Emoji, extra-blank-line and inline-keyboard-button cleaning
- UTF-16 entity offset preservation so bold and italic spans survive cleaning
AI Rewriting
- Per-task enable/disable toggle that never blocks delivery when the model is unreachable
- OpenAI, Anthropic, Gemini, Groq, DeepSeek and any OpenAI-compatible base URL
- Built-in prompt presets: Professional Clean, Persian↔English, Executive Summarizer, Format Enhancer
- Custom prompt templates with version history, validation and preview/test endpoints
- Temperature, model, target language and system/user prompt all set per configuration
Observability & Control
- Central Logger microservice with queryable history (service, level, search, since, limit)
- Log explorer in web and mobile: live stream, filters, aggregate stats and tenant-scoped purge
- Attributable history — every entry carries its service, owner and correlation id
- Dead-letter queue inspect, replay and purge, tenant-scoped
- OUTCOME_UNCONFIRMED is a first-class outcome — a Telegram timeout is never silent
- Field-aware [REDACTED] filtering on every log line and error trace
- Live service topology probing with latency, version and per-service reachability
Delivery Guarantees
- Durable queue with lease-based workers, exponential backoff and jitter
- Ordered delivery lanes — a burst is delivered in the order it was posted
- Atomic channel cursor persistence: the poller no longer races the connection
- SHA-256 content and album fingerprint deduplication
- Reply synchronisation and edit/delete synchronisation with a max_time_edit guard
- FloodWait detection with automatic pause and resume of the affected account
- Auto-disable of a task when the account loses write access (CHAT_WRITE_FORBIDDEN)
Clients & Interfaces
- Telegram Bot UI with button-driven panels, submenus and FSM wizards
- React dashboard served by the Rust Axum gateway with embedded assets
- Flutter Android/iOS client exposing the same system surface as the dashboard
- Contract gate: shared fixtures keep web and mobile from drifting apart
- Telegram Mini App authentication alongside Bearer JWT for the REST API
DevOps & Operations
- 29 CLI command groups covering setup, rules, logs, docker, k8s, certs and data
- atf validate — read-only checks usable as a CI pre-deploy gate (--strict, --runtime, --deep)
- atf doctor and atf system upgrade: git pull → build → recreate → alias repair → health gate
- Boot persistence via systemd / launchd / Task Scheduler (atf system service install)
- Portable single-file CLI: atf release portable → dist/atf.pyz (standard library only)
- Container environment contract check that detects a container older than .env
Security & Multi-Tenancy
- Fail-closed tenant isolation on every read and write, keyed on immutable numeric user ids
- Zero cross-tenant visibility across Bot, Web, Mobile, REST and gRPC
- AES-256-GCM encryption at rest for sessions, bot tokens, AI keys and backups
- Encrypted .atf export/import bundles for clone and migration
- Private gRPC network: core and logger bind to internal interfaces only
Localization
- 10 languages with mandatory 1:1 catalog parity (en, es, fa, fr, id, it, pt, ru, uz, zh)
- Per-user language resolution with strict English fallback — never Persian
- RTL layout for Persian and Arabic-script content in web, mobile and bot UI
- Automated cross-language audits wired into the CLI validator and CI
Shortcode reference
| Shortcode | Meaning | Rendered example |
|---|---|---|
[[ORIGIN_TEXT]] | Message body after the cleaner and policy passes | Breaking market report... |
[[ORIGIN_NAME]] | Title of the source channel or supergroup | Crypto News Daily |
[[ORIGIN_USERNAME]] | Public @handle of the source channel | cryptonewsdaily |
[[ORIGIN_USERID]] | Numeric Telegram id of the sender | 10842918 |
[[ORIGIN_POST_ID]] | Original post id inside the source channel | 4921 |
[[ORIGIN_CHAT_ID]] | Numeric id of the source channel | -1001695513745 |
[[ORIGIN_POST_DATE]] | Original publication timestamp (UTC) | 2026-10-16 14:00 UTC |
[[ORIGIN_NAME_URL]] | Markdown hyperlink back to the original post | [Crypto News](https://t.me/cryptonewsdaily/4921) |
[[SOURCE_NAME]] | Alias for the source channel title | Crypto News Daily |
[[SENDER_CHAT]] | Chat id the post was sent in | -1001695513745 |
[[FORWARD_FROM_CHAT]] | Original chat when the incoming post was itself a forward | Reuters Telegram |
[[FROM_USER]] | Display name of the original author | John Doe |
Want to see them rendered?
The playground runs the cleaner, the shortcode interpolation and the delivery preview entirely in your browser.
Open the playground