A fast, modern IRC client for Android.
Google Play | Direct Download | Documentation
HexDroid is a free and open source IRC client for Android devices. It provides a clean, modern interface while supporting the features users expect from a desktop client, including IRCv3 capabilities, SASL authentication, TLS encryption, DCC file transfers and an array of commands.
Requirements: Android 8.0 (API 26) or higher
License: GPLv3
- Connect to multiple IRC networks simultaneously
- Save and manage network profiles
- Auto-connect on app startup (configurable per network)
- Auto-reconnect with exponential backoff
- Auto-join channels with optional keys
- Post-connect commands with configurable delay
- TLS/SSL connections (enabled by default, recommended)
- SASL authentication support:
- PLAIN
- SCRAM-SHA-256
- EXTERNAL (client certificate authentication)
- Client certificate support (.pem, .crt + .key, .p12 formats)
- Server passwords
HexDroid implements modern IRCv3 specifications:
message-tagsandserver-timeecho-messageandlabeled-responsebatchfor grouped messagesdraft/chathistoryfor history playback (where supported)draft/event-playbackaccount-notifyandaway-notifychghostandextended-joinsaslfor secure authentication
- Automatic encoding detection
- Manual encoding selection per network
- Supported encodings include:
- UTF-8 (default)
- windows-1251 (Cyrillic)
- KOI8-R
- ISO-8859-1, ISO-8859-15
- GB2312, Big5, Shift_JIS, EUC-JP, EUC-KR
- DCC SEND and DCC CHAT support
- Configurable incoming port range
- Transfer progress tracking
- Files saved to app storage by default
- Material Design 3
- Light and dark themes
- Adjustable font size and family
- mIRC colour code rendering
- Clickable URLs
- Copy text from messages
- Nick completion
- Swipe gestures
- Highlight notifications (nick mentions)
- Private message alerts
- Custom highlight words
- Configurable sound and vibration
- Persistent notification for background connections
- Optional chat logging with configurable retention
- Per-network ignore list
- Hide JOIN/PART/QUIT messages
- Lag indicator
- Channel list with search
The recommended installation method:
Download the latest APK directly:
git clone https://github.com/boxlabss/hexdroid.git
cd hexdroid
./gradlew assembleRelease- Open the app and tap Networks
- Tap + to create a new network profile
- Enter the server hostname and port (typically 6697 for TLS)
- Set your nickname
- (Optional) Configure SASL authentication
- Save and tap Connect
For detailed instructions, see the Getting Started Guide.
HexDroid supports standard IRC commands. Commands are case-insensitive.
| Command | Description |
|---|---|
/join #channel [key] |
Join a channel |
/part [#channel] [reason] |
Leave a channel |
/msg <target> <message> |
Send a private message |
/me <action> |
Send an action message |
/nick <newnick> |
Change your nickname |
/quit [reason] |
Disconnect from the server |
/whois <nick> |
Get information about a user |
/topic [#channel] [text] |
View or set channel topic |
| Command | Description |
|---|---|
/kick [#channel] <nick> [reason] |
Kick a user |
/ban [#channel] <nick> |
Ban a user |
/kickban [#channel] <nick> [reason] |
Ban and kick a user |
/op [#channel] <nick> |
Give operator status |
/deop [#channel] <nick> |
Remove operator status |
/voice [#channel] <nick> |
Give voice status |
/mode <target> <modes> [args] |
Set channel or user modes |
| Command | Description |
|---|---|
/ctcp <target> <command> |
Send a CTCP request |
/ctcpping <nick> |
Measure latency to a user |
/dns <host/ip> |
DNS lookup |
/ignore <user> |
Add user to ignore list |
/find <keyword> |
Search scrollback |
/sysinfo |
Share device information |
/raw <line> |
Send raw IRC command |
For a complete-ish command reference, see Commands.
Each network profile supports:
- Server hostname and port
- TLS toggle and certificate validation
- Nickname, username, and real name
- Server password
- SASL authentication (mechanism, credentials)
- Client certificate for EXTERNAL auth
- Auto-connect and auto-join settings
- Character encoding
- Post-connect commands
- Theme (light/dark/system)
- Font family and size
- Notification preferences
- Highlight words
- Logging options
- DCC configuration
- Verify the server hostname and port are correct
- Most TLS servers use port 6697; plaintext uses 6667
- Check that TLS is enabled/disabled as required by the server
- For SASL errors, verify your credentials and that the server supports your chosen mechanism
If connecting to a server with a self-signed certificate, enable "Allow invalid certificates" in network settings. Note: this disables protection against man-in-the-middle attacks.
Some Android devices aggressively restrict background apps. To maintain connections:
- Disable battery optimisation for HexDroid
- Ensure the persistent notification is visible
- Consider locking the app in the recent apps list
See dontkillmyapp.com for device-specific instructions.
If text appears garbled, the server may use a non-UTF-8 encoding. Go to network settings and select the appropriate encoding.
For more help, see the Troubleshooting Guide.
HexDroid does not collect analytics, advertising identifiers, or any user data. The app contains no ads or tracking.
Data is transmitted only to the IRC servers you choose to connect to. Local data (settings, logs, DCC files) is stored on your device and can be deleted by clearing app data or uninstalling.
See the full Privacy Policy.
Contributions are welcome. Please open an issue to discuss proposed changes before submitting a pull request.
When reporting bugs, please include:
- Device model and Android version
- HexDroid version
- Steps to reproduce the issue
- Relevant error messages or logs
- Documentation: hexdroid.boxlabs.uk
- Email: android@boxlabs.co.uk
- IRC:
#HexDroidonirc.afternet.org
HexDroid is free software licensed under the GNU General Public License v3.0.
See LICENSE for the full license text.
HexDroid is built with: