Connect / IRC clients
IRC clients
Slirc remains IRC underneath, so the conversation does not depend on one client.
Client shortlist
| Client | Platforms | Interface | Source | Good fit for |
|---|---|---|---|---|
| Senpai | Linux, macOS | terminal | open | a focused keyboard-driven client |
| Halloy | Linux, macOS, Windows | desktop | open | a modern cross-platform GUI |
| Textual | macOS, iOS | native | commercial | a polished Apple client |
| Revolution IRC | Android | native | open | lightweight mobile IRC |
| WeeChat | Linux, macOS, BSD | terminal | open | scripting and deep customization |
These clients support registered IRC accounts through SASL. Exact history and media presentation varies by client.
How Slirc features appear
- Channels remain ordinary IRC conversations. PWA direct messages appear as private
#dm-*channels in terminal clients, so offline messages persist without fake presence. - Threads appear as linked
#t-*channels. - Images, videos, GIFs, and previews remain readable URLs.
- Topics use the standard IRC topic.
- Edits and reactions depend on IRCv3 metadata, so older clients may show their text fallback.
Connect with a password
- Open More → IRC client on a phone, or Profile → IRC on desktop.
- Choose Use a password and name the device, for example
Halloy on MacBook. - Save the password when it appears. Slirc shows it once.
- Copy the setup block for your client.
Clients connect to app.slirc.org on port 6697 with TLS and SASL PLAIN. Adding or removing a password device rotates the account password. Older password clients must use the newest password before they can reconnect.
Connect with a certificate
A certificate gives each client its own credential. Revoking one certificate does not interrupt other clients.
Generate an ECDSA P-256 key and self-signed certificate. Replace yournick with your Slirc account name:
nick=yournick; openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -days 3650 -subj "/CN=$nick" -keyout "slirc-$nick.key" -out "slirc-$nick.crt" && cat "slirc-$nick.key" "slirc-$nick.crt" > "slirc-$nick.pem" && chmod 600 "slirc-$nick.key" "slirc-$nick.pem" && openssl x509 -in "slirc-$nick.crt" -noout -fingerprint -sha256
Keep .key and .pem private. Anyone with either file can sign in as you. Open Profile → IRC → Use a certificate, name the device, and paste the SHA-256 fingerprint printed by OpenSSL.
Halloy
Add this to Halloy's config.toml, using absolute paths:
[servers.slirc]
server = "app.slirc.org"
port = 6697
use_tls = true
nickname = "yournick"
username = "yournick"
[servers.slirc.sasl.external]
cert = "/path/to/slirc-yournick.crt"
key = "/path/to/slirc-yournick.key"
WeeChat
Copy the combined PEM to WeeChat's private certificate directory, then configure server:
/server add slirc app.slirc.org/6697 -tls
/set irc.server.slirc.nicks "yournick"
/set irc.server.slirc.tls_cert "%h/tls/slirc-yournick.pem"
/set irc.server.slirc.sasl_mechanism external
/connect slirc
Older WeeChat releases call tls_cert ssl_cert and use -ssl instead of -tls.
Textual
Convert certificate to PKCS #12, import it into macOS Keychain, then select identity certificate in Textual's server settings and choose SASL EXTERNAL:
openssl pkcs12 -export -inkey slirc-yournick.key -in slirc-yournick.crt -out slirc-yournick.p12
Textual on iOS must receive identity through iOS certificate/profile management before it appears in server settings. Textual versions without SASL EXTERNAL must use password setup above.
Senpai
Senpai currently supports SASL PLAIN only and has no client-certificate setting. Use Use a password in Slirc for Senpai. Do not add PEM paths to Senpai config; current releases ignore them.
Never enter your magic-link URL into an IRC client. Magic links sign in to web app. IRC clients use password or certificate from device setup.
