Cascade Chat
A modern desktop IRC client with deep IRCv3 support, persistent history, and an open plugin system.
Download Cascade · Documentation · Join #cascade-irc
Cascade keeps the parts of IRC that still work: open networks, durable communities, and control over your client. It adds the desktop features you expect today, including searchable history, replies, typing indicators, link previews, pinned messages, native notifications, and themes.
Why Cascade
- IRCv3 throughout. Server-time, chat history, replies, typing indicators, account tracking, away state, extended monitor, and the rest of the ratified capability set are wired into the interface instead of hidden behind protocol support.
- Made for busy networks. Keep multiple networks organized with unread counts, mentions, a buddy list, pinned messages, channel search, and full-text message search.
- Your history stays useful. SQLite-backed storage keeps scrollback fast and local. Server history is merged by message ID, so reconnects do not fill your timeline with duplicates.
- Built to be extended. Write lightweight in-process scripts in Go, or build out-of-process plugins in any language using JSON-RPC over stdin and stdout.
Cascade runs on macOS, Windows, and Linux. The interface is built with React and Tailwind CSS inside a lightweight Wails desktop shell; the IRC, storage, scripting, and plugin layers are written in Go.
Download
Prebuilt packages are available from the Releases page:
- macOS: Universal DMG for Apple Silicon and Intel
- Windows: Installers for
amd64andarm64 - Linux: AppImage,
.deb, and.rpmpackages foramd64andarm64
The current builds are not code-signed, so your operating system may ask you to confirm the first launch. See Install & first run for the exact steps on each platform.
Build from source
You will need Go 1.25+, Node.js 20, Task, and the Wails v3 CLI.
git clone https://github.com/matt0x6F/irc-client.git
cd irc-client
task setup
task devRun task build for a production build on your current platform. Run task check to
format, lint, test, and type-check the project.
Common development commands
| Command | Purpose |
|---|---|
task dev |
Start Cascade with hot reload |
task build |
Build for the current platform |
task package |
Create a distributable app or installer |
task check |
Run formatting, linting, tests, and type checks |
task go-test |
Run the Go test suite |
task frontend-type-check |
Type-check the React frontend |
task dmg-universal |
Build a universal macOS DMG |
task --list |
Show every available task |
Extend Cascade
Cascade offers two ways to add behavior:
- Scripts run in-process and are a good fit for personal automation, event handlers, and timers.
- Plugins run as separate processes, subscribe to Cascade events, register commands, and can provide UI metadata. They can be written in any language that can speak JSON-RPC.
The repository includes example plugins in plugins/ for nickname coloring
and completion.
Architecture
React + TypeScript UI
│ Wails bindings
▼
Go application ── IRC core ── IRC networks
├──────── SQLite history and search
├──────── Go scripting runtime
└──────── JSON-RPC plugin processes
Start with the technical documentation for the codebase structure and development conventions. The IRCv3 support matrix documents each supported capability and where it appears in the client.
Community
Questions, bug reports, and contributions are welcome. Open an
issue, or join
#cascade-irc on Libera.Chat
(ircs://irc.libera.chat:6697/#cascade-irc).
License
Cascade Chat is available under the BSD 3-Clause License.
