Riot is the most popular matrix client. It is built off electron and node.js.
- 1 Rooms
- 2 Rooms Pane
- 3 User settings
Rooms are the most basic building block of Riot.
[picture of interface]
1. Name of the chat. In a one on one chat or small room, this will list the name of the participants. In larger rooms, this name will be re-assigned.
2. Chat Icon. In a one on one chat or small room, this will be the profile picture of whomever invited you to the chat. In larger rooms it will be assigned by the administrator.
3. Chat log. In this area, all actions that occur in the chat will be displayed, including membership, permission, and setting alterations.
4. The online status indicator. Will only display itself when the client has been disconnected from the server.
5. Reading emblem. Displays which users have read which messages in chat, as well as the last seen message for the user.
6. Messaging area. Used to send messages to the chatroom. Also contains the controls for markdown. By clicking the small [Mv] button above the chat, Markdown can be toggled on and off. The [Aa] button to the right of the text-area will show markdown formatting controls. While composing a message, typing the @ character will bring up a quick use interface to ping other users. The emoji icon to the side allows you to place emojis (referred to as “stickers”) in the chat (see integrations for more details). The [paperclip] icon will attach a file to your message. The [Phone] icon actives calling in the room (Note that calling in rooms of more than two people is unstable in riot. Use the jitsi widget for group chats). The [video] button starts a video call in the room.
7. Chat details pane. When the [user] icon is selected, this will display a list of all members of the chat. Clicking the name will bring up a short list of details about the users. Alternate chats and devices can also be seen. Administrators can kick, mute, ban, or promote from this panel. When the [file] icon is selected, all files from the chat are displayed. When the [bell] icon is selected, all alerts, general or specific, are displayed. By clicking on alerts, the chat pane will automatically scroll to the message.
[settings panel image]
Opened by selecting the settings icon to the right of the chatroom name. Contains all settings specific to the chat, besides integration controls.
Room name: Altering this will change the group name. Markdown formatting is non functional in this field.
Room topic: Sets the room topic, usually displayed under the channel name. Useful for putting chat rules, channel announcements, or important links. Markdown is displayed in this field.
Main address: The primary address this room is referred to by. In the case that your room has multiple reference addresses from multiple servers, this will set the default address and homeserver that the room is found by.
All addresses are listed underneath the main addresses panel. By clicking the X next to the address, the address can be removed.
New address: In this field new addresses can be added to the room. The proper format for adding new addresses is #[room name]:[domain.tld]. For example, if one wished to add the room address of test at matrix.org, they would type in #test:matrix.org.
By activating “Publish this room to the public in matrix.org's room directory?” your room will be publicly visible to all users of the homeserver. Do not select this option in private chats, even for a moment. Automated bots such as the matrix traveler may enter and traverse the room, damaging the opsec of the users.
By setting a flair, your chatroom will be connected to a community. It is not advisable to connect your chatroom to flairs you do not own. Connected flairs are listed in the same manner that room addresses are, and can be removed by clicking the red X to the right of the name.
New Community ID: Connect the room with an existing community flair. To do this, use the +[flair]:[domain.tld] format. For example, if one wished to connect his room to the community “test” on the matrix.org homeserver, he would use the address +test:matrix.org.
URL previews allow for those attempting to join a chat to see details about it before entering the room.
Enable URL previews by default for participants in this room: Enables anyone to see details about the room before joining.
Enable URL previews for this room (only affects you): Allows you to see details about the chat before joining. Effects only you.
Leave room: Clicking this will leave the room, and place it in the historical tab on the interface. Leaving a chat will strip the user of all permissions.
Security and Privacy
Encrypted: Enabling this setting will activate encryption in the chat (sometimes referred to by users as CT or Cipher Text). Once a chat is encrypted, this feature cannot be disabled.
Access Controls: Allows you to specify if users can join with or without a link to the chat. Also controls guest’s ability to view chat messages.
History Controls: Allows you to control how many chat messages users can see. This ranges from users being able to see all chat messages from the beginning of the room’s creation, to the time they joined.
Roles and permissions
Per matrix protocol specifications, user permissions are controlled by a power level. At certain power levels, users by default can perform certain actions. The highest powerlevel is 100, allowing for full control of the chatroom. The lowest is 0, and is assigned to users by default when joining a large room. In a one on one chat, the default user power level is 100, giving mutual control to each user. Default permission values are 0 (users), 50 (moderators), and 100 (administrators). Custom values can be set for any permission.
Privileged users: This area shows all users with privileges higher than 0. From here, users can promote or demote the powers of other users. Note: people with admin powers cannot be demoted.
Default Role: This is the default role given to users when they join the chat. Default value: 0
Send Messages: The default power level required for a user to send a message to a chat. It may be advantageous to make a chat users cannot send messages to for announcement purposes. Default: 0
Invite Users: Controls if users may invite other users. It may be useful to raise this level if you wish to keep a chat private and stem the flow of new users. Default: 0
Change Settings: The lowest power-level required to access and alter the permissions panel. May be useful to increase if you wish for moderators to only have power over user messages. May be useful to lower if you wish to run a smaller room where individuals in the chat wish to alter settings like the MOTD and room icons. Dangerous to set low in channels where large numbers of users can come and leave. Default: 0
Kick Users: With this permission, an individual may kick other users. Default: 50
Ban Users: Allows those with the permission to ban users. Default: 50
Remove Messages: Using this function, users may delete messages. Default: 50
Notify Everyone: Users with this permission may ping everyone by typing in @room. May be useful to lower in a small team chat where users need to send alerts of upcoming team developments. Default: 50
Change Room Name: Controls an individual can alter the chat name. Default: 50
Change Permission: With this permission, a user can change the permissions of other users. Default: 100
Change History Visibility: Controls who should be able to change history settings. Default: 100
Change Main Address for the Room: Permission controls who can change the main room id that the chat is accessed through. Default: 100
Change Room Avatar: Using this control, a user can change the room icon as it appears in riot. Default: 100
Change Topic: Allows for users to change the MOTD of the channel. Default: 100
Modify Widgets: Allows for users to add, drop, and alter widgets in the room. May be useful to lower this value should users need to add collaboration documents to the chat. Default: 100
A section of the settings meant for development. Using this area may cause the room to be unstable. Be advised.
Room information: Shows the internal room id as it is known by the current matrix homeserver. Useful for homeserver administrators.
Room Version: The version of the room.
Send Custom Events: Allows you to send custom events to the room raw. Accepts JSON formatting. Please carefully read the matrix specification documents before sending any events to the channel.
Explore Room State: Allows you to see and alter the m.room object. By selecting or typing any of the m.room’s fields, you can see a json output of the object and edit it. Note: viewing objects that recurse into themselves will cause riot to crash. Just don’t do it. You have been warned.
Send Account Data: Allows you to update room and account settings in raw json format. By clicking the red “Account Data” button on the bottom right corner, you can flip this event to alter the room.
Explore Account Data: Allows you to view and edit im.vector object fields as well as the m.direct and m.push_rules objects. Displays all data in a raw json format. These json objects can be altered by the user.
[Sharing Pane picture]
Matrix.to Link: A web shareable link that will allow people to join the matrix room. Also compatible with other clients. Check matrix.to for more details.
QR Code: A scanable QR code that will link to the matrix room. Note: Should you decide to print this QR code, make sure that it is done so at a good quality. The size on print should be large, but not exceedingly, as this may make it hard for most phone cameras to scan.
Integrations are a critical part of what makes riot unique from other chat clients. Using widgets, other services can be directly integrated into riot. For example, a live editable Etherpad or Google Doc could be added to the top of the page. While a team discusses important topics in the chat below, the result of their work can be quickly stashed at the top.
Widgets are not encrypted. Do not store sensitive information in them.
[image of room selection pane]
Favorites: Dragging rooms here will keep them snapped to the top while browsing. Very useful for keeping track of important chats that may fall underneath the high activity of other rooms.
People: Chats made one on one will automatically be placed here. Chats between a few people sometimes can be found here.
Rooms: All newly joined rooms will appear here, with the exception of one on one rooms. This is the most common place for a room to be found.
Low Priority: An extra slot for unimportant chatrooms. Use this section of chat to keep clutter down in your interface.
Historical: All chatrooms that you have left will appear here.
Communities, also referred to as “flairs,” are meta groups that are designed to keep track of large sets of rooms. In attached rooms, users may display their flair icons. Sometimes, membership in a community is used as a way to distinguish members of various groups. For example in certain chatrooms, users may have “team member” flair icons. More commonly, Communities are created to keep track of topic specific rooms.
Clicking this button will display a list of all public communities on the current homeserver. You can use this to find new places and people.
Simply shows the following message:
If you run into any bugs or have feedback you'd like to share, please let us know on GitHub. To help avoid duplicate issues, please view existing issues first (and add a +1) or create a new issue if you can't find it.
[image of user settings pane]
Display Name: The name as it is displayed to other users. Altering this will not change your matrix id.
Account: You can use this area to change your password, as well as add/drop phone numbers and email addresses associated with your account.
Language and Region: Changes language settings for Riot. Many translations are somewhat inaccurate.
Theme: Switching between the light and dark theme can be done here. In previous versions, users could change to the status.im theme, although this has been depricated.
Use Compact Timeline: Enabling this reduces the space used by the timeline interface. Nice for large chats.
In the flair settings area, all communities the user has joined will be displayed. Here users can enable or disable the display of flairs. Should various other rooms permit, your flair will be displayed alongside your name, allowing others to discover a community. Also can be used to distinguish users between teams (eg: red team has a red flair icon while blue team has a blue icon).
Enable Desktop Notifications: Controls if the client pushes notifications to the desktop.
Show Message in Desktop Notification: Controls if the displayed alert will contain the text of the message in the alert bubble. If this is disabled, only the chat name will be displayed.
Enable Audible Notifications in Web Client: Controls if the alert plays a sound when the client is viewed in a web browser.
Email notifications: All attached email addresses will display in this area (if any). Individual emails can be set to receive alerts for pings received when not logged in. When in the Off state, no alerts are sent. When in the On state, all direct pings are sent. When in the Noisy state, all messages are forwarded to the email.
The Preferences section contains settings related to the chat timeline and message sending experience.
Automatically Replace Plain Text Emoji: Will replace text such as “:^)” with its proper emoji counterpart. It is highly recommended that this be disabled.
Enable Emoji Suggestions While Typing: When enabled, an auto-complete prompt will display showing all suggested emojis based on what the user has already typed. Emojis are controlled via stickerpacks.
Send Typing Notifications: Controls if the client should indicate if the user is typing.
Autoplay GIFs and Videos: Controls if the client will autoplay webms, mp4s, gifs, and movs seen in the room. Highly recommended to be disabled, due to raids.
Enable Inline URL Previews by Default: Controls if the link sent in chat will be automatically crawled and displayed in the room. You may consider disabling this if OPSEC is important to you.
Enable Big Emoji in Chat: Controls if emojis will display as larger under certain circumstances. May be useful to disable in spam events.
Show Read Receipts Sent by Other Users: When enabled, will display the profile picture of the user in the timeline next to the last message has been read.
Show Timestamp in 12 Hour Format: Displays time in 12 hours rather than in 24 hours.
Always Show Message Timestamps: Will display the individual timestamps of messages in chat. Will also display the timestamp of messages that have been automatically grouped together, causing them to separate.
Show Placeholder For Removed Messages: When enabled, will display a gray striped bar in the place of deleted messages.
Enable Automatic Language Detection For Syntax Highlighting: When enabled will attempt to detect the programming language in the code block. If identified, it will provide proper highlighting.
Show Join/Leave Messages: When disabled, will hide all messages involving membership changes unless they are administrative actions such as bans, kicks, and power-level changes.
Show Avatar Changes: When enabled, will display messages when a user has updated his avatar.
Show Name Changes: When enabled, will display messages when a user has updated is display name.
Room List: When disabled, rooms with recent activity will be displayed on top. When enabled, important chats will be displayed on top.
Always Show Encryption Icons: When enabled, will show a lock or an alert symbol next to any CT message. When clicked, information about the device that sent the message will be displayed.
Show Avatars in Mentions: If a user is mentioned in a chat, that users name will be outlined. If this is enabled, his avatar will also be displayed next to the name. If @room is pinged, the room avatar will be displayed instead.
Enable the Community Filter Panel: Disabling this will remove the community icons found on the left shoulder of the interface.
Prompt Before Sending Invites to Potentially Invalid Matrix IDs: If enabled, Riot will prompt the user before sending an invite to a bad id. Sometimes faulty prompts occur with strange usernames or alternate homeservers.
Close Button Should Minimize Window to Tray: If enabled, pressing the close button will not close riot. Instead the window will still be summonable if the user presses the Riot icon in his UX.
Start Automatically After System Login: If enabled, Riot will attempt to start when the computer boots. On windows, this is done through a run key addition in the registry. On linux, this is done through a systemctl entry.
Autocomplete Delay: How long riot should wait until displaying the autocomplete menu. Default: 200 ms
Voice & Video
Audio Output: Set the audio device the client should output sound to.
Microphone: Set the default device Riot should get audio input from. On linux, this is usually best set to a pulseaudio device.
Camera: The default device for Riot to derive a camera feed from.
Mirror Local Video Feed: If enabled, the video feed from the host camera will be displayed on screen during calls.
Allow Peer-to-Peer for 1:1 Calls: Enables the use of WebRTC during voice calls. If you are using a CT chat or care about OPSEC, this should be disabled, as it allows the other caller to directly see your IP. WebRTC has been known to holepunch through VPN’s in some cases.
Security & Privacy
Devices: All of the devices that have accessed your riot account are displayed here. You can remove their keys from the keyring here. Check this area regularly for unknown devices.
Key Backup: Displays information and settings about backups for CT keys.
Cryptography: Shows the current device, id, and key fingerprint. Also allows for importing and exporting of keys.
Never Send Encrypted Messages to Unverified Devices: If this mode is activated, Riot will not forward messages to any client that has been verified by this device. Extremely useful in the case that your account is breached.
Send Analytic Data: If enabled, the riot client will send data about the machine to Vector.im. If OPSEC is important to you, this option is recommended to be disabled.
Bulk options: From here, invites can be mass accepted or rejected. Mass invite acception may be useful if being invited to a large community. Mass rejection may be useful in the case that the client has been targeted by a spam attack.
Help & About
Submit Debug Logs: Will send any error data to Vector.im for use with the bug tracker. Anonymized.
Clear Cache and Reload: Riot is displayed via an electron instance (blink engine, headless). Selecting this will clear any saved information about the user, and anything saved in the local variables of the electron instance.
Versions: A readout of the current SDK, OLM, and client versions.
Advanced: Displays the Homeserver and Identityserver in use by the client.
Access Token: The current token being used to fetch timeline updates from the Homeserver. DO NOT SHARE THIS TOKEN. There is no reason for Vector staff, homeserver operators, or room administrators to require access to this token. If this token is given out, it can be used to impersonate your account. Do not distribute this number. Anyone who asks for it is likely attempting to phish/breach you account.