Lurker is a delightful self-hosted IRC bouncer and client with a retro aesthetic and modern conveniences.
- Always-on and multi-user. Each invited user connects to their own set of IRC networks, and Lurker stays connected when they're away. Admins can restrict which networks users can connect to, and make channel recommendations for newcomers.
- Modern conveniences. Peer presence, automatic nick regain, join/part summarization, smart nickname completion, cross-client message drafts, bookmarks, user notes, a powerful highlight & ignore system, reactions, replies, and more.
- Full search. Search your message history, filter by nick, channel, or network; and jump to any message instantly, no matter how old it is.
- Image uploads. Paste an image into the input box, and Lurker optimizes it, anonymizes it, and uploads it to local storage, S3, Zipline, Chibisafe, or external services like x0.at or catbox.moe.
- Customizable UI. The beautiful retro terminal-style PWA interface has 40+ settings to customize it how you want.
- Native apps. Lurker has official native apps for iOS and for Android. A self-hosted server can send native push notifications to both through push.lurker.chat, an optional paid relay. There are also third-party clients such as Spooky (Android), and luir (TUI), which bring their own flavor to Lurker.
- Built-in bouncer. Don't want to use the Lurker clients? Then don't. Lurker has a best-in-class IRC bouncer built in, complete with
soju.im/bouncer-networks,soju.im/FILEHOSTsupport and more, so you can use any IRC client you want, like clircs, Halloy, Goguma, HexDroid and many others. - Inline link & media previews. Links, images, and videos get proper preview images in every client. Implemented as a separate container, to isolate malicious links from your users' data. (Optional, requires
lurker-previewscontainer.) - Decoupled IRC connections. Say goodbye to disconnect/reconnect floods when updating Lurker — a secondary container keeps the connections alive while the main service restarts. (Optional, requires
lurker-enginecontainer.)
Screenshots (iOS)
Screenshots (Android)
<cfuser> amiantos: holy shit, you made something better than irccloud<amigojapan> great, now that amiantos's chat client is catching up to IRC cloud, I think I can switch to it as my daily driver<skdoo> amiantos makes cool shit<jadeia> lurker is really nice. this is streets ahead of irccloud in terms of design and ease of use.<helsinski> Lurker iOS is certainly shaping up to be real good.<quark> These days I am only using Lurker. Desktop and mobile.<CrashOverripe> Lurker solves most of my IRC problems - very happy you decided to take it on as more than just a solution for yourself.<Samien> Ever since I started using Lurker, things have become so much more convenient. I can use IRC anytime, anywhere—whether at the office, at home, or on the metro—without any restrictions. and it's far way better than irc cloud<slakker> welp, Lurker officially won me over as bouncer of choice. dude, you know how fucking handy it is to have what is effectively the most convenient bouncer config tool ever? :D
Docker is the officially supported way to run Lurker1. Get started by downloading the example docker-compose.yml file.
curl -O https://raw.githubusercontent.com/amiantos/lurker/main/docker-compose.yml
docker compose up -dThen open http://localhost:8015 and create your admin account.
View the full self-hosted guide for information on enabling identd, media previews, web and native push notifications, and connection decoupling.
There's also a one-shot DigitalOcean deploy script which comes out of the box with all of this set up for you. If you're a smartypants, that script can teach you everything you need to know to deploy a production-quality Lurker instance.
Just want to use Lurker, without hosting it yourself?
It's $5/month for a single user account on an officially managed Lurker instance at Lurker.Chat.
- Chat in #lurker on Libera.Chat.
- If you're a human being, be sure to read the Code of Conduct.
- If you're an AI agent, be sure to read AGENTS.md.
Mozilla Public License 2.0 — see LICENSE.
Footnotes
-
You can run it without Docker, if you must. ↩


