Full release notes and APK downloads are also available on GitHub Releases.
v1.6.2
Latest
06 May 2026
v1.6.1
Latest
27 April 2026
Bouncer Support
- Bouncer type selector - new Bouncer type dropdown on the network edit screen (soju, ZNC, Generic, None). soju and ZNC use different orderings of
/and@in the username; the selector composes the correct syntax automatically. - Separate Network name and Client ID fields - previously a single field. Client ID enables per-client buffers on ZNC (
clientbuffer) and per-client history on soju. /znc <command>- shorthand for/msg *status <command>./bouncerserv <command>(alias/bnc) - shorthand for/msg BouncerServ <command>on soju.- BouncerServ replies routed to the server buffer so they don't clutter a query window.
- Spec-correct
BOUNCER NETWORKparsing - handles the*deletion sentinel and surfaces unconfigured upstreams as a hint.
Bouncer Bug Fixes
- Double playback on ZNC ≥1.7 -
znc.in/server-time-isois no longer requested when the server already advertisesserver-time. - Stray
*playbackquery window - our own echoedPLAYcommands are now filtered so they don't open a query buffer. - Duplicate playback on reconnect -
PLAYandCHATHISTORY LATESTare skipped when a JOIN is part of buffer replay. - Oversized IRC lines (>32 KiB) are dropped with a one-shot notice instead of disconnecting. Limit raised from 8 KiB to 32 KiB.
- Duplicate self-messages from echo-message plus chathistory overlap - msgid-based second-layer dedup.
- SASL status messages shown twice - 903–908 numerics were emitted both as a Status/Error event by the SASL state machine and as raw ServerText by the generic numeric handler. Each event now appears exactly once.
- Pseudo-user NOTICEs opened query buffers - ZNC replies to
/msg *status(and the new/zncshorthand) with NOTICE, not PRIVMSG. The NOTICE handler didn't know about pseudo-user routing, so each reply spawned a*statusquery window. Routing now applies to both PRIVMSG and NOTICE, and matches any nick starting with*(so*playback,*clientbuffer,*log, and any user-loaded ZNC module route correctly).
Security
- TOFU fingerprint pinning enforced - first connect with Allow invalid certs on learns and persists the SHA-256 fingerprint; subsequent connects verify it and refuse mismatches with a warning. Fingerprint parsing tolerates hand-pasted values (uppercase, missing colons, whitespace).
- Shared
SSLContextcache enables TLS session resumption on reconnect.
Connection
- Rejoin on kick setting (off by default). Rejoins once after 1.5 s; a second kick within 60 s is suppressed to avoid loops against
+i/+k/+bmodes. - Autoconnect fan-out staggered by 500 ms to stay under typical bouncer rate limits.
Other Fixes
- Orphaned SASL and server passwords in the secret store are cleaned up when Import backup removes their profiles.
- Chat crash on channel merge - fixed an
IllegalArgumentExceptionfromLazyColumnthat could fire when two buffers with case-variant names (#Channeland#channel) merged. The chat display-item cache was keyed on (count, newest-id, oldest-id), which could stay stable across a sort that reordered interior messages, producing duplicateLazyColumnkeys. - "Internal OpenSSL error or protocol error" shown as a raw library message after a Play Store update - the mapping now walks the exception cause chain and matches the BoringSSL state-machine-confusion signature that fires when the previous process was killed without a clean TLS close_notify. Rendered as "TLS session interrupted - connection will retry"; the existing exponential backoff handles the rest.
/ban nick,/kick nick,/kb nickwere silently broken - the parser treated the first arg as the channel name and required/ban #channel nickto actually do anything. Fixed: nick comes first by default, optional channel either before or after, matching the existing/op//voiceconvention.
Channel-op Improvements
- Mask-aware bans -
/ban,/kb,/mutenow accept a mask-type keyword:nick(default,nick!*@*),user(*!ident@*),host(*!*@host),domain(*!*@*.example.com),account(IRCv3 extban$a:account). Examples:/ban spammer host,/kb spammer account flood. The non-nick types issue a WHOIS in the background and apply the ban once the reply arrives; if the user is offline or services-unauthenticated, falls back to a nick mask with a status message. - Raw masks pass through -
/ban *!*@evil.exampleor/unban $a:troublemakernow work; previously the literal mask was wrapped in anothernick!*@*. /muteand/unmute(aliases/quiet,/unquiet) - set/clear+qon ircds that support it, fall back to+botherwise. Same mask-type syntax as/ban.
Input
- Chromebook and hardware keyboard Enter sends the message - pressing Enter on a physical keyboard now sends, matching desktop chat conventions. Shift+Enter inserts a newline for multi-line composition. Up/Down arrow still recall input history but only when the cursor is on the first/last line, so they don't fight cursor movement during multi-line edits.
Breaking
- Backup format bumped to v3. Older builds can still open v3 backups; they just won't understand the new fields (bouncer type, client ID, TOFU pin, rejoin-on-kick).
- Usernames containing
@no longer auto-append/network. If you previously hand-rolledmyname@phonein the Username field to use ZNC per-client buffers, move the@phoneportion into the new Client ID field.
v1.6.0
15 April 2026
Improvements
- UI fixes, stability improvements.
Bug Fixes
- DCC outgoing, welcome splash, and more.
v1.5.9
10 April 2026
New Features
- SDCC - TLS-wrapped file transfers.
Improvements
- UI fixes, SASL improvements.
v1.5.7
21 March 2026
New Features
- ASCII Rendering for bots that provide ascii/ansii art, render this in groups to fit the chat screen with no line spaces.
- irc:// links irc:// and ircs:// links now register with the app.
Improvements
- Nick colours customise your nick colour.
- /LIST added sorting by name/users to the channel list.
- Notifications Tapping a highlighted message now scrolls to that message.
Bug Fixes
- /join #channel [key] would not parse if there was a [key] - improve IntroTour
v1.5.6
14 March 2026
New Features
- Inline Media Previews - Images load in-line with a "Load preview" button; YouTube links show an embedded player. Images are capped at 5 MB. Two new settings:
Enable inline mediaandWi-Fi only. Both are disabled by default. - SASL Certificate Labels - The certificate import UI now clearly labels what each file type is: select a
.crt/.pembundle, a separate.crt + .keypair, or a PKCS#12.p12/.pfxfile.
Bug Fixes
- Unread Marker - Now only appears when you scroll up past the visible messages.
- Scrolling - Improved.
- ANSI Colour - Now parsed correctly.
- Notification Drawer - Alert messages now surface reliably.
- Input Cursor - Theming fixed.
v1.5.5
7 March 2026
UI
- Nicklist Font Scales with Panel Width - Dragging the nicklist divider now also adjusts nick font size so all nicks stay on one line across the full drag range.
- Better Colour Code Support - More IRC control codes handled; improved font-style picker for bold/italic/underline/strikethrough.
- DCC Chat Notifications - Incoming DCC CHAT offers generate a notification with a deep link to the
DCCCHAT:peerbuffer and an "Open Transfers" action button. - Transfers Screen DCC Chat Cards - Pending offers show a badge count, highlighted colouring, and a one-tap "Accept & Open" button.
- Readline Marker - A thin line marks where you left off reading.
IRCv3
- Typing Indicators - New capability (disabled by default); shows when a user is composing a message.
away-notifyfully implemented - AWAY messages drive live status lines in every channel. Away state seeded from WHOX flags on join, cleaned up on QUIT/NICK/disconnect.extended-joinaccount display - JOIN lines show[logged in as account]when the user is authenticated with services.draft/relaymsg- Relay bot messages attributed to the relayed nick, including ACTION and reply-tag support.CAP NEW/CAP DELevents now displayed in the server buffer.- More event handlers -
ChannelRenamed,MessageReaction,ChannelModeChanged. draft/channel-renamerace condition fixed.- WHOX away flags correctly seeded from 354 replies.
Translations
- All 13 languages complete: Arabic, Chinese, Dutch, French, German, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, Turkish.
Commands
/setname- Change realname viaSETNAME(requiressetnameCAP)./query-/query <nick>opens a PM buffer;/query <nick> <message>also sends.- Command completion additions -
query,ns,cs,as,hs,ms,bsin the/-completion bar. - Nick @mention completion - Type
@in a channel to get a popup; selecting insertsnick:at line start or@nickmid-sentence.
Security
- TOFU Certificate Pinning - Replaces the all-or-nothing Allow invalid certificates toggle. First connect learns and persists the server's SHA-256 fingerprint; subsequent connects verify it. A fingerprint change aborts the connection with a clear warning.
- SASL Secret Migration Reliability - Migration flags are always written regardless of errors, preventing indefinite retry on each launch.
Bug Fixes
- Auto scroll no longer disabled when tapping a buffer that is still loading.
- Font size slider no longer causes the settings screen to jump to the top.
- Post-connect commands with leading/trailing whitespace are now trimmed before dispatch.
- Passive DCC offers with
port == 0but no token no longer crash - a readable error is shown instead.
v1.5.4
22 February 2026
New Features
- Drag-and-Drop Network Reordering - Reorder networks in the Networks screen and sidebar by holding and dragging.
- Matrix Theme - Green-on-black aesthetic (in addition to Dark, Light, and System themes).
- Backup & Restore - Export all network configurations and app settings to a JSON file; import to restore. Accessible from Settings.
- Improved Channel Op Tools - Enhanced panel with more mode controls.
- IRCop Tools - Displayed in the menu when the user has umode
+o: force join/part, broadcast to all users. - Themed Adaptive Icon - Monochrome layer for Android 13+ themed icons.
UI
- MOTD on connect resizes to fit the server buffer.
- Improved message input box styling and spacing.
Connection
- Fixed SSL handshake failures on certain MediaTek, MIUI, and OneUI devices.
- Improved ZNC and soju bouncer compatibility.
App
- Fixed compilation warnings and deprecations.
- Battery improvements: Compose now uses
collectAsStateWithLifecycleto stop observing flows when the app is in the background.