HexDroid IRC
Welcome to HexDroid
Let\'s get you set up before we start.
Language
Nickname
Choose your IRC nickname
This will be used across all default server profiles.
Continue
Nickname can\'t be empty
Nickname contains invalid characters
Nickname must be 16 characters or fewer
Back
Cancel
Save
Delete
Close
Done
Next
Skip
Run
Set
Reset
Manage
Not now
Copy
Collapse all networks
Mark all as read
Search buffer
Search buffer
Text or sender…
Search across all buffers on this network
Search
Settings
Intro tour
A quick walkthrough of the main screens and shortcuts.
Appearance
UI
Landscape Sidebar Settings
Portrait Nicklist
Highlights
IRC
Notifications
Logging
Privacy
IRCv3 History
File transfers
Font size
Colourise nicks
My nick colour
Auto
Custom
Pick colour
Reset
Enable mIRC colours
Enable ANSI colours
Shrink ASCII/ANSI art
Show topic bar
Show timestamps
Timestamp format (Java)
Hide MOTD on connect
Hide join/part/quit messages
Hide away/back messages
Coloured channel events
Hide topic on entry
Show network/chans by default
Show nicklist by default
Highlight on nick
Extra highlight words (one per line)
Compact mode
Network tabs
Show networks as tabs instead of a tree.
Network bar above input
Show channel switcher at the bottom of the chat.
Side pane nicklist
Show the nicklist as a resizable side pane instead of a popup. When enabled, the nicklist toggle acts as a persistent show/hide.
Ignore list
Hide messages and DCC offers from specific nicks (per network).
Quit message
Part message
Auto-reconnect
Reconnect interval (seconds)
How often to retry when the connection drops.
Seconds
Auto-connect on startup
Rejoin on kick
Automatically rejoin a channel after being kicked. A second kick on the same channel within 60 seconds is not rejoined, to avoid loops against +i/+k/+b modes.
Enable notifications
Highlight notifications
Private message notifications
Show connection status notification
Sound on highlight
Vibrate on highlight
Enable logging
Log server buffer
Log folder
Choose folder
Retention days
0 = keep forever
Keeping logs forever (auto-delete off)
Max scrollback lines
History fetch limit
Number of messages to request per channel on join (CHATHISTORY LATEST). Set to 0 to disable.
Messages
Count fetched history as unread
Trigger notifications for fetched history
Download folder
Incoming port min
Incoming port max
Keep the connection alive
Enable DCC
Open app settings
Battery optimization list
Theme
Dark
Light
System
Open Sans
Inter
Monospace
Custom font file…
Chat font style
Regular
Bold
Italic
Bold + Italic
Vibration intensity
Low
Medium
High
Nicklist
%1$s • %2$d users
Not in a channel
Disconnected
Type a message…
Channel tools
Topic
New topic
Kick / Ban
Nick
Reason
Duration
e.g. 1d, 2h; 0 is usually permanent
Kick
Ban
Kick+Ban
Networks
Connect
Disconnect
Edit
Add network
Auto-connect
Edit network
Add network
Name
Host
Port
Use TLS (SSL)
Allow invalid certificates
Pinned certificate fingerprints (TOFU)
TOFU pinning only engages when \"Allow invalid certificates\" is on. The fingerprints below are kept for reference; the current connection is verified by the system CA chain instead.
Reset & re-pin (clears all)
STS policy active
This server published a Strict Transport Security policy: connections are forced onto TLS and certificate errors cannot be bypassed until the policy expires or the server withdraws it.
Forget STS policy for this host
Retry
Trust this server too (round-robin DNS)
Nickname
Alt nickname
Username
Real name
Your networks
Tap + to add a server, or edit the ones already here. HexDroid ships with a few defaults.
Connect
Tap Connect to open a connection. You can have multiple networks connected at once.
Buffer list
This panel lists every server, channel, and private message you have open. Swipe or tap the ☰ button to show it. Tap any item to switch to it
Send messages
Type here to chat. Slash commands work too: /join #channel, /msg nick text, /part, /whois nick, /me action text, and more.
More actions
This menu reaches channel list, file transfers, ignore list, network settings, and more. It also shows channel mode and topic management when you\'re an op.
Appearance & settings
Choose a theme, adjust font size, tweak notification sounds, privacy options, and much more. Changes apply instantly.
File transfers (DCC)
Enable DCC to send and receive files directly between users. If you\'re behind a router, Passive DCC avoids port-forwarding headaches. SDCC is also supported.
Send a file
Enter the target nick, then pick a file from storage. Incoming DCC offers also arrive here, accept or reject them from notifications.
Need help?
Connect to AfterNET and join #HexDroid for support, feature requests, or just to chat with other HexDroid users.
AfterNET isn\'t in your list yet: tap Add AfterNET to add it, then connect and join #HexDroid for support.
Add AfterNET
Replay this tour
You can run the walkthrough again any time from Settings → About. Tap Done to finish.
About
File transfers
Ignore list
Channel list
English
Deutsch
Español
Français
Italiano
Nederlands
Polski
Português
Русский
Türkçe
العربية
日本語
한국어
中文
Advanced IRCv3 caps
Basic IRCv3 features enabled by default. Switch on to see advanced options.
Bouncer caps
Enable DCC
DCC send mode
Send file
Target nick
Pick file to send
DCC Chat
Start DCC CHAT
Incoming chat offers
Incoming file offers
No chat offers yet.
No file offers yet.
Accept
Reject
Resume
Resuming from %1$s
%1$s partially downloaded. resume?
Accept & Open
Active transfers
No transfers in progress.
Share file
Tap to mention
IRC Connection
IRC Highlights (Silent)
IRC Highlights
IRC Private Messages
DCC Requests
Incoming DCC chat from %1$s
Tap to open or use Transfers to accept/reject
Incoming file from %1$s
DCC complete
%1$s saved to %2$s
Open Transfers
%1$s is typing…
%1$s and %2$s are typing…
Several people are typing…
Send typing indicators
Let others see when you are composing a message (draft/typing). Disabled by default for privacy.
Show others\' typing indicators
Display an indicator when someone else is composing a message in a channel or query.
Channel renamed from %1$s to %2$s
%1$s reacted with %2$s
%1$s removed reaction %2$s
History available for
Network Name
Host
Port
Nickname
Alternate Nick
Username (ident)
Username
For bouncer profiles, this is your login name on the bouncer
Real Name
Use TLS
Allow insecure plaintext
Connect on app start
Show in channel switcher
Auto-reconnect on disconnect
Bouncer Mode
Bouncer type
None / unspecified
soju (user/network@clientid)
ZNC (user@clientid/network)
Generic (user/network)
Network name (optional)
Which upstream network on the bouncer this profile targets (e.g. \"afternet\", \"libera\"). Combined with the bouncer username field above and, depending on which auth method you choose, in SASL or the PASS line.
Client ID (optional)
A short identifier for this device, e.g. \"phone\" or \"hexdroid\". Enables per-client buffers and history when the bouncer supports it (ZNC clientbuffer, soju per-client history). Leave blank to share a single buffer across all clients.
Server password (PASS)
Enable SASL
Mechanism
Username (authcid)
Password
Recommended for bouncers (leave the username field blank to use the bouncer username from the General section above.)
Certificate format
PEM (.pem/.crt/.cer)
CRT + KEY (.crt/.key)
PKCS#12 (.p12/.pfx)
Key password (if encrypted)
Encoding
Delay before commands (seconds)
Wait this many seconds after connecting before running commands
Service auth command
e.g., /msg NickServ IDENTIFY password
One command per line. Append ;wait N to pause N seconds after that line, e.g. /msg NickServ identify pass ;wait 3
No network selected
Undo remove
Selected
Add to favourites
Remove from favourites
Drag to reorder
Insecure connection blocked
Local network access required
Connecting to {0} requires the Local Network permission.
This is a new Android 17 requirement for connecting to servers on your local network (home network, bouncer, etc.).
Grant permission
Plaintext IRC connections are not encrypted and can expose your messages and password.
To connect to %1$s without TLS, you must explicitly allow insecure plaintext connections for this network.
Allow & Connect
Reconnect
Channels
Search channels / topic
Fetch current modes
Key / password
Max users
Message
Channel
Nick or host mask
Bans
Quiets
Except
Invex
Text formatting
Send message
User list
Drag to reorder
Clear all
Channel list
File transfers
Settings
Networks
System info
IRCop tools
About
Reconnect
Disconnect
Exit
Launch scripts
Edit topic
Jump to unread
Scroll to bottom
Close %1$s
Cancel reply
Encryption configured (%1$s, %2$s)
Upload file to server
Reply to %1$s
Delete message
Removes it for everyone via the server
Copy messages…
Select multiple messages to copy
K-line
G-line
D-line
Z-line
Shun
Kill
SAJoin
SAPart
WALLOPS
GLOBOPS
LOCOPS
ADMIN
MOTD
Links
Uptime
Nick to ignore
No ignored nicks.
No networks configured yet.
Add
Remove
Export backup
Restore backup
Restore backup?
Restore
OK
System default
Matrix
Custom font file…
Share / Open file
Open Website
Auto
Active
Passive
Channel lists…
Clear
Connection
Identity
Auto-connect & Password
SASL Authentication
TLS Client Certificate
Auto-join Channels
Post-connect Commands
Character Encoding
IRCv3.x Capabilities
Proxy (SOCKS/Tor)
Proxy type
None (direct connection)
SOCKS5
SOCKS4a
Proxy host
Port
Username (optional)
Password (optional)
Tor (Orbot)
Tor Browser
The destination is resolved at the proxy (remote DNS), so .onion addresses work and the server hostname isn\'t leaked to your local network. For Tor, run Orbot and use 127.0.0.1 with port 9050. DCC file sends are routed through the proxy and use passive mode automatically; receiving passive offers and DCC chat hosting are unavailable while a proxy is active, since they require listening outside the tunnel.
Notifications
Notify on errors
Show a notification for server and connection errors. Off by default; transient reconnects never notify.
Mute highlights from
e.g. GitHub, *-bot, or /^(travis|circleci)/ [One per line]
One sender per line whose messages should never highlight or notify. Use a plain nick, an IRC wildcard (* and ?), or a regular expression wrapped in /slashes/. Messages still appear in their channel.
Network
Skips auto-join, requests playback of missed messages
Uses TLS client certificate for authentication
Selected: %1$s
No certificate selected.
The .pem should include both your certificate and private key.
Choose PEM
Replace PEM
Choose .crt
Replace .crt
Choose .key
Replace .key
Choose .p12/.pfx
Replace .p12/.pfx
If the file is password protected, enter the password below.
Certificate: %1$s
Key: %1$s
One per line. Format: #channel [key]
Additional commands (one per line):
Recommended. Starts with UTF-8 and auto-detects other encodings.
Use for Bulgarian, Russian, Serbian, and other Cyrillic networks.
Standard Unicode. Works with most modern IRC networks.
Manual encoding selection for legacy networks.
Please select both a certificate and a key
Intro tour
A quick walkthrough of the main screens and shortcuts.
UI font
Chat font
Font size
Internal storage
Custom folder selected
Downloads (default)
Custom folder
Backup & Restore
Export your network configurations and app settings to a JSON file. Passwords and TLS certificates are not included.
Restoring replaces all current networks and settings.
This will replace all current networks and settings with those in the backup file. Passwords were not included in the backup and will need to be re-entered. This cannot be undone.
Error
Done
To stay connected overnight, please disable Battery Optimization for this app and allow background activity.
OnePlus tip: also lock the app in Recents (padlock) and ensure background activity / auto-launch is allowed in battery settings.
System
Matrix
Terminal
Media Previews
Enable image & video previews
Allow previews for images and YouTube links posted in chat. Twitter/X links are resolved via fxtwitter.com - Previews are not automatic.
Wi-Fi only
Only load previews when connected to Wi-Fi to avoid using mobile data.
System default
Send file
DCC CHAT
DCC is currently disabled. Turn it on to send/accept files.
Auto: try Passive DCC or fall back to Active if there is no reply.
Active: classic DCC SEND (the receiver connects to you).
Passive: request the receiver to open a port, then you connect to them.
Incoming chat offers
Incoming offers
Transfers
unknown size
passive (waiting for port)
Error: %1$s
Topic
Channel modes
No external messages
Block messages from users not in the channel
Ops-only topic
Only ops can change the topic
Moderated
Only voiced users and ops can speak
Invite only
Users must be invited to join
Secret
Channel hidden from /LIST and /WHOIS
Private
Channel shown as private in /LIST
Registered only
Only registered nicks can join
No colour
Strip mIRC colour codes from messages
No CTCPs
Block CTCP messages to the channel
Channel key (+k)
User limit (+l)
Kick / Ban
Current modes: %1$s
IRCop tools
Target
Punishments
No reason
Force join / part
Broadcast
Server queries
Text colour
Background
Code %1$s %2$s
No entries.
set by %1$s
Refresh
Quiet lists not supported on this server
Exception lists not supported on this server
Invex lists not supported on this server
This server doesn\'t advertise a +q quiet list.
This server doesn\'t advertise a +e exception list.
This server doesn\'t advertise a +I invite-exemption list.
Ban list (+b)
Quiet list (+q)
Except list (+e)
Invex list (+I)
Unban
Unquiet
Remove
IRC Colour
Open query
Start a private message conversation
Whois
Show user info, channels, idle time
Mention
Insert @%1$s into your message
Direct connection (DCC)
Send file
Send a file via DCC SEND
DCC is disabled in settings
DCC Chat
Open a direct peer-to-peer chat session
Ignore
Unignore
Hide all messages from this user
Show messages from this user again
Mute notifications
Unmute notifications
Mute highlight & PM alerts; messages still show
Allow alerts from this user again
Moderation
Kick / Ban…
Remove or ban %1$s from this channel
Channel privileges
Give op (+o)
Take op (-o)
Voice (+v)
Devoice (-v)
Network
Ignored nicks are matched case-insensitively and apply to chat + notices + incoming DCC offers on this network.
Tip: you can also ignore someone from the nick list or by tapping their name in chat.
Loading… (%1$d)
Join
IRC Client for Android
Documentation & Support
Visit the website for guides, FAQs, and to report issues.
Contribs
Want to contribute?
Use SDCC (TLS encryption)
Outgoing file transfers use DCC SSEND (TLS-wrapped). The remote client must also support SDCC.
Users:
Min
Max
tap Apply to refetch with these limits
Filters the loaded list (this server can\'t filter by size remotely)
Apply
Edit topic
Topic
Set
Bouncer networks
Upstreams reported by %1$s
Refresh
No upstreams reported yet. Tap refresh once the bouncer has registered.
connected
connecting
disconnected
unknown
Import
Imported
(unnamed upstream)
Dismiss
For bouncers, SASL is recommended. If you do use this PASS field instead, just enter the password; the bouncer username and network from the fields above are prepended automatically. Typing the full username/network:password also works.
Edit metadata
Your metadata
Profile details other clients on this network can see. Leave a field blank to clear it.
Emptying a field and saving removes that value from the server.
Display name
Status
Nick colour (6 hex digits)
Enter exactly 6 hex digits, e.g. 3f8ac2
Avatar URL (https)
Homepage URL
Pronouns
Bio
Register account
Register account
Register an account with this network directly, without contacting services.
Account name (optional)
Email (required)
Email (optional)
Password
Confirm password
Register
Verification code
Verify
Enter the verification code the server sent you.
You are registered as %1$s and logged in.
your account
Save this password for automatic login (SASL) next time
Registration failed. Check the details and try again.
Away
Bot
Add
Mask, or account for extban
Ban account
Extended bans supported (%1$s): %2$s
Copy
Share
Paste
Confirm
Import
Clear
Encryption
for %1$s
channel
query
Messages in this %1$s are sent and received in cleartext.
Active:
+AGE is on and encrypts messages here. Your saved %1$s key is kept but stays unused until you turn +AGE off.
Safety number
Verify this matches what the other party sees.
Cipher
HexDroid\'s Authenticated Group Messaging. One 256-bit random key, per-message authenticated encryption. You share the key.
Authenticated Group Exchange. Keys are negotiated automatically and rotate forward. Forward-secrecy for PMs.
Only use FiSH when the other side can\'t speak +AGM or +AGE.
Regen
Generate a new key? The current key stops working immediately and the other party must import the new one.
Remove encryption for this %1$s? Messages will be sent and received in cleartext.
Generate key
Your +AGE safety number
Copy safety number
Share this so contacts can confirm they\'re really talking to you.
This channel
This contact
No +AGE identity seen for %1$s yet. It pins automatically the first time they advertise one (trust-on-first-use); then you can verify it here.
Verified.
Pinned but not verified. Compare this with what %1$s reads out, then confirm.
Mark verified
Turn off +AGE
Turn on identity-based (Ed25519) forward-secret (X25519/X3DH) encryption here. Keys are exchanged automatically once both sides advertise +AGE.
Turn on +AGE
Reveal key to share
Key (32 bytes, base64)
Anyone with this string can decrypt messages for this target.
Paste a key from another user
Base64-enc 32-byte key
Reveal passphrase
Passphrase
Type the same passphrase your FiSH contact will use.
Passphrase (4-56 chars)…
Short passphrases (<8 chars) are easy to brute-force. Use at least 12.
Load preview
Close player
YouTube thumbnail
Twitter/X video thumbnail
Image preview
Play video
Open tweet video
Dismiss preview
Failed to load preview
Preview too large (max 5 MB)
No media in this tweet
Wi-Fi only – connect to Wi-Fi
Stability cooldown over. Resuming auto-reconnect…
Network lost. Waiting for connectivity…
Network changed. Reconnecting…
Network available. Reconnecting…
Disconnected
Reconnecting in %1$s (attempt %2$s)…
Network available. Retrying…
Battery saver is active - reconnect paused. Will retry when battery saver is off.
Battery saver off. Retrying…
Retrying to connect (attempt %1$s)…
Resuming connection…
Server CAP LS complete
CAP NEW: %1$s
CAP DEL: %1$s
CAP ACK: %1$s
Starting SASL…
CAP NAK: %1$s
SASL authentication succeeded
SASL PLAIN aborted: refusing to send password over an unencrypted connection. Enable TLS or switch to SCRAM-SHA-256.
SASL PLAIN aborted: no password set for this profile. Open Network Settings and re-enter the SASL password (passwords are not included in backups for security reasons).
SASL PLAIN: server aborted authentication
SASL PLAIN: unexpected server challenge "%1$s", aborting
SASL EXTERNAL: server aborted authentication
SASL EXTERNAL: unexpected server challenge "%1$s", aborting
SASL SCRAM-SHA-256 aborted: no password set for this profile. Open Network Settings and re-enter the SASL password (passwords are not included in backups for security reasons).
SASL: could not decode server AUTHENTICATE payload
SCRAM state missing
SASL SCRAM-SHA-256 aborted: %1$s
SCRAM: server signature verified
SCRAM server signature verification failed
Looking up %1$s for %2$s-based ban…
CTCP %1$s from %2$s ignored (rate limited)
CTCP VERSION reply sent to %1$s
CTCP PING reply sent to %1$s
CTCP TIME reply sent to %1$s
CTCP %1$s reply sent to %2$s
CTCP CLIENTINFO reply sent to %1$s
CTCP SOURCE reply sent to %1$s
Unknown CTCP %1$s from %2$s
* %1$s from %2$s: %3$s
Usage: /knock <channel> [reason]
Server does not support KNOCK
CTCP %1$s sent to %2$s
CTCP FINGER sent to %1$s
CTCP USERINFO sent to %1$s
CTCP CLIENTINFO sent to %1$s
Usage: /setname <new realname>
Server does not support SETNAME (setname CAP not negotiated)
CTCP PING sent to %1$s
Looking up %1$s...
Resolved to:
No resolution found for %1$s
DNS lookup failed: %1$s
Unknown error
Connecting…
TLS: %1$s
Using encoding: %1$s
Regained primary nick %1$s.
Attempting to regain primary nick %1$s…
Metadata: unsubscribed from %1$s
Metadata subscriptions: %1$s
(none)
MONITOR list is empty
MONITOR list (%1$s): %2$s
Negotiating capabilities…
Auto-detected legacy encoding: %1$s — you can set this explicitly in Network Settings
Nick in use; trying alt nick: %1$s
Nick in use; trying: %1$s
%1$s%2$s — %3$s affected
No matches for \"%1$s\"
%1$s wants to talk with +AGE end-to-end encryption. Turn it on from the lock menu to encrypt this conversation.
STS: %1$s requires TLS - connecting securely on port %2$s
Please turn on WiFi or Mobile data to auto-reconnect.
Connection error: %1$s (stack trace in logcat)
/agm-key gen [target] | set <target> <b64> | clear <target> | info [target]
/agm-key gen needs a target (or run it inside a channel/query)
AGM key generated for %1$s. Fingerprint: %2$s
On the other device, run: /agm-key set %1$s %2$s
(Verify the fingerprint matches on both sides before sending anything sensitive.)
Usage: /agm-key set <target> <base64>
/agm-key set: invalid base64 in key argument
/agm-key set: expected 32-byte key (got %1$s bytes after base64 decode)
AGM key installed for %1$s. Fingerprint: %2$s
Failed to store key: %1$s
/agm-key clear needs a target (or run it inside a channel/query)
AGM key cleared for %1$s. Messages will now be sent in cleartext.
/agm-key info needs a target (or run it inside a channel/query)
No encryption key configured for %1$s
%1$s: scheme=%2$s fingerprint=%3$s
Usage: /%1$s <emoji> [n] - n is how many messages back, default 1
/%1$s requires an active channel or query
This server doesn\'t support reactions (no message-tags cap)
/%1$s couldn\'t find %2$s with a server msgId - the server may not support message-tags
Usage: /find <text>
Usage: /gsearch <text>
No matches for \"%1$s\" across %2$s buffers
Found %1$s matches for \"%2$s\" - use /gsearch overlay to navigate
Ignore list is empty. Usage: /ignore <nick>
Ignored (%1$s): %2$s
Usage: /ignore <nick>
Usage: /unignore <nick>
Not connected.
Usage: /names #channel
Usage: /slap <nick>
Auto-reconnect halted: %1$s (manual reconnect needed)
Auto-reconnect halted: authentication failed. Fix credentials, then reconnect manually.
Auth failed — reconnect halted
SASL credentials unavailable. the Android Keystore key was invalidated (this can happen after a biometric or screen-lock change). Connecting without SASL; please re-enter your SASL password in Network Settings to restore services authentication.
+AGE WARNING: %1$s announced a different key (%2$s) to the one pinned for that nick (%3$s). Normal after a reinstall or on a second device, and also what a nick takeover looks like. Their +AGE messages are ignored until you decide. Verify the fingerprint out of band, then: /age trust %1$s or /age reject %1$s
Usage: /banlist #channel
Usage: /quietlist #channel
Usage: /exceptlist #channel
Usage: /invexlist #channel
Usage: /dcc chat <nick>
+AGE send failed; message not sent.
Ignoring %1$s
Unignored %1$s
Notifications muted for %1$s
Notifications unmuted for %1$s
Auto-reconnect halted: server rejected the connection.
TLS: Could not persist certificate fingerprint: %1$s
Mode %1$s %2$s
STS: policy for %1$s cleared by server
STS: TLS-only policy stored for %1$s (valid %2$ss)
STS: server requires TLS - reconnecting securely on port %1$s
Registered as %1$s
Reconnected
Waiting %1$ss before auto-join & commands…
Waiting %1$ss…
Incoming DCC file offer from %1$s: %2$s (Transfers screen to accept)
Auto-reconnect halted: TLS error is unlikely to fix itself. Adjust certificate trust settings, then reconnect manually.
Auto-reconnect halted: server unreachable (hostname doesn\'t resolve or port is closed). Check the host and port in Network Settings, then reconnect manually.
TLS: Certificate fingerprint learned and pinned (TOFU). Future connections will verify: %1$s
Certificate hostname mismatch: connected to %1$s but cert SANs are: %2$s. Connection allowed.
Ignored DCC RESUME from %1$s for %2$s — no matching send in progress.
DCC RESUME from %1$s has out-of-range position %2$s (size %3$s); ignoring.
Honouring DCC RESUME from %1$s at %2$s bytes.
Incoming DCC CHAT from %1$s - tap \'DCCCHAT:%1$s\' buffer, or open Transfers to accept
DCC CHAT offer from %1$s (%2$s:%3$s). Use /dcc accept %1$s or open Transfers to accept.
Closed buffer %1$s (not on channel)
Left %1$s
Auto-rejoin suppressed (kicked again within %1$ss)
%1$s: %2$s
please try again shortly
%1$s invited you here
Server added capabilities: %1$s
Server removed capabilities: %1$s
Bouncer network removed: %1$s
Bouncer network %1$s: %2$s%3$s [%4$s]
%1$s deleted a message
NAMES for %1$s: (none)
NAMES for %1$s (%2$s):
Log write failed for %1$s: %2$s
DCC from %1$s: local network permission required (Android 17+). Grant it in Settings → Apps → HexDroid → Permissions.
Accepted passive DCC offer: %1$s (listening on %2$s)%3$s
Requested DCC RESUME for %1$s at %2$s bytes…
Sender accepted RESUME at %1$s bytes (we asked for %2$s)
No DCC ACCEPT from %1$s — restarting transfer from the beginning.
Rejected DCC offer: %1$s
DCC CHAT disconnected%1$s
Can\'t accept passive DCC from %1$s while a proxy is active: it would require listening outside the tunnel. Ask them to send actively, or disable the proxy for this transfer.
Refusing DCC from %1$s: it advertises a private/LAN address (%2$s) that isn\'t reachable through the proxy. Disable the proxy for this transfer if they\'re on your LAN.
Refusing DCC CHAT from %1$s: it advertises a private/LAN address (%2$s) not reachable through the proxy. Disable the proxy for this network if they\'re on your LAN.
DCC CHAT failed: %1$s
DCC CHAT closed
DCC CHAT connected to %1$s
DCC CHAT not connected.
DCC CHAT send failed: %1$s
DCC CHAT from %1$s: local network permission required (Android 17+). Grant it in Settings → Apps → HexDroid → Permissions.
Connecting DCC CHAT to %1$s (%2$s:%3$s)…
DCC CHAT connect failed: %1$s
Rejected DCC CHAT offer from %1$s
Offering DCC%1$s CHAT to %2$s…
Sent DCC%1$s CHAT offer to %2$s (port %3$s)
DCC CHAT offer failed: %1$s
Offering %1$s to %2$s via DCC%3$s (active, port %4$s)…
Offering %1$s to %2$s via DCC%3$s (passive)…
%1$s accepted; resuming from %2$s bytes…
%1$s accepted; connecting…
Proxy active: using passive DCC (active send can\'t listen through a proxy).
DCC send complete: %1$s → %2$s
DCC send failed: %1$s
DCC send cancelled: %1$s
Disconnected
Connected
Plaintext disabled
Local network permission required
Not configured
Waiting for network…
Connecting…
Reconnecting…
Reconnecting in %1$ss…
Paused (battery saver)
Retrying to connect…
Connected to %1$s
Unstable - paused %1$s min
Unstable - reconnect paused
TLS error: reconnect halted
Event handler error: %1$s
Server unreachable: reconnect halted
Server rejected connection: reconnect halted
Server error: %1$s
DCC is disabled in settings.
Can\'t offer DCC CHAT while a proxy is active (it requires listening outside the tunnel). Disable the proxy for this network to use DCC CHAT.
Server password (PASS) rejected. If this is a bouncer profile, the password format is usually user:password or user/network:password.
SASL authentication rejected. Bouncers require valid SASL to route the connection. Check the SASL username/password (or client certificate) on this profile.
SASL authentication rejected. Check the SASL username/password (or client certificate) on this profile.
Authentication rejected.
Auto-reconnect halted; tap reconnect after fixing credentials.
reacted with
removed reaction
(ref: %1$s)
Server certificate fingerprint has CHANGED! Expected: %1$s • Got: %2$s - Connection refused. Auto-reconnect halted. If this server uses round-robin DNS (irc.example.tld), open Network Settings and tap \'Trust this server too\' to add the new fingerprint without losing the others. If the cert was rotated/renewed, tap \'Reset & re-pin\' instead - that discards every previously-trusted fingerprint and re-learns from scratch.
no local profile for \"%1$s\" - add one to connect to this upstream.
Scrollback from logs • Last message: %1$s
OK
Remove
Add
HexDroid logo
boxlabs
Port must be between 1 and 65535
EXTERNAL (client cert)
PEM (.pem)
CRT + KEY (.crt/.key)
Reset to 100%
Custom Aliases
No aliases yet.
Alias name (no “/”)
Expansion (a command, no “/”)
Add alias
Scripts
Load and manage .hex scripts (games, tools, custom commands).
this network
Disconnected
Server error: %1$s
TLS certificate fingerprint changed
Connect failed: %1$s
Connection error: %1$s
Registration timeout
Ping timeout
Registration timeout: the server did not send 001 within %1$ds
Proxy error: %1$s
TLS certificate verification failed. The server\'s certificate may be expired, self-signed, or untrusted.
TLS handshake failed. The server may not support TLS 1.2/1.3.
TLS handshake rejected by server. Check the port and TLS settings.
TLS handshake failed: %1$s
TLS session interrupted. The connection will retry.
TLS protocol error. The connection will retry.
TLS read error. The network may have changed.
TLS write error. The network may have changed.
TLS session closed
TLS error: %1$s
Connection refused. Check the hostname and port.
Network unreachable. Check your internet connection.
Connection timed out
DNS resolution timed out. The resolver is not responding.
Could not resolve hostname
Connection lost (broken pipe)
Connection reset by server
Connection closed
Disconnected: %1$s
⚠ Connection is unstable: %1$d ping timeouts in the last %2$d minutes. Auto-reconnect paused for %2$d minutes to avoid flooding the server. Tap Reconnect to retry sooner.
Usage: /%1$s %2$s
Usage: %1$s
Usage: /msg <nick|#channel> <message>
Usage: /query <nick> [message]
Usage: /kill <nick> [reason]
Usage: /notice <nick|#channel> <message>
Usage: /%1$s <nick> [#channel]
Usage: /redact [target] <msgid> [reason]
Usage: /metadata %1$s <key> [key...]
Usage: /verify [account] <code>
Usage: /monitor +nick[,nick] | -nick[,nick] | C | L | S%1$s
/%1$s needs a channel. Switch to one, or pass #channel as the first argument.
/%1$s needs a channel. Switch to one, or pass it as the second argument.
/invite needs a channel. Switch to one, or pass it as the second argument.
No text to send
Run /redact from the channel or query the message is in.
This server does not support message deletion (draft/message-redaction).
This server does not support IRCv3 metadata (draft/metadata-2).
This server does not support IRCv3 account registration. Try services instead: /ns REGISTER <password> <email>
This server does not support IRCv3 account verification. Try services instead: /ns VERIFY ...
This server registers your current nick as the account name, so omit the account argument. %1$s
" - this server requires an email address"
MONITOR is not supported by this server.
" (server advertises no limit)"
" (server limit: %1$d entries)"
Server does not support read markers
/dns is disabled while a proxy is active (a local lookup would bypass the proxy and leak the query).
(IPv6 records may exist but this device has no IPv6 connectivity)
%1$s is not logged in to services
Could not resolve the host for %1$s
Ban by %1$s failed: %2$s. Falling back to nick mask.
You are now an IRC operator
%1$s sets mode %2$s%3$s
%1$s invited %2$s to %3$s
Bouncer error: %1$s
Channel renamed: %1$s → %2$s
Channel renamed: %1$s → %2$s (%3$s)
Account %1$s registered. You are now logged in.
Account %1$s verified. You are now logged in.
Verification required for %1$s: %2$s. Complete it with /verify <code>
check your email
(already registered? try /verify <code>, or pick another name)
(choose a different password and try again)
(check the email address)
(re-check the code from the verification message)
(wait until fully connected, then try again)
(try again later)
+AGE is on for %1$s but this message wasn\'t encrypted, so it was NOT sent (HexDroid will not put it on the wire in the clear). Turn off +AGE here to chat normally.
%1$s is still in use; retrying quietly in the background (a lingering session usually clears within a few minutes).
Gave up trying to regain %1$s, still in use. Use /nick %1$s to retry.
Dropped an oversize inbound IRC line (>32 KiB). Connection kept alive; further drops will be silent.
SASL handler error: %1$s
MONITOR list is full (limit: %1$s). Could not add: %2$s
MONITOR list is full (limit: %1$s)
You\'re not on that channel
You\'ve reached the server\'s channel limit (%1$d)
You have joined too many channels
Cannot join channel
Cannot join channel (+l)
Cannot join channel (+i)
Cannot join channel (+b)
Cannot join channel (+k)
Password incorrect
— MOTD —
— End of MOTD command —
No MOTD found
Your hidden host is now %1$s
There are %1$s users and %2$s invisible on %3$s servers
operator(s) online
channels formed
unknown connection(s)
I have %1$s clients and %2$s servers
Current local users: %1$s Max: %2$s
Current global users: %1$s Max: %2$s
Channel URL: %1$s
Channel created on: %1$s
unknown
Away
%1$s is away: %2$s
%1$s is an IRC operator
%1$dh %2$dm %3$ds idle
signed on %1$s
End of /WHOIS list.
%1$s on channels: %2$s
%1$s has special/registered status
is logged in as
%1$s is logged in as %2$s
%1$s is marked as a bot/service
%1$s: actual host info
%1$s %2$s (metadata set)
is connected via SSL
No such nickname/channel
No such server
No such channel
No such channel: %1$s
Cannot send to channel
There was no such nickname
Unknown command
Unknown command: %1$s
Nickname is already in use
Not enough parameters
You may not reregister
You are banned from this server
Administrative info about this server
Admin location: %1$s
Admin info: %1$s
Admin contact: %1$s
Extended admin info: %1$s
Network callback registration failed: %1$s. Auto-reconnect on network change may not work on this device.
keystore error
Failed to save credentials: %1$s. Try again, or restart the app if the problem persists.
Failed to import certificate
Unable to open the output stream for the backup file
Backup saved.\nNote: passwords and certificates are not included.
Backup failed: %1$s
Unable to read the backup file
Backup restored.\nPasswords were not restored, so re-enter them in each network\'s settings.
Restore failed: %1$s
Parent profile not found.
Discover-and-clone is only available for soju and ZNC.
This bouncer network has no name yet. Try refreshing.
Already imported as \"%1$s\".
Imported \"%1$s\". Enable auto-connect to use it.
Imported \"%1$s\" with SASL PLAIN auth from the server password. Enable auto-connect to use it.
Imported \"%1$s\". The parent password looks pre-formatted for the bouncer, so review the clone\'s auth settings before enabling auto-connect.
Imported \"%1$s\". Set credentials and auto-connect on the new profile to use it.
discovered
state changed
Establishing +AGE encryption with %1$s…
+AGE encryption established with %1$s. Messages are end-to-end encrypted.
+AGE encryption with %1$s failed: %2$s. Messages are NOT encrypted.
+AGE is not available on this network.
+AGE: no identities awaiting a decision.
+AGE awaiting a decision:
Usage: /age trust <nick> | /age reject <nick> | /age pending
+AGE: pinned %1$s\'s new key. Their messages will verify again.
+AGE: discarded %1$s\'s new key; the previously pinned key stays authoritative.
+AGE: nothing pending for %1$s.
+AGE for %1$s is still keying with the other +AGE members. Your message was NOT sent. Try again in a moment.
Key is empty
Not a valid base64 string
Expected 32 bytes after base64 decode, got %1$d
Failed to store key: %1$s
Passphrase is empty
Passphrase must be at least 4 bytes
Passphrase must be at most 56 bytes (got %1$d)
No aliases. Add one with: /alias add <name> <expansion>
Usage: /alias add <name> <expansion> e.g. /alias add bl msg *backlog $channel $1
Usage: /alias remove <name>
Usage: /alias [list] | add <name> <expansion> | remove <name>
Alias name can\'t contain spaces or \'/\'.
Alias saved: /%1$s > %2$s
No such alias: /%1$s
Alias removed: /%1$s
the latest message
message #%1$d back
You are now known as %1$s
%1$s is now known as %2$s
Now talking on %1$s
%1$s (%2$s) has joined %3$s
logged in as %1$s
You have left channel %1$s
%1$s (%2$s) has left %3$s
You were kicked from %1$s by %2$s
%1$s was kicked by %2$s
%1$s (%2$s) has quit
Topic for %1$s is: %2$s
Topic for %1$s set by %2$s at %3$s
%1$s changed the topic to: %2$s
Topic changed to: %1$s
unknown time
Your host is now %1$s@%2$s
%1$s is now %2$s@%3$s
You are no longer logged in
%1$s logged out
You are now logged in as %1$s
%1$s is now logged in as %2$s
Your realname is now \"%1$s\"
%1$s changed realname to \"%2$s\"
%1$s has invited you to %2$s
%1$s is now away
%1$s is now away (%2$s)
%1$s is back
%1$s is online
%1$s is offline
CTCP PING reply from %1$s: %2$dms
CTCP PING reply from %1$s: %2$s
CTCP %1$s reply from %2$s: %3$s
The server is rate-limiting LIST (try again shortly).
(message deleted by %1$s)
(message deleted by %1$s: %2$s)
── Chat history • Last message: %1$s ──
%1$d networks: %2$s
Connected (%1$d), connecting (%2$d)
Invalid passive DCC reply
No response from %1$s, DCC timed out
Unable to open the selected file
Couldn\'t open this file
This server does not offer file uploads
File uploads are disabled for this network
File upload over a SOCKS proxy is not supported yet
Upload failed: %1$s
Open with