Matrix.org

Logo of Wikimedia Matrix space

Matrix is a decentralized/distributed real-time communication network that combines the openness and flexibility of solutions like IRC with the user-friendliness of modern centralized communication networks like Discord, Mattermost, Slack, Telegram, and so on.

Indeed, it is based on an open protocol stewarded by a non-profit with community participation, several open-source server and client implementations, ability to host your own server and federate it with the other servers, interoperability with other communication networks.

It comes with many conveniences of up-to-date solutions, like web interface and mobile apps, rich HTML, easy catch-up on missed conversation, search, notifications, read-message tracking, message editing, emoji responses, voice calls and video conferencing.

For the most techy and nostalgic people, the official Matrix client, Element, can, in principle, also be used via an IRC client over a matrix-irc bridge.

To avoid confusion with various other things it is often referred to as matrix.org, after the biggest homeserver, but there are other homeservers too.

Starting with Matrix

The easiest way to get started with Matrix is using the web interface of the standard client, Element (formerly Riot). To register, choose a homeserver run by a community or organisation that you are comfortable with and create (typically) an account at zero cost, or possibly create an account on the big server run by Element Creations Ltd (Q58821126). You'll be able to use your account to read and write messages interactively, also read messages that were typed while you were offline.

There are also Android and iOS apps developed by Element, and a desktop app that you may wish to install.

There are also a vast number of other clients; see "What app should I use?" or at the matrix.org website, "Try Matrix" or "Clients".

In addition to bridging to IRC channels, there are a few rooms on matrix.org as well, hereafter grouped by language (some are just test spaces):

Bangla

Bulgarian

English

French

Hungarian

Spanish

Portuguese

Governance

Matrix.org/Administration: how the communities on the Wikimedia-related matrix.org (or other matrix homeserver) rooms manage their social structures and decision-making (2026-06-06: stub status)

E2EE, device verification and user verification

Who might need this in Wikimedia?

For most Wikimedia on-wiki activities, the right to anonymity is strongly respected, and (almost) all communication is fully transparent and immediately public. In contrast, for some purposes in local groups, who often have identities as legally recognised organisations under local legislation, with individual people identified as members, there is a need to spend and pay money and some level of private communication is needed. Some thematic groups and some geographical regions have high security needs for these (and some other) sorts of conversations.

For these reasons, learning to use the end-to-end encryption (E2EE) features of matrix servers and clients for device verification and user verification may be useful to learn for Wikimedia matrix groups, even if for many groups it is not required, and would be more of a hassle than a help.

Warning

Warning to admins: Do not enable encryption unless the group judges the advantages to outweigh the disadvantages (such as the inconvenience of unreadable old conversations). Putting locks on all your doors and windows will make your residence more secure, but if you lose your keys, you will be locked out.

What

  • device verification - verifying or deleting your own devices, especially old ones, might stop someone who finds your desktop computer or smartphone from pretending to be you
  • user verification - cross-verifying between two users (on particular devices) increases the confidence that you know who you are talking to
  • E2EE - user1-to-server-to-user2: only user1 and user2 can decrypt the conversation

Pros and cons

Advantages
  • If you remove all the keys (files) for old encrypted conversations on a particular device, the old conversations will be unreadable even if authorities force you to log in.
  • As long you trust the homeserver (for most Wikimedia matrix groups, this is matrix.org) to use the server software without having inserted any backdoors, the homeserver cannot read any of your E2EE conversations.
Disadvantages
  • The Element browser-tab client typically considers new sessions to be "new (unverified) devices", while standalone clients (like gomuks in the terminal) typically have stable sessions, considered as a single "device". You will not be able to read encrypted conversations using "unverified" devices.

User verification

Even if you only use an un-encrypted room, you can use the matrix verification system to "verify" that other users in the matrix group are the people who you think they are if you have an alternative method of communication - such as wiki talk pages or the Fediverse or face-to-face or audio-visual meetings that you trust. You and the other person need to be communicating on matrix and by some other method simultaneously.

Using Element via an IRC client

Register a Matrix account, as above. Your username does not have to match your IRC nick (although it's always nice for avoiding confusion).

The UI-specific parts of the instructions above assume you are using the Element web interface.

Configuring your IRC nick

(This is optional, but your default nick is <your matrix nickname>[m] which is not very nice.)

  • Start a chat with the Matrix-IRC bridge of matrix.org by clicking the (+) icon in the left sidebar next to "People" and entering @appservice:libera.chat and click the "Start Chat" button.
  • Wait until "@appservice:libera.chat joined the room." is displayed.
  • In the "Send a message" area at the bottom, enter !nick <yournick> and press the Enter key

(Make sure your nick is actually available. If have are using an IRC bouncer, make sure to disconnect it first. If you are using IRCCloud, signing out is not enough; you'll need to click on the gear icon next to the "LiberaChat" heading in the upper-right corner, and choose "Disconnect" to release the nick.)

Authenticating with LiberaChat

(This is optional but currently many LiberaChat channels don't allow unauthenticated users due to spam problems.)

If you do not already have a LiberaChat account, you need to register one first; see instructions. In case you use Element for that, when the instructions say /msg nickserv <blah> you just need to send <blah> as a private message to NickServ (@NickServ:libera.chat; see Send private messages section below).

Open a private chat with appservice as above, then type !username irc.libera.chat <your NickServ username> and then !storepass irc.libera.chat <your password>. This will permanently store your username and password on the Matrix application server and use it automatically answer NickServ queries. (In the past this was somewhat unreliable but these days it seems to be working well.)

You can then type !reconnect to verify the bridge properly authenticates you to NickServ upon connection.

If you don't want to store your password, you can also just start a private chat with LiberaChat's NickServ and type identify <username> <password>, as you would in an IRC client. (There is no way to use a secure protocol such as SASL, but your connection is to the Matrix homeserver and that part is always encrypted via HTTPS.)

Join IRC channels

  • Click on the Explore rooms button near the top of the left-hand sidebar to bring up the room directory. Open the drop-down server list menu by clicking the button under the search field. Click "Add a new server" and add libera.chat. Now just simply search the channel name in the search field. (i.e. #wikipedia-en)
  • If you can't figure out the above step, just enter the channel address (such as #wikipedia-en:libera.chat) in the input field, and click the "Join" button in the input field or press Enter.
  • Click "Join the discussion" in the dialog that comes up (only the first time).
  • In cases of private channels, you can get an invite by messaging !join #channelName to @appservice:libera.chat.

Send private messages

Click the (+) icon in the left sidebar next to "People", enter the username and click the "Start Chat" button. You can use the full Matrix ID which is @<username>:libera.chat for LiberaChat users (e.g. @tgr:libera.chat for the tgr nick), but just typing the username into the dialog and relying on search should work too. If you are already on the same channel then you can also just click on the username in the right sidebar (there is a field for filtering at the bottom, in case it's too long) and then on the "Start a chat" option.

If you have already sent messages to this person before (or received messages from them), you can just click on their name in the "People" section of the left sidebar instead.

Linking to LiberaChat channels

LiberaChat channels can be referenced within Matrix as <channel>:libera.chat (e.g. #mediawiki:libera.chat) and can be linked as https://app.element.io/#/room/<channel>:libera.chat. On this wiki, you can also use the {{matrix-channel}} template.

Other

If you need further help with your LiberaChat connection, try issuing the command !help in your chat with @appservice:libera.chat. If that doesn't work, you can try asking for help in the #irc:matrix.org room, where people who maintain the IRC bridge code hang out.

To allow messages from unregistered IRC users send !cmd irc.libera.chat MODE <your nick> -R to appservice. Due to LiberaChat's spam issues, this is not advised.

Like-minded communities using Matrix.org

See also

Category:IRC
Category:IRC