AnotherIRC

Screenshot%202026-06-28%20at%2022.39.59

Screenshot%202026-06-28%20at%2022.44.29

A fast, futuristic, cross-platform IRC client built in Go + MiQT (Qt6), styled by my own miqt-theme-engine. macOS-first, with native Liquid Glass vibrancy, system notifications and a Dock menu — plus full ZNC bouncer support, SASL/NickServ, IRCv3, graphical channel-mode & ban management, and a real mIRC-style scripting engine.

Two ways to use it

  • Main window — networks/channels/PMs tree, themed chat view, nick list with ~ & @ % + mode-prefix icons, smart input (tab-complete, /commands, history).
  • Tray quick-reply — left-click the tray icon to toggle a compact frameless window listing recent PMs and active channels for a one-line reply; right-click for the menu (Open Main, Quit).

Features

Connectivity & protocol

  • Hand-rolled IRC core: RFC1459 + IRCv3 (CAP, message-tags, server-time, batch, account/away-notify).
  • SASL PLAIN / EXTERNAL, with NickServ IDENTIFY fallback; server passwords; auto-join.
  • ZNC bouncer integration: detection, znc.in/* caps, playback/buffer replay, multi-network.
  • TLS via Go crypto/tls. Sleep/wake reconnect and stalled-connection recovery on macOS.
  • Credentials encrypted at rest (AES-256-GCM + PBKDF2).

Chat & navigation

  • mIRC color/format rendering, per-nick colors, your-nick highlight + configurable highlight words.
  • Clickable #channel links in messages (click to join/switch) and inline image thumbnails with a built-in viewer (fetch, zoom/pan, save).
  • Chat logging to <config>/logs/… and in-buffer search (⌘F find bar).
  • Jump-to-buffer fuzzy switcher (⌘K); next/prev buffer (⌃Tab / ⌃⇧Tab); close (⌘W).
  • Clicking a channel/PM or a nick focuses the input so you can type immediately; standard text selection + copy in the chat view.
  • Colored join/part/quit/kick/mode events; CTCP requests and replies shown; desktop notifications + per-event sounds.

Channel operator tools

  • Graphical channel-mode editor built dynamically from the server's CHANMODES: checkboxes with plain-language descriptions for flag modes, value fields for keys/limits/throttles.
  • Tabbed list manager for bans (+b), ban exceptions (+e) and invite exceptions (+I) — add / edit / remove.
  • Right-click nick (or PM) menu: query, whois, ignore, CTCP, op/voice, kick, ban.
  • Ignore list with nick!user@host wildcard masks; Events, Colors & Sounds editor.

Scripting

A built-in mIRC-style scripting engine (mSL) — aliases, custom identifiers, remote events, hash tables, timers, file I/O and custom menus. See Scripting below.

Theming & native macOS

  • Theme engine with live switching across all built-in themes (Liquid Glass, Cyberpunk, GNOME, KDE, …) in light/dark; controls sized to native macOS norms; optional native window vibrancy.
  • Native notifications (UNUserNotificationCenter), Dock menu, and Dock unread badge.

Scripting

AnotherIRC runs scripts from <config>/scripts/*.mrc (macOS: ~/Library/Application Support/AnotherIRC/scripts/). Edit via Tools ▸ Script Editor… (Save & Reload) or /reload; a commented main.mrc is created on first run. The engine implements a large, practical subset of mIRC's scripting language:

  • Aliases & custom identifiersalias x { … } runs as /x; an alias that uses /return <value> is callable as the identifier $x(args). Plus $iif(cond, a, b).
  • Remote eventson *:TEXT:!ping:#:{ msg $chan pong $nick }, and JOIN PART QUIT NICK KICK MODE TOPIC OP DEOP VOICE DEVOICE BAN ACTION NOTICE CONNECT DISCONNECT NUMERIC INPUT, with event identifiers ($nick $chan $knick $opnick $vnick $bnick $numeric …).
  • Identifier/function library — strings ($pos $replace $remove $count $str $chr $asc $strip), tokens ($gettok $numtok $addtok $deltok $reptok $puttok $sorttok $findtok $istok), math ($calc $int $abs $round $sqrt $min $max $base), time ($duration $asctime $ctime $ticks), and regex ($regex $regml $regsub).
  • Variables & control flow%globals / /var locals, /set /inc /dec /unset, if / elseif / else, while, conditions with == != < > <= >= isin iswm && ||.
  • Commands/msg /me /notice /ctcp /amsg /ame /omsg /onotice /join /mode …, plus named timers (/timer<name> reps interval cmd, /timers off), hash tables (/hadd, $hget), and sandboxed file I/O (/write, $read, $lines).
  • Custom menusmenu nicklist|channel { Label:command } (with submenus and separators) adds items to the right-click menus.

Project status

There are currently no public releases yet. The project is intended primarily for testing purposes for now.

Created on: June 29, 2026

Last modified: June 29, 2026, 12:05 am