Telegram Bridge #

Based on mautrix-telegram. Mirrors every Telegram chat you're in as a Matrix room, with full puppeting — what you send from Matrix looks native on the Telegram side.

Prerequisites #

  • Meldry plan: Pro or Business (Telegram counts as one of your bridge slots)
  • A Telegram account with a phone number (required — Telegram's API doesn't have a way around this)
  • Your Telegram phone number, used to receive the login code
  • Optional: a bot token from @BotFather if you also want relay-mode support for non-linked Matrix users

Enable the bridge #

  1. Open your Meldry dashboard.
  2. Go to Server → Bridges.
  3. Find Telegram and click Enable.
  4. Wait ~10 seconds for the bridge container to boot. The row will turn green.

The bridge now runs a bot user at @telegrambot:<your-name>.meldry.com.

  1. In your Matrix client, start a new direct message with @telegrambot:<your-name>.meldry.com.
  2. Send login.
  3. The bot asks for your phone number — reply with it in international format (e.g., +14155550001).
  4. Telegram sends a confirmation code to your existing Telegram clients (phones, desktop). Enter it in the bot DM as code 12345.
  5. If your Telegram account has 2FA enabled, the bot then asks for your 2FA password — reply with password yourpassword.
  6. You'll see: Successfully logged in as @yourhandle.

From now on, every Telegram chat you join — 1:1 DMs, groups, channels you subscribe to — will appear as a Matrix room in your client, organized under a Telegram space.

First-run tips #

  • Backfill. The bridge pulls the last ~50 messages from every chat on first run. Large groups may take a minute.
  • Contacts. Your Telegram contacts show up as Matrix users named @telegram_<id>:<your-name>.meldry.com. Their display names mirror their Telegram names.
  • Profile photos. Telegram avatars sync to Matrix avatars automatically. Changes propagate within seconds.

Sending messages #

Just type in any bridged room. The bridge forwards to Telegram in real time.

  • Text, Markdown, mentions, replies, reactions — all sync both ways.
  • Edits and deletes — also bidirectional. An edit on Matrix updates the Telegram message within a second.
  • Media — images, video, audio files, documents all work up to Telegram's 2 GB limit.
  • Stickers — Telegram stickers appear as Matrix images. Sending Matrix stickers to Telegram works if the bridge has sticker-pack config (enabled by default).
  • Voice notes — supported in both directions.
  • Polls — read-only from Matrix (you can see Telegram polls, but creating one requires using Telegram).

Starting a new chat #

To DM a Telegram contact you don't already have a room with, send the bridge bot:

pm @telegram_handle

A new Matrix room appears with that contact puppeted.

To join a Telegram group by invite link:

join https://t.me/joinchat/XYZ

Commands reference #

All commands go in your DM with @telegrambot:<your-name>.meldry.com:

CommandWhat it does
login / login-botLink your personal account / a bot token
logoutUnlink your Telegram account (deletes the puppet session)
statusShow the current login status
pm @handleOpen a DM with a Telegram user
join <link>Join a Telegram group by invite link
syncForce a resync of your chats
helpFull command list

Limitations #

  • Voice/video calls are not bridged — Telegram uses a proprietary protocol the bridge can't interact with.
  • Secret chats (Telegram's own E2EE) are not bridged, by design.
  • Premium features (bigger file uploads, emoji status, etc.) only work if your linked Telegram account has Premium.
  • Session limit. Telegram limits the number of concurrent sessions per account. Logging in via the bridge counts as one session.

Troubleshooting #

"Phone number invalid" — use international format with + and country code, no spaces or dashes.

"Confirmation code expired" — the code is valid for about a minute. Send login again to get a new one.

"Session ended on another device" — a new login on Telegram (phone, desktop) can kick the bridge's session. Re-run login.

Messages appearing delayed or out of order — usually means the bridge is catching up from a restart. Wait 30 seconds; it self-heals.

Reactions show as [BridgeBot reacted ❤] on the Telegram side — your puppet isn't authenticated. Run status and check for errors; if puppeting is disabled, re-run login from the bridge bot DM.

Unlinking #

When you want to disconnect: DM @telegrambot:<your-name>.meldry.com and send logout. The bridge will unlink your account and stop mirroring your chats. You can re-link later.

To remove the bridge entirely (and free up a bridge slot), disable it from Dashboard → Server → Bridges.

What's next #