I'd love to test this, however it seems to not be accessible with screen readers. I assume this is because of the GUI library not supporting accessibility. I found an open issue about this on the Iced GitHub where in 2024 it was mentioned that the version after next should support it, and the last comment was in february of this year (https://github.com/iced-rs/iced/issues/552)
I bookmarked this so hopefully once that effort gets further along I can give it a try!
I figured I'd leave this comment so that some folks can see that there are real people even on HN who require these features and that accessibility work is always appreciated. We definitely exist :)
Screen reader accessibility is at least on it, although not until the release after next.
Daunk 13 hours ago [-]
I've tried to use this, but I'm on multiple servers with tons of channels, and it gets a bit unwieldy without tabs. I also can't get it to minimize to tray, and having to "keep it open" at all times is somewhat annoying. I'll stick with Quassel for now.
Really impressive work though, you should be proud!
thek3nger 4 hours ago [-]
I added this configuration to make it works more tab-like.
[actions.sidebar]
buffer = "replace-pane"
tcdent 7 hours ago [-]
What channels are still active? I connected to freenode for the first time in years a few months ago and it was a ghost town. Would love to get back into some programming/tech communities on IRC.
Many moved to Libera.chat instead. While others may have moved on from IRC altogether when they left freenode.
fuzzzerd 7 hours ago [-]
Freenode melted down a few years back, there was a lot of drama around what happened, but I don't think it's active anymore and if it is, it's probably not what you remember. The community splintered and moved to other hosts.
johnny22 4 hours ago [-]
tabs are the reason i abandoned my halloy experiment. I'm currently following the halloy issue.
mi100hael 10 hours ago [-]
Agreed on the tabs. Not sure what I'm supposed to do when I have more than 1-2 channels I want to view.
Funny enough, having close to zero experience with Rust and wanting to build an iced-rs application with Claude Code, I asked it to search github for large projects using iced-rs to use as a reference and Halloy ones one of the top 3.
giancarlostoro 8 hours ago [-]
I was just looking at that; I've been wanting a nice GUI library for Rust but never found one I liked. A number of them were bindings to other GUI stacks. I might try Iced next time I'm poking around with Rust.
mattfrommars 11 hours ago [-]
I've started to notice there are a lot more rust based desktop application appearing vs say Go based or Java. Most of these apps are cross platforms. My guess is they are trying to compete with Electron. There is Tauri runs on Rust.
Can someone please tell me what special about Rust? Say, why aren't desktop application popular based on say Python?
On tangent, ive seen a lot of terminal base application in typescript and go
rtpg 6 seconds ago [-]
I've tried writing GUIs with Python in the past and it was a bit tricky to get the pieces working.
The one Python GUI that comes to mind that is also, like, not garbage looking is Anki.
WD-42 11 hours ago [-]
I am currently writing a desktop application in Rust. It’s a jellyfin client for music.
I think the main reason is that writing Rust is a joy that gives you confidence. This is important to me as I often have small amounts of time to work on it (new dad). With rust I can start implementing a small feature, as long as it compiles I can be reasonably sure it works. In Python I’d be wading through a sea of runtime errors and never quite sure I actually got it right.
Cross platform is another good reason. UI library support is good. You have iced like this app, but also decent GTK bindings.
No runtime needed makes distribution and packaging infinitely easier than Python.
It’s a great language for writing desktop apps.
stavros 8 hours ago [-]
As a user, I agree, I really like downloading a single, small binary that is a full-fledged desktop app. Hell, I downloaded Halloy just because it wasn't Electron, and it looks really nice, too!
Imustaskforhelp 3 hours ago [-]
I feel like the same can be said for golang but rust just has a more pleasant way of sometimes doing things.
some of the best ways to build gui's on golang might be gtk golang bindings imo. I haven't tried qt but gtk for linux should work.
I have seen many apps also use golang as backend and flutter as frontend (warp android app wormhole or something and localsend both do this)
culinary-robot 11 hours ago [-]
I have a background in macOS applications, back when it was Objective-C. I have always loved native apps. When i decided to start Halloy the goal was to create a native application for multiple platforms, and for that Rust is perfect.
Rendello 11 hours ago [-]
> Can someone please tell me what special about Rust?
I think I've seen this topic pop up from time to time ;)
For me personally, I've been replacing a lot of my Python programs with Rust. A lot of it isn't much harder to write, and things like sum types are sorely missed when I write Python or most non-Rust languages. And usually, if my Rust program is a lot more difficult to write, it's because I'm exploring an optimization that wouldn't be possible or worthwhile in Python. Having an application be native and compiled is a big plus for me. I plan to release a desktop app in Rust but it isn't at that stage yet.
1718627440 11 hours ago [-]
There I quite a lot of desktop apps in Python. But for example if you use Tkinter, it looks awful on Linux and if you choose Gtk, you need to build the python version on Windows manually in minGW or ship Cygwin.
gertop 3 hours ago [-]
That's more of a GTK problem than a python one. It sucks on all platforms that isn't Linux.
In my experience apps using pyqt5/6 have a much nicer interface and cross platform experience.
1718627440 2 hours ago [-]
How does Qt help with that it isn't implemented in Python, so you need a binary, which is OS specific? GTK wasn't that hard either once I had figured out how MinGW works. All you essentially need is to setup a working C compiler for Windows. You don't even need to figure that out yourself, because all you need to do is to tell the MSYS2 package manager to install a python version, that has GTK support.
In my opinion the problem is more that support for more Toolkits isn't built into Python so you essentially need to deal with another language as well, which sucks when you only know python.
Distributing Python for Windows is even harder than for Linux.
eikenberry 7 hours ago [-]
Given the other answers here focusing on the single binary as the main benefit, Go would seem the only competitor of those listed and Go lacks good support for GUIs. Most GUIs are written in C/C++ and Go doesn't have as good a story for C/C++ integration (community convention is to generally avoid it if at all possible). IMO as Zig matures you'll see it grow as a language for GUIs. You get the same cross platform support, single binary generation and C integration with better tooling and a language with a significantly lower cognitive load.
thyristan 10 hours ago [-]
There are no languages with good GUI frameworks except C, C++ and C#. All other bindings typically suck ass.
MangoToupe 10 hours ago [-]
And presumably C# is just binding to some native toolkit
PaulDavisThe1st 3 hours ago [-]
There is no native toolkit on Linux, at least not in the sense that there is on macOS or windows.
nobleach 7 hours ago [-]
If I had to simply bind to a native toolkit, I think Lazrus can do that. Having loved Delphi back in the day, I think I'd prefer to write ObjectPascal for anything more than a very simple utility. C# would likely be my second choice.
0x457 8 hours ago [-]
Yes, but C# is very nice as a language for GUI, can't explain it, just feels right.
gtirloni 10 hours ago [-]
Latency. Go and Java with optimizations can work just fine, Python not so much yet.
righthand 11 hours ago [-]
Rust produces a single binary. Developers appreciate this when shipping an app. For Python based apps you usually need your user to have Python installed and then ship a bunch of Python files with interop to some non-Python UI library. So you probably need to ship the UI library as a dependency too.
Or you can just build it in Rust and learn what .unwrap() does.
az09mugen 7 hours ago [-]
I don't say it is best, but there are solutions like pyinstaller [0] to produce a binary from python code.
Funny how nobody has actually addressed your question, choosing to praise rust instead..
The answer is that there are several python GUI applications (a dozen music players, Cura, Calibre, Anki, Deluge, etc). Hardly any Go because all bindings suck (which isn't that surprising, go devs are often hostile to cgo) and there's no (non toy) native toolkit either. I'd don't know why that is. Every few years I look for one but I give up and write the UI for my Go tool in html instead...
MangoToupe 10 hours ago [-]
It just works, it can do most anything, and it binds well with C.
linhns 7 hours ago [-]
Also much easier to manage packages, which for me it’s the differentiating factor.
airstrike 9 hours ago [-]
Fast. Explicit. Safe. Cross-platform.
Did I mention fast?
lksaar 12 hours ago [-]
Used to use Hexchat and swapped to halloy more than a year ago and couldn't be happier. The development is coming along nicely and a lot of modern features got added since I've been using it. It's a joy to use in conjunction with soju and my irc experience hasn't been this smooth in a long time.
dysoco 12 hours ago [-]
I haven't used IRC in years, but my teenage of ~12 years ago would've been stoked by this, it's the nicest client I've seen as of yet. Cheers!
cassepipe 3 hours ago [-]
I love the general design of Halloy and I have submitted it to HN at least two times. Glad to see it on the front page ! Keep up the good work
ryanmerket 8 hours ago [-]
Nice! I'll give it whirl. For those with terrible eyesight, do you offer accessibility options?
EFNet for life!
3 hours ago [-]
emersion 7 hours ago [-]
AFAIU not yet because the underlying GUI framework doesn't support this, but the developer mentioned they'd definitely be interested in adding it.
keyle 12 hours ago [-]
I use it, it's really good and getting better every release.
It's fast and robust. The toml config is also straight forward.
Highly recommended!
PS: I preferred the old (bird) icon
slacktivism123 6 hours ago [-]
Thank you.
Halloy is a wonderfully configurable replacement for beloved Mac IRC client Textual, whose development has sadly wound down (now officially, as of last month).
I hope it continues to grow in popularity while keeping performance and privacy at the core.
macmac 13 hours ago [-]
I use Halloy on a daily basis and could not be happier. It is super smooth in use and highly configurable using the config file. Halloy is also a great show case for the iced GUI framework and Rust for desktop apps.
culinary-robot 13 hours ago [-]
I am glad you like it, macmac.
Insanity 12 hours ago [-]
Reminds me I haven't logged in to IRC in.. maybe 2-3 years now. It just kind of fizzled out as the main groups of people I interact with moved to Discord. But I kind of miss IRC.
5 hours ago [-]
ComputerGuru 8 hours ago [-]
Wow, I used this when you first posted a public link to it and I see it’s come a long way since; I should definitely check it out again! Congrats on the success thus far!
ive been using halloy for almost a year(?) and i really dig it. you and the contributors should be proud.
i dont hang out in #halloy but maybe i should!
mobeigi 12 hours ago [-]
I'm amazed people still use IRC! More power to you. I used to use it a fair bit back in the day bit the last programming community that I was a part of that used IRC moved to Discord around 2020 which is when I basically stopped using it.
SomeUserName432 6 hours ago [-]
I can't at the top of my head remember all the minor annoyances I ran into when I tried Halloy, but things like not being able to paste a large message because "it exceeds the single message limit" was a real dealbreaker.
I ended up going for Crossover and mIRC
nmz 1 hours ago [-]
Why is this "modern"?
fullstop 6 hours ago [-]
Hey, this looks pretty cool and it is very snappy compared to, say, Konversation. It would be fantastic if there was a way to add AppIndicator support and allow the main window to be closed.
ochronus 12 hours ago [-]
It's my go-to client. Kudos and thanks for developing it!
nullwarp 12 hours ago [-]
Actually surprised I never stumbled on this while I was looking for an IRC client. I ended up on on The Lounge for a while and that's always been pretty good.
Will give this a go because I would always prefer a native client in the first place and this looks excellent!
khimaros 10 hours ago [-]
i've been very happy with the combination of senpai on my laptop, goguna on Android, and soju on a cloud instance for persistence. i will try this as an alternative laptop frontend.
crtasm 12 hours ago [-]
Can it show channel modes next to the #channel_name and my nick+user mode next to the input field? Two things I find very useful in weechat and couldn't work out how to do in Halloy last time I tried it out.
Thanks for making a client.
culinary-robot 12 hours ago [-]
if you type /mode it should show the mode next to the channel name. this should happen automatically - will look into that. i'll also add the nick-user mode next to the input field. a few has requested it.
crtasm 11 hours ago [-]
Thanks! Having both always visible would be ideal for me.
INTPenis 8 hours ago [-]
I'm sure Timo thought the same about irssi.
palata 11 hours ago [-]
Wow, that's really cool! I just adopted it :)
BoredPositron 13 hours ago [-]
I switched to it some months ago and couldn't be happier. Was a die hard irssi user before but there are some parts of halloy that are just really convenient. Maybe I am getting older.
udev4096 8 hours ago [-]
Looks really great. But I am gonna stick to weechat :)
nakamoto_damacy 8 hours ago [-]
Excellent. I never liked mIRC, and for me the terminal was the best interface. But this looks good. I also still use vi. Never made the mental leap to vim. Old habits die hard.
righthand 11 hours ago [-]
I love Halloy and it inspired me to make more software in iced_rs, which is a fantastic simple to use UI framework. [0]
The project is even often cited as a good iced_rs code reference repo.
What I like about iced_rs over Qt is that you can write all your code in a single language in whichever style you like. As opposed to Qt which requires you learn an obtuse scripting language (qml) ontop of Cpp and locks performance improvements behind commercial license.
Not sure if this question will get removed but a tangent nonetheless - I’d like to use this but I don’t know what to do with it since the advent of Discord. What do people do with IRC now and where do you find content?
I remember being a high school student and having an amazing physics conversation on IRC that included a description of Flatworld that really fascinated me.
neilv 8 hours ago [-]
> I’d like to use this but I don’t know what to do with it since the advent of Discord. What do people do with IRC now and where do you find content?
IRC is for people to whom the word "content" sounds right out of Idiocracy. :)
I wouldn't go poking around IRC today looking for random passive content consumption. There's more of that pretty much everywhere else on the Internet.
Go to IRC, in a goal-directed way, if an open source project you use is OG enough to have an IRC channel (rather than a open source backsliding Discord) that you want to access.
If you're involved in IT incident response for a company, there is a chance that running a simple private IRC server that's entirely separate from all your other infrastructure is useful. You'll need to make sure ahead of time that everyone who needs to access it urgently, when everything else is blowing up, will be able to.
Vaslo 6 hours ago [-]
So are you implying I’m some fool out of idiocricy? I don’t get your comment?
neilv 3 hours ago [-]
It's a very common term now, and no fault of anyone for using it.
But it was introduced in its current sense (not in the protocol sense) by cynical and greedy exploiters, who spoiled much of the goodness of the Internet.
So when a random person casually says something like "consume content", unironically, it's like saying, "it's got what plants crave...".
asnyder 11 hours ago [-]
#freenode was generally the main IRC node I used with all the good dev rooms.
Seems to still be chugging along. You can even join directly via their web-client: https://freenode.net.
Personally I still use pidgin.im to connect to all the relevant #freenode goodness. Seems people forget it still works and is pretty great even all these years later :).
crtasm 11 hours ago [-]
I forgot Freenode was still running, most projects left for https://libera.chat/
I had the same question. I briefly joined the Slackware IRC a long, long time ago when I had questions, but now I wouldn't even know what to do with this client.
culinary-robot 10 hours ago [-]
You find a community that shares the same interest as you and start chatting :)
I bookmarked this so hopefully once that effort gets further along I can give it a try!
I figured I'd leave this comment so that some folks can see that there are real people even on HN who require these features and that accessibility work is always appreciated. We definitely exist :)
Screen reader accessibility is at least on it, although not until the release after next.
Really impressive work though, you should be proud!
A lot of users left freenode in 2021.
Many moved to Libera.chat instead. While others may have moved on from IRC altogether when they left freenode.
https://github.com/iced-rs/iced
If you're interested in building a GUI app in Rust, I encourage you to go through the examples and showcase apps like halloy
and if you get stuck, can ask our chill and helpful community on Discord https://discord.gg/3xZJ65GAhd
Can someone please tell me what special about Rust? Say, why aren't desktop application popular based on say Python?
On tangent, ive seen a lot of terminal base application in typescript and go
The one Python GUI that comes to mind that is also, like, not garbage looking is Anki.
I think the main reason is that writing Rust is a joy that gives you confidence. This is important to me as I often have small amounts of time to work on it (new dad). With rust I can start implementing a small feature, as long as it compiles I can be reasonably sure it works. In Python I’d be wading through a sea of runtime errors and never quite sure I actually got it right.
Cross platform is another good reason. UI library support is good. You have iced like this app, but also decent GTK bindings.
No runtime needed makes distribution and packaging infinitely easier than Python.
It’s a great language for writing desktop apps.
some of the best ways to build gui's on golang might be gtk golang bindings imo. I haven't tried qt but gtk for linux should work.
I have seen many apps also use golang as backend and flutter as frontend (warp android app wormhole or something and localsend both do this)
I think I've seen this topic pop up from time to time ;)
For me personally, I've been replacing a lot of my Python programs with Rust. A lot of it isn't much harder to write, and things like sum types are sorely missed when I write Python or most non-Rust languages. And usually, if my Rust program is a lot more difficult to write, it's because I'm exploring an optimization that wouldn't be possible or worthwhile in Python. Having an application be native and compiled is a big plus for me. I plan to release a desktop app in Rust but it isn't at that stage yet.
In my experience apps using pyqt5/6 have a much nicer interface and cross platform experience.
In my opinion the problem is more that support for more Toolkits isn't built into Python so you essentially need to deal with another language as well, which sucks when you only know python.
Distributing Python for Windows is even harder than for Linux.
Or you can just build it in Rust and learn what .unwrap() does.
[0] https://pyinstaller.org/en/stable/
The answer is that there are several python GUI applications (a dozen music players, Cura, Calibre, Anki, Deluge, etc). Hardly any Go because all bindings suck (which isn't that surprising, go devs are often hostile to cgo) and there's no (non toy) native toolkit either. I'd don't know why that is. Every few years I look for one but I give up and write the UI for my Go tool in html instead...
Did I mention fast?
EFNet for life!
It's fast and robust. The toml config is also straight forward.
Highly recommended!
PS: I preferred the old (bird) icon
Halloy is a wonderfully configurable replacement for beloved Mac IRC client Textual, whose development has sadly wound down (now officially, as of last month).
I hope it continues to grow in popularity while keeping performance and privacy at the core.
Show HN: Halloy – A GUI Application in Rust for IRC - https://news.ycombinator.com/item?id=36535772 - June 2023 (101 comments)
i dont hang out in #halloy but maybe i should!
I ended up going for Crossover and mIRC
Will give this a go because I would always prefer a native client in the first place and this looks excellent!
Thanks for making a client.
The project is even often cited as a good iced_rs code reference repo.
What I like about iced_rs over Qt is that you can write all your code in a single language in whichever style you like. As opposed to Qt which requires you learn an obtuse scripting language (qml) ontop of Cpp and locks performance improvements behind commercial license.
[0] https://iced.rs/
I remember being a high school student and having an amazing physics conversation on IRC that included a description of Flatworld that really fascinated me.
IRC is for people to whom the word "content" sounds right out of Idiocracy. :)
I wouldn't go poking around IRC today looking for random passive content consumption. There's more of that pretty much everywhere else on the Internet.
Go to IRC, in a goal-directed way, if an open source project you use is OG enough to have an IRC channel (rather than a open source backsliding Discord) that you want to access.
If you're involved in IT incident response for a company, there is a chance that running a simple private IRC server that's entirely separate from all your other infrastructure is useful. You'll need to make sure ahead of time that everyone who needs to access it urgently, when everything else is blowing up, will be able to.
But it was introduced in its current sense (not in the protocol sense) by cynical and greedy exploiters, who spoiled much of the goodness of the Internet.
So when a random person casually says something like "consume content", unironically, it's like saying, "it's got what plants crave...".
Seems to still be chugging along. You can even join directly via their web-client: https://freenode.net.
Personally I still use pidgin.im to connect to all the relevant #freenode goodness. Seems people forget it still works and is pretty great even all these years later :).
Due to https://en.wikipedia.org/wiki/Freenode#Ownership_change_and_...
https://netsplit.de/channels/?net=Libera.Chat
There are some other nets listed on that site with somewhat lower usercounts:
https://netsplit.de/networks/top100.php
https://www.ccc.de/en/updates/2025/39c3-power-cycles