An important idea in Matrix is Interoperability. This means that Matrix is open to exchanging data and messages with other platforms using an Open Standard. We refer to the connection to other platforms as bridging.

For a thorough examination of the different methods of bridging, and a discussion of the terminology involved, check out How do I bridge thee? Let me count the ways...

Currently recommened bridges are shown in the grid below.

Quick bridging concepts

Portal rooms: these control chunks of room aliases namespace. For example, corresponds to #channelname on Freenode. In this way, Matrix users can transparently join IRC channels on Freenode. Portal rooms are typically managed by the remote network's side of the room.

Plumbed rooms: these rooms are "plumbed" into one or more specific remote rooms by configuring a bridge (which can be run by anyone). For instance, is plumbed into #matrix on Freenode, matrixdotorg/#matrix on Slack, etc. Access control for Matrix users is necessarily managed by the Matrix side of the room. This is useful for using Matrix to link together different communities.

Bridgebot-style: in this case, messages in either direction are conveyed by a bot residing on the given platform. This is a sub-optimal experience because metadata is lost. For example, all messages might be sent by the same bot, but with the message text prefixed with the name of the original sender.

Puppeting: solves the problems of Bot-based bridging by "puppeting", meaning controlling, a user on the other side of the bridge. This means that to native users, they see messages as being sent from the correct sender. Double-puppeting means this is done in both directions of the bridge. This is the most preferred way of implementing a Matrix bridge.

IRC IRC Bridge

AuthorRepoLanguageMatrix RoomMaturity team Beta

An application service gateway from for bridging between IRC networks and Matrix, written using matrix-appservice-node. You can get the code on github.

Supports dynamically bridging IRC channels on demand; synchronised user-lists, and other goodness.



AuthorRepoLanguageMatrix RoomMaturity
leonerd, Half-Shot, illicitonion, Cadair and others

This project bridges Slack to Matrix.

The bridge allows you to connect Matrix rooms and Slack channels together. It supports bridging via webhooks or via a dedicated slack integration (using the Events API). Currently the bridge supports sending text and files, with more advanced features like threading and sending direct messages coming in the future. matrix-appservice-slack is regularly hacked on and is accepting PRs for bug fixes and new features.

✓ Direct (1:1) Chats
✓ Group (‘Channel’) Chats
✗ History
✗ Typing notifications and read receipts
✓ Text Messages
✗ Formatted Text Content
✗ Image Content

When using Riot on, you can enable Slack integration per-room. Click the “Manage Integrations” (four squares) button at the top of the page.

Get it from github!


AuthorRepoLanguageMatrix RoomMaturity
Keyvan Fatehi

This is an unofficial matrix slack bridge that works by means of user puppetting.

Get your user_access_token from here:

The bridge uses that access token to connect as a client using the slack RTM API.

This technique does not require admin on the slack team; instead, the bridge is simply a custom slack client.

The bridge supports multiple teams at once, see the config.sample.json

✓ Direct (1:1) Chats
✓ Group (‘Channel’) Chats
✗ History
✓ Typing notifications (Slack → Matrix Only)
✗ Read receipts
✓ Text Messages
✓ Formatted Text Content
✓ Image Content
✓ Multi-team

matrix-puppet-slack is part of the matrix-puppet-bridge suite of puppetting bridges. It can be used for existing chats, rather than initiating new ones.



AuthorRepoLanguageMatrix RoomMaturity
Ryan Rix

Connect to RSS and Twitter feeds via Ryan Rix's feedbot!

Check it out from Ryan's git repo



AuthorRepoLanguageMatrix RoomMaturity
LeoNerd Beta

This project bridges Gitter to Matrix, via the AS API on the Matrix side, and a Gitter user on the Gitter side.

Get it from github.

✗ 1:1 Chats
✓ Group Chats
✗ Files
✗ Formatted Messages
✗ History
✗ Read Receipts
✗ Typing notifications

When using Riot on, you can enable Gitter integration per-room. Click the “Manage Integrations” (four squares) button at the top of the page.



AuthorRepoLanguageMatrix RoomMaturity

This project bridges Discord to Matrix via the Application API.

Plain Text
Formatted Messages
Presence (Discord Matrix only)
Typing notifications (Discord Matrix only)
Puppeting ( Can configure to puppet via a script)
Group/1:1 Chats

You can self host matrix-appservice-discord in order to bridge your rooms from Discord, it is also available from at



AuthorRepoLanguageMatrix RoomMaturity

This is an application service that bridges Matrix to Rocket.Chat, written in Rust.

Find it on GitHub.



AuthorRepoLanguageMatrix RoomMaturity
Keyvan Fatehi

This is a Matrix bridge for Apple iMessage. It connects your homeserver to

Find the source on GitHub.

Facebook Messenger


AuthorRepoLanguageMatrix RoomMaturity
Keyvan Fatehi

This is a puppeted Facebook bridge for Matrix.

Get it from GitHub.


AuthorRepoLanguageMatrix RoomMaturity

A Matrix-Facebook Messenger puppeting bridge. Written in Python using fbchat-asyncio and mautrix-python.


Matrix Email Bridge

AuthorRepoLanguageMatrix RoomMaturity and Open-Xchange

An application service gateway for bridging between Email and Matrix, written using Spring Boot (Java) using matrix-java-sdk. You can get the code on github.


  • Matrix to Email forwarding
  • Email to Matrix forwarding
  • Email <-> Matrix <-> Email forwarding, if several bridge users are present within a room
  • Fully configuration notification templates, per event
  • Subscription portal where E-mail users can manage their notifications

EmailBridge for matrix

A matrix-bridge written in GOlang to let you read and write your emails in matrix. You can have multiple emailaccounts in different private rooms.


  • Receiving and sending emails
  • Use markdown for writing emails
  • Viewing HTML messages
  • And many more. Visit EmailBridge

Matrix-email Bridge from taki tam

AuthorRepoLanguageMatrix RoomMaturity

This repo contains (almost) transparent matrix gateway. Following features are implemented:

  • Sending and receiving emails, both plaintext and HTML.
    Bridge will dynamically create rooms and invite matrix users/mail puppets when new message appears, see 'Usage' section.
  • Turning matrix room into something like mailing list.
  • Sending and receiving attachments (looks ugly, see end of file).

Architecture overview

+-----------+                                        +-----------+
|           |             +---------------+          |           |
|           >===AS=API====>               >===SMTP===>           |
| Matrix HS |             |  Matrix-email |          |   Email   |
|           <===Client/===<     Bridge    <===LMTP===<   Server  |
|           |   AS API    |               |          |           |
|           |             +-------A-------+          |           |
|           |                     |                  |           |
+-----------+                     |                  +-----------+
                             |Bridge DB|
                             |  (SQL)  |



AuthorRepoLanguageMatrix RoomMaturity
Gerben Droogers

A simple Android SMS (text message) <--> Matrix bridge. With this bridge you can get all your text messages on Matrix and reply to them.

Get it and report issues at github, or install from F-Droid.



AuthorRepoLanguageMatrix RoomMaturity
Tulir Beta

A Matrix-Telegram hybrid puppeting/relaybot bridge. Written in Python using Telethon.

✓ Send message content (text, formatting, files, etc..)
✓ Redact/delete messages
✓ Provide typing notifications and read receipts
✓ Read receipts (where applicable - Telegram does not support this in group chats)
✓ Images/Audio/Video/files

...and much more. Read the current feature list at

mautrix-telegram can be self hosted, and is also available at



AuthorRepoLanguageMatrix RoomMaturity

A Matrix-WhatsApp puppeting bridge. Written in Go using the Rhymen/go-whatsapp implementation of the sigalor/whatsapp-web-reveng project.

✓ 1:1 Chats
✓ Group Chats
✗ Redactions/Deletions
✓ Presence (WhatsApp → Matrix only)
✓ Read Receipts (WhatsApp → Matrix only)
✓ Typing notifications (WhatsApp → Matrix only)
✓ Plain text
✓ Formatted messages
✓ Media/files
✓ Replies

Google Hangouts


AuthorRepoLanguageMatrix RoomMaturity

A prototype Matrix<->Hangouts appservice written in Python 3.6 using asyncio.

This is a matrix appservice with the objective of being a fully featured puppeting multi-user hangouts bridge.

This bridge is implemented in Python 3.6+ using asyncio and the hangups library. This library contains an asyncio implementation of parts of the matrix client-server API and the application service API.


AuthorRepoLanguageMatrix RoomMaturity

A Matrix-Hangouts puppeting bridge. Written in Python using hangups and mautrix-python.


AuthorRepoLanguageMatrix RoomMaturity

matrix-puppet-hangouts can be self-hosted, full setup instructions are available on the repo.



AuthorRepoLanguageMatrix RoomMaturity

A Matrix<->Mastodon bot written in Java.



AuthorRepoLanguageMatrix RoomMaturity

General purpose puppeting bridges using libpurple and other backends.

This bridge is in very active development currently and intended mainly for experimentation and evaluation purposes.



AuthorRepoLanguageMatrix RoomMaturity

This is a Matrix bridge for GroupMe

You will need to acquire your Access Token from GroupMe.

Get your access token by going to and clicking the "Access Token" link in the top right.



AuthorRepoLanguageMatrix RoomMaturity

This is a Matrix bridge for Skype. It uses skype-http under the hood.



AuthorRepoLanguageMatrix RoomMaturity
Huan Li

matrix-appservice-wechaty is a new project to bridge Matrix with WeChat.


Matrix Keybase

AuthorRepoLanguageMatrix RoomMaturity
Half-Shot Alpha

A bridge that connects a user's Keybase account to their Matrix account.