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.
Portal rooms: these control chunks of room aliases namespace. For example, #freenode_#channelname:matrix.org
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, #matrix:matrix.org 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.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Matrix.org team | https://github.com/matrix-org/matrix-appservice-irc | JavaScript | Early Beta |
An application service gateway from Matrix.org 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.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
leonerd, Half-Shot, illicitonion, Cadair and others | https://github.com/matrix-org/matrix-appservice-slack | JavaScript | Beta |
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 riot.im, you can enable Slack integration per-room. Click the “Manage Integrations” (four squares) button at the top of the page.
Get it from github!
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Keyvan Fatehi | https://github.com/matrix-hacks/matrix-puppet-slack | JavaScript | Beta |
This is an unofficial matrix slack bridge that works by means of user puppetting.
Get your user_access_token
from here:
https://api.slack.com/docs/oauth-test-tokens
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.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Sorunome | https://github.com/Sorunome/mx-puppet-slack | Typescript | #mx-puppet-bridge:sorunome.de | Late Alpha |
mx-puppet-slack bridges slack and matrix together via (double)puppeting. Additionally a relay mode can be enabled.
✓ Direct (1:1) Chats
✓ Group ('Channel') Chats
✓ Plain Text
✓ Formatted Messages
✓ Media/files
✓ Redactions/Deletions
✓ Presence (Slack → Matrix only)
✓ Typing notifications (Slack → Matrix only)
✓ Replies
✓ Edits
✓ Reactions
✓ Stickers
✓ Multi-user
✓ Multi-team
✓ Initiate chats from matrix
✗ History
This bridge is part of the mx-puppet-bridge suit of puppeting bridges.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Ryan Rix | https://code.rix.si/rrix/matrix-feedbot | Python | Beta |
Connect to RSS and Twitter feeds via Ryan Rix's feedbot!
Check it out from Ryan's git repo
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
LeoNerd | https://github.com/matrix-org/matrix-appservice-gitter | JavaScript | Early 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 riot.im, you can enable Gitter integration per-room. Click the “Manage Integrations” (four squares) button at the top of the page.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Half-Shot | https://github.com/Half-Shot/matrix-appservice-discord | TypeScript | #discord:half-shot.uk | Beta |
This project bridges Discord to Matrix via the Application API.
✓ Plain Text
✓ Formatted Messages
✓ Media/files
✓ Redactions/Deletions
✓ Presence (Discord → Matrix only)
✓ Typing notifications (Discord → Matrix only)
✓ Replies
✓ Stickers
✓ Puppeting ( Can configure to puppet via a script)
✗ Group/1:1 Chats
✗ Calls
You can self host matrix-appservice-discord in order to bridge your rooms from Discord, it is also available from t2bot.io at https://t2bot.io/discord.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Sorunome | https://github.com/matrix-discord/mx-puppet-discord | Typescript | #mx-puppet-bridge:sorunome.de | Late Alpha |
mx-puppet-discord discord slack and matrix together via (double)puppeting. Additionally a relay mode can be enabled.
✓ Direct (1:1) Chats
✓ DM Group Chats
✓ Plain Text
✓ Formatted Messages
✓ Media/files
✓ Redactions/Deletions
✓ Presence (Discord → Matrix only)
✓ Typing notifications (Discord → Matrix only)
✓ Replies
✓ Edits
✓ Reactions
✓ Stickers
✓ Multi-user
✓ Friends management
✓ Initiate chats from matrix
✗ History
This bridge is part of the mx-puppet-bridge suit of puppeting bridges.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
exul | https://github.com/exul/matrix-rocketchat | Rust | Beta |
This is an application service that bridges Matrix to Rocket.Chat, written in Rust.
Find it on GitHub.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Keyvan Fatehi | https://github.com/matrix-hacks/matrix-puppet-imessage | JavaScript | Alpha |
This is a Matrix bridge for Apple iMessage. It connects your homeserver to Messages.app
Find the source on GitHub.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Keyvan Fatehi | https://github.com/matrix-hacks/matrix-puppet-facebook | JavaScript | Alpha |
This is a puppeted Facebook bridge for Matrix.
Get it from GitHub.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Tulir | https://github.com/tulir/mautrix-facebook | Python | #facebook:maunium.net | Alpha |
A Matrix-Facebook Messenger puppeting bridge. Written in Python using fbchat-asyncio and mautrix-python.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Kamax.io and Open-Xchange | https://github.com/kamax-io/matrix-appservice-email | Java | Alpha |
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.
Features:
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Jojii | https://github.com/JojiiOfficial/Matrix-EmailBridge | Go | #jojiiMail:matrix.jojii.de | Beta |
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.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
https://gitlab.com/takitam_matrix | https://gitlab.com/takitam_matrix/matrix-email-bridge | Python | Alpha |
This repo contains (almost) transparent matrix gateway. Following features are implemented:
+-----------+ +-----------+
| | +---------------+ | |
| >===AS=API====> >===SMTP===> |
| Matrix HS | | Matrix-email | | Email |
| <===Client/===< Bridge <===LMTP===< Server |
| | AS API | | | |
| | +-------A-------+ | |
| | | | |
+-----------+ | +-----------+
+----V----+
|Bridge DB|
| (SQL) |
+---------+
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Gerben Droogers | https://github.com/tijder/SmsMatrix | Java | Alpha |
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.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Tulir | https://github.com/tulir/mautrix-telegram | Python | #telegram:maunium.net | Late Beta |
A Matrix-Telegram hybrid puppeting/relaybot bridge. Written in Python using Telethon and mautrix-python.
✓ 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 https://github.com/tulir/mautrix-telegram.
mautrix-telegram can be self hosted, and is also available at t2bot.io: https://t2bot.io/telegramAuthor | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Tulir | https://github.com/tulir/mautrix-whatsapp | Go | #whatsapp:maunium.net | Alpha |
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
✓ Read Receipts
✓ Typing notifications
✓ Plain text
✓ Formatted messages
✓ Media/files
✓ Replies
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Cadair | https://github.com/Cadair/matrix-appservice-hangouts | Python | Alpha |
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.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Tulir | https://github.com/tulir/mautrix-hangouts | Python | #hangouts:maunium.net | Alpha |
A Matrix-Hangouts puppeting bridge. Written in Python using hangups and mautrix-python.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
matrix-hacks | https://github.com/matrix-hacks/matrix-puppet-hangouts | JavaScript | Beta |
matrix-puppet-hangouts can be self-hosted, full setup instructions are available on the repo.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
ma1uta | https://github.com/ma1uta/mxtoot | Java | #mxtoot:matrix.org | Alpha |
A Matrix<->Mastodon bot written in Java.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Half-Shot | https://github.com/matrix-org/matrix-bifrost | TypeScript | #bifrost:half-shot.uk | Beta |
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.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
matrix-hacks | https://github.com/matrix-hacks/matrix-puppet-groupme | JavaScript | #matrix-puppet-bridge:matrix.org | Beta |
This is a Matrix bridge for GroupMe
You will need to acquire your Access Token from GroupMe.
Get your access token by going to https://dev.groupme.com/ and clicking the "Access Token" link in the top right.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
matrix-hacks | https://github.com/matrix-hacks/matrix-puppet-skype | JavaScript | #matrix-puppet-bridge:matrix.org | Beta |
This is a Matrix bridge for Skype. It uses skype-http under the hood.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Huan Li | https://github.com/huan/matrix-appservice-wechaty | TypeScript | Alpha |
matrix-appservice-wechaty is a new project to bridge Matrix with WeChat.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Sorunome | https://github.com/Sorunome/mx-puppet-tox | Typescript | #mx-puppet-bridge:sorunome.de | Beta |
mx-puppet-tox bridges tox and matrix together via (double)puppeting. It basically acts as a tox client for matrix.
✓ Direct (1:1) Chats
✗ Group Chats
✓ Plain Text
✗ Formatted Messages (unsuported by tox)
✓ Media/files
✓ Presence (Tox → Matrix only)
✓ Typing notifications (Tox → Matrix only)
✓ Multi-user
This bridge is part of the mx-puppet-bridge suit of puppeting bridges.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Sorunome | https://github.com/Sorunome/mx-puppet-twitter | Typescript | #mx-puppet-bridge:sorunome.de | Alpha |
mx-puppet-twitter bridges twitter and matrix together via (double)puppeting.
✓ Direct (1:1) Chats
✗ Tweets
✓ Plain Text
✗ Formatted Messages
✓ Media/files
This bridge is part of the mx-puppet-bridge suit of puppeting bridges.
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
mymindstorm | https://github.com/mymindstorm/matrix-appservice-mumble | TypeScript | #mumble-bridge:evermiss.net | Alpha |
A simple Matrix to Mumble (Murmur) bridge using gRPC. Currently, it bridges one channel in Matrix to a server in Murmur.
✗ Direct Chats
✓ Presence (using messages)
✓ Formatted Text Content
✓ Image Content
✗ Calls
Author | Repo | Language | Matrix Room | Maturity |
---|---|---|---|---|
Half-Shot | https://github.com/Half-Shot/matrix-keybase | TypeScript | #keybase:half-shot.uk | Early Alpha |
A bridge that connects a user's Keybase account to their Matrix account.