Bare minimal websockets based IRC client
Live Demo: https://webchat.supernets.org
A client-side JavaScript IRC client that connects through WebSocket gateways. No backend, no build process, no dependencies - just open it in a browser. It handles standard IRC protocol features, supports multiple channels, tracks highlights across all your conversations, and works on mobile. The interface uses monospace fonts for proper display of ASCII art and code.
- Pure client-side (runs entirely in browser)
- Multi-channel & private message support
- IRCv3 capabilities (server-time, batch, message-tags, chat history)
- Highlight tracking with audio & desktop notifications
- Full mIRC color code support for formatted text
- Mobile responsive with adjustable font sizes
- Connect to any WebSocket-enabled IRC network
- Cookie-based settings persistence
- Auto-reconnect when disconnected
- Toggle chan/nick list boxes and adjustable font size on mobile
Important: This client requires IRC networks with WebSocket gateway support. Standard IRC ports (6667/6697) will not work. You need a WebSocket-enabled port, typically 7000, 8080, or similar.
listen {
ip *;
port 7000;
options {
tls;
websocket { type text; }
};
tls-options {
certificate "tls/irc.crt";
key "tls/irc.key";
options { no-client-certificate; }
};
};
Note: The no-client-certificate is required to allow Chrome based browsers to connect. This is not required for Firefox though.
loadmodule "webserver";
loadmodule "websocket";
loadmodule "websocket_common";
Important: Browsers will not allow WSS (secure WebSocket) connections from non-HTTPS pages. If you're hosting this client over HTTP, you'll only be able to connect to WS (insecure) WebSocket servers, which most browsers restrict or block entirely.
To connect to secure WSS servers, either:
- Host the client on HTTPS
- Use a reverse proxy (nginx, caddy, etc.) to serve the client over HTTPS and proxy WebSocket connections
When using a reverse proxy, ensure it forwards the client's real IP address (use X-Forwarded-For or X-Real-IP headers) so IRC servers don't see all connections coming from your proxy's IP.
We're creating a dropdown list of WebSocket-enabled IRC networks for easy connection. If your network supports WebSockets, open an issue on GitHub with the following details:
- Network name
- WebSocket server address & port
- SSL/TLS support status
- Suggested default channels (optional)
Your contribution helps make IRC more accessible to browser-based users!
If using GrapheneOS/Vanadium browser, you must enable JIT permissions for WebSocket connections to work properly.
