This page is the exhaustive list: every IRCv3 capability HexDroid negotiates, and every setting in the app. If you are looking for what HexDroid does rather than what it supports, start with Features.

IRCv3 capabilities

Every capability HexDroid negotiates during the connection handshake, and what it does with each one. All of them can be switched off individually per network under IRCv3 Capabilities in network settings. Badges: graduated = finalized spec · draft = draft spec · vendor = implementation-specific.

Core Message Infrastructure

CapabilityStatusWhat HexDroid does
message-tagsgraduatedParses and propagates @tag=value metadata on incoming messages
server-timegraduatedDisplays accurate timestamps on all messages, including replayed history
echo-messagegraduatedUses server-echoed messages as authoritative sent events instead of local echo
labeled-responsegraduatedCorrelates command responses with their triggering requests
batchgraduatedProcesses grouped message batches atomically. netsplit / netjoin batches collapse the quit/join flood into a single summary line (“Netsplit (a.net ↔ b.net) - N users affected”) while the nick list still updates per user
utf8onlygraduatedSignals UTF-8 capability; enforces UTF-8 output on utf8only networks
message-idsgraduatedTracks unique msgid tags for deduplication of chathistory replays
standard-repliesgraduatedParses FAIL/WARN/NOTE replies and surfaces them contextually per buffer
draft/extended-isupportdraftFetches server metadata before the connection finishes registering. HexDroid sends the ISUPPORT command as soon as the capability is acknowledged, so tokens like CLIENTTAGDENY, NETWORK and the filehost endpoint are known before the first message is sent rather than after. Replies arrive in a draft/isupport batch when batch is also enabled, and token withdrawals (-KEY) are honoured.
stsgraduatedStrict Transport Security. A plaintext connection that receives sts port= reconnects over TLS immediately; a TLS connection that receives sts duration= stores a per-host TLS-only policy that also disables the invalid-certificate override until it expires. Never requested with CAP REQ, observed only. A stale policy can be cleared from network settings.
draft/multilinedraftReceives messages that exceed 512 bytes or contain line breaks as a single grouped message instead of one IRC line per visual line. Uses the draft/multiline BATCH type with the +draft/multiline-concat tag for flood-control splits. Both the draft and forward-compat graduated multiline are negotiated.

History & Read State

CapabilityStatusWhat HexDroid does
chathistorygraduatedRequests recent message history on join
draft/chathistorydraftSame as above for servers on the earlier draft spec. Request sizes respect the server's CHATHISTORY limit, and selectors fall back to a supported reference type per MSGREFTYPES.
draft/event-playbackdraftReplays channel state events (joins, modes) alongside message history
draft/read-markerdraftSyncs read position with the server for multi-client read-state tracking
soju.im/readvendorsoju-specific read-marker sync

Membership & Presence

CapabilityStatusWhat HexDroid does
account-notifygraduatedUpdates account name when a user logs in/out of services
away-notifygraduatedTracks away/back state for all channel members in real time; away users are dimmed in the member list
chghostgraduatedUpdates the user's displayed hostmask when it changes without a rejoin
extended-joingraduatedReceives account name and real name in JOIN; displayed in user info panel
multi-prefixgraduatedShows all channel prefixes a user holds (e.g. @+nick for op+voice)
userhost-in-namesgraduatedReceives full nick!user@host in 353 NAMES reply
invite-notifygraduatedNotifies you when another user is invited to a channel you're in
monitorgraduatedWatches for a list of nicks coming online/offline
extended-monitorgraduatedExtended MONITOR with account and away state in notifications. Both the graduated name and the legacy draft/extended-monitor are negotiated.
pre-awaygraduatedSends AWAY before 001 registration when configured as away

Messaging

CapabilityStatusWhat HexDroid does
account-taggraduatedSurfaces the sender's services account name as a per-message tag
saslgraduatedAuthenticates using PLAIN, SCRAM-SHA-256, or EXTERNAL during handshake
setnamegraduatedEnables /setname to change your real name on the fly without reconnecting
draft/message-reactionsdraftReceives TAGMSG-based emoji reactions; displayed inline on messages. Removal is sent as both +draft/unreact (current react spec) and the older +draft/react-removed, and replies carry both +draft/reply and the ratified +reply tag.
draft/message-redactiondraftMessage deletion. Long-press one of your own messages › Delete message (or /redact <msgid>) sends REDACT; incoming redactions replace the message with a tombstone for everyone. Both the draft and forward-compat message-redaction names are negotiated.
draft/oper-tagdraftMessages and notices from IRC operators are marked with an amber ★ before the nick. Reads the draft/oper tag and the eventual ratified oper name; rides message-tags, no extra negotiation.
bot mode / taggraduatedUsers flagged as bots are badged [bot] in the member list, on their messages, and in the nick tap sheet. Detected from the BOT ISUPPORT mode letter in WHO/WHOX flags and from the bot message tag; rides message-tags.
+draft/channel-contextdraftA private message carrying this client tag is annotated with the channel it relates to ([#channel] prefix), so a PM reply to something said in a channel keeps its context. Accepts the draft and ratified +channel-context forms.
draft/metadata-2draftUser and channel metadata. HexDroid subscribes to display-name, avatar, color, and status on connect: the display name appears beside the nick, a color tints the nick, and tapping a nick shows their avatar and status. A metadata editor (overflow menu › Edit metadata, or /metadata) sets your own keys - display name, status, colour, avatar and more - and reads or sets keys on another user or a channel. Deferred syncs (RPL_METADATASYNCLATER) are retried automatically. Requires the batch capability, per the spec.
draft/account-registrationdraftStandardized account creation without NickServ syntax. A guided Register account dialog (overflow menu) walks through register → email-verify → done, adapting its fields to the server's advertised flags (email required, custom account names), with an option to save the password for SASL auto-login. The /register and /verify commands drive the same REGISTER/VERIFY flow; a bare /verify <code> targets the account the server just asked to verify, and failure codes are translated into actionable hints. On servers without the cap, /register points at NickServ instead.
draft/relaymsgdraftRenders RELAYMSG-relayed messages from bridges (Discord, Matrix, Telegram) under the original sender’s name rather than the bridge bot’s
draft/channel-renamedraftFollows channel renames in real time. The buffer updates in place, keeping its scrollback and read state, so there is nothing to re-join
draft/no-implicit-namesdraftopt-out of implicit NAMES on join. Both the draft and graduated no-implicit-names names are negotiated.

Multimedia

CapabilityStatusWhat HexDroid does
draft/ICONdraftServer icon. When a server advertises ICON=<url> or draft/ICON=<url> (with optional {size} template), the icon is shown next to the network name on the Networks screen, in the sidebar, and in the network switcher. Fetched only when image previews are enabled, only over HTTPS, and never on proxied (Tor/SOCKS) profiles.

Bouncer/Vendor

CapabilityStatusWhat HexDroid does
znc.in/server-time-isovendorParses ZNC's legacy server-time format for accurate timestamps on playback
znc.in/playbackvendorUses ZNC's playback module to request missed messages
soju.im/bouncer-networksvendorEnumerates per-network sessions from a single soju connection
soju.im/bouncer-networks-notifyvendorReceives push notifications when the soju network list changes
soju.im/no-implicit-namesvendorSuppresses the automatic 353 NAMES list on JOIN. Skips a full names re-download on every bouncer reconnect.
soju.im/FILEHOSTvendorFile uploads. When the server advertises an upload endpoint, an attach button appears in the chat input: pick a file, it uploads over HTTPS with your connection credentials, and the returned URL is placed in the input ready to send. Toggleable per network.

Settings

Global settings in Settings, listed in the order the app shows them. Per-network options (identity, SASL, TLS client certificates, auto-join, encoding, IRCv3 capabilities) live in the network editor instead.

Appearance

SettingDescriptionDefault
ThemeDark, Light, Matrix, Terminal, or System defaultDark
UI fontOpen Sans, Inter, Monospace, or a custom font fileOpen Sans
Chat fontTypeface for the message area and input, set separately from the UI fontMonospace
Font sizeChat text size across all buffersSystem
My nick colourAuto, or pick a custom colour for your own nickAuto
Compact modeTighter row spacing in the message listOff
Network tabsShow networks as tabs instead of a treeOff
Network bar above inputMove the channel switcher to the bottom of the chatOff
Intro tourReplay the walkthrough of the main screens and shortcuts-

Media Previews

SettingDescriptionDefault
Enable image & video previewsPreviews for images and YouTube links posted in chat. X/Twitter links resolve via fxtwitter.com. Previews are never automatic, you tap to loadOff
Wi-Fi onlyOnly load previews on Wi-Fi, to avoid using mobile dataOn

UI

SettingDescriptionDefault
Colourise nicksConsistent colour per nicknameOn
Enable mIRC coloursRender mIRC colour codesOn
Enable ANSI coloursRender ANSI/SGR escape sequencesOn
Shrink ASCII/ANSI artCollapse detected art blocks to fit the screen, with a tap to expandOn
Coloured channel eventsColour join/part/quit and mode linesOn
Show topic barChannel topic above the message listOn
Show timestampsTimestamp each messageOn
Timestamp formatJava pattern used for timestampsHH:mm:ss
Hide MOTD on connectSuppress the server message of the dayOff
Hide join/part/quit messagesSuppress join/part/quit events globallyOff
Hide away/back messagesSuppress away-notify eventsOff
Hide topic on entrySuppress the topic when joining a channelOff
Max scrollback linesLines per buffer kept in memory800

Landscape Sidebar Settings

SettingDescriptionDefault
Show network/chans by defaultOpen the buffer list automatically in landscapeOn
Show nicklist by defaultOpen the member list automatically in landscapeOn

Portrait Nicklist

SettingDescriptionDefault
Side pane nicklistShow the nicklist as a resizable side pane instead of a popup, so the toggle becomes a persistent show/hideOn

Highlights

SettingDescriptionDefault
Highlight on nickTreat mentions of your nick as highlightsOn
Extra highlight wordsAdditional trigger words, one per line, case-insensitive-

IRC

SettingDescriptionDefault
Show connection status notificationPersistent notification showing connection stateOn
Keep the connection aliveForeground service that maintains the connection in the backgroundOn
Auto-reconnectReconnect after an unexpected disconnectionOn
Reconnect interval (seconds)How often to retry when the connection drops10
Rejoin on kickRejoin automatically after a kick. A second kick on the same channel within 60 seconds is skipped, to avoid loops against +i/+k/+b modesOff
Quit messageSent when you disconnectHexDroid IRC
Part messageSent when you leave a channelLeaving
Ignore listHide messages and DCC offers from specific nicks, per network-

Notifications

SettingDescriptionDefault
Enable notificationsMaster toggle for all notificationsOn
Highlight notificationsAlert when your nick or a highlight word is mentionedOn
Private message notificationsAlert on incoming private messagesOn
Sound on highlightAudible alertOff
Vibrate on highlightHaptic feedbackOff
Vibration intensityLow, Medium, or HighMedium

Logging

SettingDescriptionDefault
Enable loggingWrite chat messages to log files on deviceOff
Log server bufferAlso log server and status messagesOff
Log folderInternal storage, or a custom folder chosen via SAFInternal storage
Retention daysDelete logs older than N days. 0 keeps them forever14

Privacy

SettingDescriptionDefault
Send typing indicatorsLet others see when you are composing. Off by default for privacy, and only sent where the server permits the tagOff
Show others' typing indicatorsDisplay an indicator when someone else is composingOn

IRCv3 History

SettingDescriptionDefault
History fetch limitMessages requested per channel on join via CHATHISTORY LATEST. 0 disables it50
Count fetched history as unreadMark replayed history as unreadOff
Trigger notifications for fetched historyNotify for replayed messagesOff

File transfers

SettingDescriptionDefault
Enable DCCMaster toggle for all DCC featuresOff
Use SDCC (TLS encryption)Wrap outgoing transfers in TLS via DCC SSEND. The remote client must also support SDCCOff
Download folderDownloads, or a custom folderDownloads
Incoming port min / maxPort range to listen on, for router forwarding5000 / 5010

Backup & Restore

ActionDescription
Export backupSave network configurations and app settings to a JSON file. Passwords and TLS certificates are not included
Import backupReplace all current networks and settings with those in a backup file. Passwords must be re-entered

DCC send mode (Active, Passive, or Auto) is chosen on the Transfers screen rather than in Settings.