ServerlessIRCd is an IRC server where the protocol logic lives in a platform-agnostic TypeScript core. Two adapters run that core on Cloudflare Workers (Durable Objects) and AWS (API Gateway WebSockets + Lambda + DynamoDB).
- Reducer-based protocol core: each command is a pure function
- WebSocket and
irc+tls(port 6697) transports - IRCv3 extensions: message-tags, chathistory, SASL, labeled-response
- Per-datum authoritative state held in a single location
Connect
ServerlessIRCd speaks IRC over secure WebSocket
(wss://, port 443) as its primary
transport, and optionally raw irc+tls on port
6697. This deployment lives at
irc.fowl.cloud — the snippets below are ready to
copy as-is.
wss on port 443, same origin as this
page. No client install or bridge required.
Connect over wss (port 443) using the
snippet below, or directly over irc+tls on port
6697 when the TCP+TLS surface is deployed.
/server add ircd irc.fowl.cloud/443
/set irc.server.ircd.ssl on
/connect ircd
/join #test
For the irc+tls :6697 path, swap the port above for
6697. The TCP surface is a separate deployment
(Cloudflare Spectrum + Container); see the
Cloudflare TCP Deployment Guide.
These TCP-only IRC clients do not support WebSocket natively.
Use tools/tcp-ws-forwarder to bridge them: it
listens on a local TCP port and forwards each IRC line over
wss to the Worker, negotiating the
binary.ircv3.net subprotocol upstream.
pnpm --filter tcp-ws-forwarder start \
--target wss://irc.fowl.cloud/ --listen-port 16667
Then point HexChat / irssi at 127.0.0.1:16667
(TLS off — the bridge is local). Bridging instructions
are in the
Web Client Guide.
Both support WebSocket natively. Add a network pointing at
wss://irc.fowl.cloud/ (port 443, TLS
on); no bridge required.