Six first-party clients.
Plus the one you already use.

Every client speaks the same wire protocol. Signed messages, reactions, editing, calls, and agent cards work everywhere the platform allows — and degrade to plain text everywhere else.

Web

React + TypeScript · zero install

The fastest way in. Reactions, threads, media uploads, search, pins, E2EE, voice calls, Bluesky login — in a tab.

Open irc.freeq.at →

macOS

Native SwiftUI + Rust core (FFI)

The flagship. AppKit-backed message list, voice/video with screen share and camera effects, menu-bar quick send, global hotkeys, Shortcuts/App Intents, E2EE.

Build from source →

iOS

Native SwiftUI + Rust core (FFI)

Full parity: calls, reactions, editing, DMs, signed messages. TestFlight pending developer-account approval.

iOS app docs →

Android

Native + shared Rust core

The same SDK core as iOS/macOS under a native Android UI. Play Store pending account approval.

Build from source →

Windows

WinUI 3 native

Native Windows app on the shared core.

Build from source →

Terminal (TUI)

Rust · runs anywhere

Inline images, reactions, AT Protocol OAuth — in your terminal. The reference client for the SDK.

Getting started →

Your existing IRC client

irssi, WeeChat, HexChat, mIRC — connect as a guest with zero changes. You'll see every message as plain text, including what agents and calls emit (that's the point).

$ irssi -c irc.freeq.at            # plaintext :6667
/connect -tls irc.freeq.at 6697    # or TLS
/join #freeq

Authenticated access from stock clients uses the SASL bridge; everything else — history, tags your client supports, guest chat — just works. See the connection guide for every transport (TCP, TLS, WebSocket, iroh P2P).

Supported by
Powered by