Add a Network
- Open Networks from the main menu.
- Tap Add to create a new network profile.
- Enter a display name (e.g. Libera Chat), then the server
hostandport. Most TLS-enabled servers use port6697. - Leave TLS enabled — it encrypts your connection and is supported by virtually all modern IRC servers.
- Set your nickname, an optional alternate nick, username, and real name.
- Optionally add auto-join channels, configure SASL, or add post-connect commands.
Connect
Tap the network row and choose Connect. Server messages appear in the network's server buffer. You'll see CAP negotiation, SASL authentication (if configured), and then a Registered message confirming your effective nickname and active IRCv3 capabilities.
Join Channels
There are several ways to join channels:
- Channel List UI: Type
/listto open the searchable channel browser. - Join command:
/join #channelor/join #channel keyfor key-protected channels. - Auto-join: Add channels to the per-network auto-join list in network settings. Keys are supported.
SASL Authentication
SASL lets HexDroid authenticate with NickServ during the connection handshake — before registration — without needing a post-connect /ns IDENTIFY command. Enable SASL in the network settings under Authentication.
| Mechanism | How it works | When to use |
|---|---|---|
| PLAIN | Username + password, base64-encoded | Most common; safe over TLS |
| SCRAM-SHA-256 | Cryptographic challenge/response — password never sent in plaintext | Best option when available |
| EXTERNAL | Authenticates using a TLS client certificate fingerprint | With CertFP (see below) |
authcid — your NickServ account name (usually your registered nick). Leave blank to use your current nick.
TLS Client Certificates (CertFP)
CertFP authenticates you using your certificate's fingerprint instead of a password. HexDroid accepts certificates in .pem / .crt or PKCS#12 format (.p12 / .pfx).
- In network settings, find TLS Client Certificate and tap Import certificate.
- Select your
.pem/.crt or .p12/.pfxfile and enter the certificate password (leave blank for unprotected certs). - Register the cert fingerprint with NickServ:
/ns CERT ADD(most networks). - Set the SASL mechanism to EXTERNAL.
Converting a .crt + .key pair to PKCS#12:
openssl pkcs12 -export -in cert.crt -inkey cert.key -out cert.p12
Bouncers (ZNC, soju, Ergo…)
Enable Bouncer mode in network settings when connecting through a bouncer. This changes several behaviours:
- Auto-join is skipped — the bouncer already keeps you in your channels server-side.
- MOTD is not suppressed — the bouncer's MOTD usually contains status info.
- ZNC CAPs negotiated:
znc.in/server-time-isoandznc.in/playback. - soju CAPs negotiated:
soju.im/bouncer-networks,soju.im/bouncer-networks-notify,soju.im/read.
draft/chathistory natively. HexDroid automatically requests recent history on join — no extra configuration needed.Post-connect Commands
Run arbitrary slash commands after a successful connection. Useful for ghosting old sessions, joining operator channels, or identifying with NickServ when SASL is unavailable.
Go to network settings > Post-connect commands. Enter one command per line. Configure a delay (seconds) to wait after registration — some servers need a moment before accepting service commands.
/ns GHOST MyOldNick password # kill old session /nick MyNick # reclaim the nick /join #ops # join restricted channel
You can also use an irssi-style command to slow all subsequent commands down, example:
/join #idlerpg;wait 6 join idlerpg but wait 6 seconds
Notifications
HexDroid notifies you for:
- Highlights — your nickname (or a custom keyword) is mentioned in any channel.
- Private messages — a direct message arrives.
- Custom highlight words — additional case-insensitive keywords defined in Settings.
On Android 13+, you'll be prompted for notification permission on first run. Manage later at Android Settings > Apps > HexDroid > Notifications.
Sound and vibration intensity (Low / Medium / High) are configurable in the app's Settings screen.
Always Connected (Background)
HexDroid uses an Android foreground service to keep IRC connections alive when the app is in the background. A persistent notification is shown while running — this is a requirement from Android.
Enable in Settings > Keep alive in background. Once on, you can close the app and still receive highlight notifications.
Auto-reconnect is on by default. If a connection drops, HexDroid retries with exponential backoff (initial delay configurable in Settings).
TOFU Certificate Pinning
Since v1.5.5, HexDroid uses Trust On First Use (TOFU) fingerprint pinning instead of a blanket "allow invalid certificates" toggle. This gives you security without requiring a CA-signed certificate.
On first connect to a server, HexDroid saves its SHA-256 certificate fingerprint. On all subsequent connects, the fingerprint is verified. If it changes (server certificate was replaced or rotated), the connection is aborted and you'll see a warning.
Backup & Restore
HexDroid can export all your network configurations and app settings to a JSON file, making it easy to migrate to a new device or keep a backup.
- Go to Settings > Backup & Restore.
- Tap Export to save a JSON file to your chosen location.
- To restore: tap Import, select the JSON file, and your networks and settings will be re-created.
Chat History Playback
On servers that support chathistory or draft/chathistory (and some bouncers), HexDroid automatically fetches recent messages when you join a channel. Configure the number of messages in Settings > History limit (default: 50).
HexDroid uses msgid deduplication to ensure replayed history is never shown twice, even across reconnections.
History messages don't count as unread or trigger notifications by default. Enable "History counts as unread" and "History triggers notifications" in Settings if desired.
Popular Networks
irc.afternet.org:6697irc.efnet.org:6697irc.libera.chat:6697irc.oftc.net:6697irc.rizon.net:6697