Coming from another chat app? Learn how IRC compares, what IRCv3 adds, how to use bouncers and Session Keepers, and how to stay safe on IRC.
If you already live in a team chat app, you know most of this. The ideas are the same; the words and the controls are different, and IRC gives you a lot of control for free.
| In Slack or Discord | On IRC with Textce |
|---|---|
| Workspace or server | A network, such as Libera.Chat or EFnet. The sidebar shows every network you are on, each with its own Status view. |
| Channel | A room, written #name. Join with /join #name. |
| Private channel | A room locked with a key (+k) or invite-only (+i). See the next section. |
| Direct message | A private chat: /msg nick text or the Msg button beside the member list. |
| @mention | Type the person's nickname; press Tab to complete it. Mentions are highlighted and can notify. |
| @here / @everyone | There is no equivalent. Rooms are conversations, not announcements to everyone. |
| Roles and permissions | Modes. Op (@) is a moderator, voice (+) is a speaker role. |
| Channel description | The topic: /topic #room text. |
| Read-only announcements channel | A moderated room (+m) where only ops and voiced people can speak. |
| Timeout, mute, ban, kick | Moderate the room (+m), then kick and ban. People can also ignore someone on their side. |
| Invite link | The room name, an irc:// link, or /invite nick #room for locked rooms. |
| Status and presence | Mark yourself away with /away reason. Friends lists show who is online on supported apps. |
| Threads | No threads. Start your reply with the nickname, like bram: yes!, to keep the thread of conversation. |
| Emoji reactions | No reactions. Type the emoji in a message instead. |
| Bots and integrations | Bots join rooms like any other person, and answer to commands you type in the room. |
| Message history | Scroll-back in the app, plus an optional Session Keeper that listens while you are away and summarizes what you missed. |
| Notifications | Restrained: mentions, private messages and invitations. Per-room sound settings let you quiet the rest. |
| Sign-in | A nickname. No account, no email. Optionally register it with network services. |
| I want to… | Slack or Discord | IRC with Textce |
|---|---|---|
| Make a private channel | New channel → Private | Room with +i (invite only) or +k (password) |
| Add someone to it | Add people to the channel | Invite: /invite nick #room |
| Protect a channel with a password | Not available | Key: /mode #room +k password |
| Set the channel description | Edit channel details | Topic: /topic #room text |
| Stop everyone from posting | Announcement channel | Moderated: /mode #room +m |
| Let a few people post | Role permissions | Voice: /mode #room +v nick |
| Promote a moderator | Assign a role | Op: /mode #room +o nick |
| Remove someone | Kick or remove | Kick: /kick nick reason |
| Block someone from returning | Ban | Ban: /mode #room +b nick!*@* |
| Limit the size of a channel | Not available | Limit: /mode #room +l 50 |
| Look up a person | View profile | Whois: /whois nick |
| Tell people I am away | Set status | Away: /away reason |
IRCv3 is a set of modern extensions to IRC. It keeps the original protocol, so old and new networks still talk to each other, and adds the conveniences people expect from chat today.
When Textce connects, it asks the server which extensions it supports (this exchange is called capability negotiation) and turns on the ones that are available. You do not configure anything. What you can use depends on the network, so one network may support more than another.
| IRCv3 feature | What it does for you |
|---|---|
| SASL | Sign in to your registered nickname while connecting, so you are identified before you join any room. No separate password message and no moment where your nickname is unprotected. |
| server-time | Messages carry the time the server received them, so timestamps stay accurate even after reconnecting or replaying history. |
| message-tags | Lets messages carry extra data, which other features build on. |
| echo-message | Your own sent messages are confirmed by the server, so you can see they were delivered exactly as others see them. |
| batch | Groups related lines, such as a block of replayed history, so they show up together instead of scattered. |
| chathistory | Lets the network replay recent messages when you connect, so there are fewer gaps. Supported on some networks only. |
| away-notify | Tells you when someone marks themselves away or comes back, without querying each person. |
| account-notify and extended-join | Shows which registered account someone is using as they join, making it easier to tell real users from impostors. |
| multi-prefix | Shows all of a person's statuses at once, such as both op and voice. |
| chghost | Updates someone's displayed address when it changes, without making them appear to leave and rejoin. |
| invite-notify | Tells ops when someone is invited to their room. |
| monitor | Notifies you when friends come online or go offline. This is what powers friends lists. |
| setname | Lets people update their display name without reconnecting. |
| cap-notify | Lets a network add or remove features while you are connected. |
IRC only shows you messages while you are connected. An optional Session Keeper, also known as a bouncer, stays connected for you while you are away, listening to your rooms. When you reconnect, Textce shows a summary such as “Caught up on 13 missed messages” and the messages keep their original timestamps.
Beside every room is its member list. Select a person and use Msg to start a private chat, Whois to see who they are, and, if you are an op, Op, Deop, Voice, Devoice, Ban and Kick. They run the same commands covered in “Running a room”.