AndroidIRCx
A powerful IRCv3-compliant IRC client for Android with end-to-end encryption, multi-network support, and modern features
Key Features
- Connect to multiple IRC networks and servers simultaneously
- Modern, intuitive and responsive user interface optimized for mobile
- End-to-end encrypted chat with SSL/TLS support for secure private communications
- Proxy and Tor support for anonymous connections and enhanced privacy
- Watch ads to earn free scripting time for automated bot operations
- Comprehensive support for full IRC protocol – channels, private messaging, modes, nick-changes
- Real-time channel and private messaging with seamless reconnection handling
- Customizable notifications, alerts and notification channels (for Android 8.0+)
- Foreground-service mode for persistent background connectivity
- Configurable reconnection and idle-timeout settings to suit user preferences
- Graceful handling of disconnections, network changes and reconnections
- Lightweight and efficient — optimized for minimal battery and data usage
- Support for multiple simultaneous channels and private chats per network
Security & Privacy
- End-to-end encryption for direct messages and channels with key verification
- Secure SSL/TLS encryption for all IRC server connections
- SASL authentication support for secure login to IRC servers
- Biometric authentication (fingerprint/face) and PIN app locking
- Secure storage for credentials with biometric/PIN protection
- Fingerprint verification and trust-on-first-use (TOFU) key pinning
- QR code-based key exchange for secure encrypted channel setup
- Proxy and Tor support for anonymous connections and enhanced privacy
IRC Protocol & Connectivity
- Complete IRCv3 protocol support with CAP negotiation
- Multiple servers per network with automatic failover
- DCC file transfer support for sending and receiving files
- Server-accurate timestamps for real-time message synchronization
- Auto-connect functionality for favorite servers on app startup
- Graceful handling of disconnections and automatic reconnection
- Network change detection with seamless connection recovery
- Configurable reconnection intervals and idle-timeout settings
Technical Stack & Architecture
- Built with React Native 0.82 and TypeScript 5.8.3 for cross-platform compatibility
- React-native-tcp-socket for reliable IRC network connections
- Libsodium cryptographic library for end-to-end encryption
- AsyncStorage for efficient data persistence
- Service-oriented architecture with specialized managers (ConnectionManager, IRCService, TabService)
- Event emitters for real-time service communication and updates
- Message history with 200 messages per tab for optimal performance
- Firebase integration for Crashlytics and analytics
User Interface & Experience
- Configurable channel tabs (top/bottom/left/right) for personalized navigation
- Scrollable identity profile lists for easy account management
- User list management with context menus and inline actions
- Picture-in-Picture mode for Android multitasking
- Backup and restore functionality for settings and configurations
- Enhanced settings navigation with improved organization
- Customizable notification channels for Android 8.0+ devices
- Modern, intuitive and responsive mobile-optimized interface
App Screenshots
Download AndroidIRCx
📱 Scan to Download
Scan this QR code with your mobile device to download the APK directly
Points to: androidircx.com/uploads/app-release.apk
📖 Installation Guide
- Enable Unknown Sources: Go to
Settings → Security → Install unknown appsand allow your browser to install apps - Download the APK: Click the "Download APK (Direct)" button above or scan the QR code with your mobile device
- Locate the File: Open your device's Downloads folder or notification panel
- Install the App: Tap on
app-release.apkand follow the installation prompts - Verify (Optional): Compare the SHA-256 hash of the downloaded file with the one shown above
- Launch AndroidIRCx: Open the app — then follow the How-to Wiki & Setup Guide to connect to your first network and start chatting.
File Verification
Verify your download: After downloading, compare the SHA-256 hash of your file with the one displayed above to ensure file integrity.
On Windows: certutil -hashfile app-release.apk SHA256
On Linux/Mac: sha256sum app-release.apk
The calculated hash should match: 41aa08446d285ef4b294d930c435cab9956771f78639d0001ffbf5dbe81144b1
System Requirements
Minimum: Android 7.0 (Nougat, API 24) or higher
Recommended: Android 11 (API 30) or higher
Target: Android 15 (API 36)
Permissions required:
• Internet access
• Camera (for QR code key exchange)
• NFC (for NFC-based key sharing, optional)
• Foreground service (for persistent connections)
• Foreground service – data sync
• Notifications permission (Android 13+)
• Ignore battery optimizations (optional but recommended)
• Wake lock (prevents disconnects during sleep)
Current Version
Version 1.10.5
The latest version includes significant improvements and new features:
• **ZNC history replay no longer freezes the app.** Every incoming message used to make a native Keychain call to check for an encryption key; the answer is now cached (presence only, never the key). Replayed bouncer lines are recognised by their old server-time and skip notifications, sounds, away auto-replies, flood protection and DCC prompts.
• **Busy and big channels stay smooth.** Messages reach the screen at most every 50 ms in one update per tab (no more copying a tab's whole history per message), tabs keep the latest 1000 messages in memory (older ones load when you scroll to the top), and every IRC line is no longer stored a second time as a hidden raw message.
• **Large channels (Libera etc.):** user-list changes are combined (one update per 150 ms instead of one per JOIN/PART/QUIT/MODE), message rows no longer rebuild a map of all users, the user list is sorted even above 1000 users, and a list change no longer re-renders the whole app.
• Less work per render: stable styles and banner options, memoised message list, no animated scroll on every batch, no 2-second full re-render from typing cleanup, history saved without re-sorting 10,000 lines.
• One notification per channel or query, updated with a count and the last lines, grouped per network. It alerts at most every 30 seconds per conversation, and opening the conversation clears it.
• Replayed ZNC history never notifies.
• The installed scripts list can be sorted: enabled first, by name, or slowest first (time spent in hooks this session, shown on each script) — so a script that slows the app is easy to find and switch off.
• **Broken pipe no longer leaves a dead connection.** After a write failed with EPIPE / connection reset (typically when Android cut the app's network in the background), the socket stayed "connected", every keepalive repeated the error and auto-reconnect never started. The dead socket is now dropped and the normal reconnect takes over.
• react-native-iap 16.7.2 → 17.0.1 (OpenIAP Client Protocol 1.0, openiap-google 4.0.0)
• react-native-nfc-manager 3.17.2 → 3.17.5 (NDEF emoji/Unicode decoding fixes; 4.0.0 held — its Android codegen does not run on RN 0.82+)
• react-native-keyboard-controller 1.22.6 → 1.22.7
• Tooling: eslint 10.12.0, prettier 3.9.10, @testing-library/react-native 14.1.0, test-renderer 1.3.1, @types/node 26.6.5
• Transitive pins refreshed: fast-xml-parser 5.11.2, fast-xml-builder 1.3.1, flatted 3.4.4, browserslist 4.29.3, yaml 2.9.1, picomatch 4.0.7, postcss 8.5.30, uuid 14.0.3, @protobufjs/utf8 1.1.2, shell-quote 1.12.0, @grpc/grpc-js 1.14.6, sharp 0.35.5
• compression 1.8.2 (dev server only, not shipped in the app; GHSA-vc2v-76pw-4v95)
• Still on hold: Babel 8 (@react-native/babel-preset 0.87.1 requires @babel/core ^7) and TypeScript 7 (typescript-eslint supports < 6.1.0)
❓ Frequently Asked Questions
I'm new — how do I set up and use the app?
New to IRC or AndroidIRCx? Our How-to Wiki & Setup Guide walks you through first-time setup, connecting to a network, joining channels, and the most common questions step by step. Start there and you'll be chatting in minutes.
What is IRC?
IRC (Internet Relay Chat) is a real-time text messaging protocol that has been around since 1988. It allows users to communicate in channels (chat rooms) or private messages. AndroidIRCx brings this classic communication platform to modern Android devices with enhanced security and features.
Is AndroidIRCx safe to use?
Yes! AndroidIRCx is completely open-source, regularly scanned by VirusTotal, and includes end-to-end encryption, SSL/TLS support, and SASL authentication. All connections are secured, and the app undergoes security audits. You can verify the SHA-256 hash to ensure file integrity.
Why isn't it on the Google Play Store?
AndroidIRCx is available on Google Play Store! However, we also provide direct APK downloads for users who prefer to install manually or need access to beta features before they're published to the store.
What Android version do I need?
AndroidIRCx requires Android 7.0 (Nougat) or higher. Android 11 is recommended for the best experience. The app is optimized for modern Android versions and targets Android 15.
Can I connect to multiple IRC networks?
Absolutely! AndroidIRCx supports simultaneous connections to multiple IRC networks and servers. You can manage all your IRC communities from one app with multi-network support and failover capabilities.
How do I verify the APK is authentic?
After downloading, compare the SHA-256 hash of your downloaded file with the hash displayed on this page. You can also check the VirusTotal scan results linked above. The source code is available on GitHub for full transparency.
Can I build the app without ads or Crashlytics?
Yes. AndroidIRCx is open source, so anyone can clone it from GitHub and build their own APK. For a local build without ads, keep scripting time enabled and set the supporter state to on in the React Native Zustand store (supporter always on).
Where can I get help or report issues?
First, check the How-to Wiki — it answers most setup questions. Still stuck? Join our IRC network at chat.androidircx.com or visit irc.dbase.in.rs. You can also report issues on our GitHub repository.