1

Add a Network

  1. Open Networks from the main menu.
  2. Tap Add to create a new network profile.
  3. Enter a display name (e.g. Libera Chat), then the server host and port. Most TLS-enabled servers use port 6697.
  4. Leave TLS enabled — it encrypts your connection and is supported by virtually all modern IRC servers.
  5. Set your nickname, an optional alternate nick, username, and real name.
  6. Optionally add auto-join channels, configure SASL, or add post-connect commands.
Tip: Tap the star icon on a network row to pin it to the top of the Networks list.
2

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.

Auto-connect on startup: Enable this per-network option to connect automatically each time the app opens. The global Keep alive in background setting (Settings > Connection) is separate and maintains connections when you close the app.
3

Join Channels

There are several ways to join channels:

  • Channel List UI: Type /list to open the searchable channel browser.
  • Join command: /join #channel or /join #channel key for key-protected channels.
  • Auto-join: Add channels to the per-network auto-join list in network settings. Keys are supported.
Tip: Tap the "X" on any buffer in the sidebar to part and close it quickly.

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.

MechanismHow it worksWhen to use
PLAINUsername + password, base64-encodedMost common; safe over TLS
SCRAM-SHA-256Cryptographic challenge/response — password never sent in plaintextBest option when available
EXTERNALAuthenticates using a TLS client certificate fingerprintWith CertFP (see below)

authcid — your NickServ account name (usually your registered nick). Leave blank to use your current nick.

SASL failure: The connection still proceeds but you won't be identified. Check your authcid and password, or see Troubleshooting > SASL.

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).

  1. In network settings, find TLS Client Certificate and tap Import certificate.
  2. Select your .pem/.crt or .p12/.pfx file and enter the certificate password (leave blank for unprotected certs).
  3. Register the cert fingerprint with NickServ: /ns CERT ADD (most networks).
  4. 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-iso and znc.in/playback.
  • soju CAPs negotiated: soju.im/bouncer-networks, soju.im/bouncer-networks-notify, soju.im/read.
soju / Ergo: Both support 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.

Battery optimisation: Some manufacturers aggressively kill background processes. If HexDroid disconnects after you close it, see Troubleshooting > Always connected for device-specific fixes.

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.

Certificate changed? If you see a fingerprint mismatch warning and you trust the new certificate (e.g. the server admin renewed it), clear the pinned fingerprint in Network Settings > TLS > Reset pinned certificate, then reconnect to re-pin the new one.
Self-signed certs: These work fine with TOFU — HexDroid will learn the fingerprint on first connect. No need to import the cert into your device's CA store.

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.

  1. Go to Settings > Backup & Restore.
  2. Tap Export to save a JSON file to your chosen location.
  3. To restore: tap Import, select the JSON file, and your networks and settings will be re-created.
Note: SASL passwords and TLS client certificates are not exported for security reasons. You'll need to re-enter these after restoring.

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
Afternetirc.afternet.org:6697
EFnetirc.efnet.org:6697
Liberairc.libera.chat:6697
OFTCirc.oftc.net:6697
Rizonirc.rizon.net:6697