Halloy

Squidowl·squidowl.halloy

Halloy is an open-source IRC client written in Rust, with the Iced GUI library. It aims to provide a simple and fast client for Mac, Windows, and Linux platforms.

winget install --id squidowl.halloy --exact --source winget

Latest 2026.8.0·July 26, 2026

Release Notes

Find full documentation at https://halloy.chat/

Added:

  • Channel Monitor internal buffer for viewing messages from all joined channels
  • Config editor internal buffer for editing the config file in-app
  • Sidebar
    • Collapse & expand servers in sidebar
    • Internal buffers (logs, highlights, etc) can be added to sidebar
    • Channel, query, and internal buffers can be muted (only shown if an unread/highlight indicator should be shown) via servers..channels, servers..queries, and sidebar.internal_buffers.mute
    • sidebar.unread_indicator.exclude & sidebar.unread_indicator.include no longer controls highlight indicators
    • New sidebar.highlight_indicator.title, sidebar.highlight_indicator.show_on_open_buffers, sidebar.highlight_indicator.exclude, and sidebar.highlight_indicator.include settings for independent highlight control
  • Undo/redo in the message input and config editor (ctrl/cmd + z, ctrl/cmd + shift + z)
  • Link interactions
    • Context menu on channel links
    • actions.buffer.click_nickname and actions.nicklist.click_nickname can be used to specify whether a nickname will: open query and how the query is opened, insert nickname in the input box, or no action ("no-action" or "noop"); takes over functionality from buffer.nickname.click and buffer.channel.nicklist.click and adds the ability to perform no action
    • actions.buffer.click_channel_name and actions.buffer.click_highlight can be set to no action ("no-action" or "noop") to not open the channel when clicking on the channel name
    • actions.buffer.click_channel_discovery to configure click behavior for channel names in the channel discovery pane (default: "new-pane")
    • Allow image preview on URL click (actions.buffer.click_image_url)
  • actions.buffer.notifications settings to control how interacting with notifications is handled
  • Support displaying a larger version of the card images in-app
  • pane.always_show_title_bar_buttons setting to prevent pane title bar buttons from being hidden when the pane is not hovered
  • Shortcuts displayed in pane button tooltips (where available/configured)
  • follow option for reroute rules (servers..reroute) to reroute messages to the focused buffer
  • Add system keyring support for server, NickServ, channel, SASL, filehost credential, and proxy passwords
  • IRCv3
    • IRCv3 no-implicit-names support
    • servers..do_not_request can be specified to prevent IRCv3 capability requests (e.g. servers..do_not_request = [ "labeled-response" ] will prevent labeled-response from being requested from the server)
  • servers..max_connection_attempts setting to control the number of connection of attempts made before autoconnect is automatically disabled (defaults to 10)
  • Improved legibility of the returned values of MONITOR list (/monitor L)
  • Config option (preview.card.description_decode_html) to decode html strings in preview card descriptions
  • runtime.metrics_hinting setting to control whether widgets are rendered using metrics hinting
  • Keyboard shortcuts validation (e.g no duplicate key binds)
  • servers..irc_protocol_log settings to enable logging of the IRC protocol messages sent-to / received-from the server
  • logs.max_file_count setting to control the number of Halloy log files that are stored on disk
  • logs.file_timestamp setting to control what timezone is used for timestamps in log files and log file names
  • Explicit portable mode via HALLOY_PORTABLE_DIR environment variable
  • Theme editor can be closed via Escape

Fixed:

  • Nick highlight improvements
    • Handle nick possessives 's ( should be parsed)
    • Skip parsing nicks inside abbreviations (e.g. shouldn't have highlights) -Notifications no longer immediately dismissed in some Wayland DE(s)
  • Sidebar
    • Do not show unread/highlight indicators in sidebar for ignored messages
    • Show unread indicators for panes hidden by maximize
    • Queries specified in configuration correctly added to the sidebar
  • Do not copy empty selections to the primary clipboard (i.e. do not clear the primary clipboard when a non-selection action is performed, such as moving the cursor or focusing the text input on some systems)
  • Disabled menu entries now block clicks from passing through
  • Only play one sound at a time (if two sounds would overlap, then the second sound is skipped)
  • Allow sound files to be symbolic links
  • When both card and image previews are excluded for a buffer, previews will not be pre-fetched for URLs in that buffer
  • Suppress connection status messages while macOS is asleep
  • Don't show a transient terminal window when running /exec on Windows
  • Do not reconnect automatically when the server closes the connection in response to a requested quit
  • Apply mode arguments to the correct targets when a MODE message mixes added and removed modes (e.g. -o+v foo bar de-ops foo and voices bar)
  • Prevent anti-flood rate limiting from refilling the token bucket beyond its configured capacity
  • Do not send duplicate JOIN message when using /join
  • Do not send MARKREAD for non-PRIVMSG/NOTICE messages when the server does not support echoes
  • Allow commands (e.g. /join) to be used in the input box of not-joined channels
  • Preserve own away state when leaving and rejoining a channel
  • Do not panic when previewing an SVG with a very large filter
  • Reject overlong lines from the server connection instead of buffering them without bound
  • Do not panic when a server-supplied METADATA retry-after value would overflow the retry timer
  • Stop busy-looping on CPU when a DCC file-transfer peer closes its connection early

Changed:

  • Clicking on a message expanded out of a condensed message will always contract it (configurable via actions.only_contract_expanded_message)
  • Rerouted messages are marked with a icon next to the nickname
  • When SASL authentication fails, after disconnecting from the server connection will be automatically re-tried if servers..autoconnect is enabled
  • Renamed sidebar.server_icon → sidebar.primary_icon and sidebar.server_font_size → sidebar.primary_font_size since the settings now apply to both servers and internal buffers
  • Renamed sidebar.unread_indicator.highlight_icon → sidebar.highlight_indicator.icon and sidebar.unread_indicator.highlight_icon_size → sidebar.highlight_indicator.icon_size
  • Renamed sidebar.font_size → sidebar.secondary_font_size to reflect its relationship to sidebar.primary_font_size
  • Renamed actions.buffer.local → actions.buffer.open_internal to match naming convention used elsewhere
  • Renamed actions.buffer.click_username to actions.buffer.click_nickname for more consistent terminology
  • Renamed servers..chathistory to servers..automated_chathistory, and it now controls whether chathistory requests are made automatically instead of controlling whether the chathistory capability is requested (see servers..do_not_request for controlling whether the capability is requested)
  • Moved functionality from buffer.nickname.click → actions.buffer.click_nickname and buffer.channel.nicklist.click → actions.nicklist.click_nickname
  • change_mode server messages are categorized as actions (i.e. actions_dimmed controls whether they are dimmed by default)
  • keyboard.file_transfers shortcut is disabled when file_transfer.enabled = false
  • More than one Halloy log file can be saved (configurable, defaults to 4); accordingly there is not a singular log file /halloy/halloy.log, instead log files are placed in /halloy/logs/
  • Set window icon also on Linux for X11
  • Windows release artifacts are signed using SignPath

Thanks:

  • Contributions: @englut, @luca020400, @classabbyamp, @KaiKorla, @TheDcoder, @City-busz, @rtmongold, @Gelbpunkt, @zsigisti, quark
  • Bug reports: @luca020400, agent314, @FlooferLand, @englut, @rexbinary, @belthesar, @deepspaceaxolotl, @neilzilla, @0ther0ne
  • Feature requests: @FlooferLand, quark, @daniiooo, @deepspaceaxolotl, @4e554c4c, @RoboDanjal, @Vendicated, @raggi, @Avinash-Bhat

Installer type: inno

x646c50ee8a96da71decd0f5c1cb98660a7b77197c22bb6d617684afd740fdee596

Details

Homepage
https://github.com/squidowl/halloy/releases/tag/2026.8
License
GPL-3.0-or-later
Publisher
Squidowl
Support
https://halloy.squidowl.org/
Copyright
© 2022 - 2026 Casper Rogild Storm & Cory Forsstrom, Inc. All rights reserved.

Tags

irchalloy

Older versions (30)

2026.7.2
x64F74342417154FF21DF3E40168CC548374A9C38A5CF558637991F52154C21FB25
2026.7.1
x64dcc3d18abf39d26ee6c97a661e4103c65c401a2f5e162aa4fd8028c4a5f0ad34
2026.7.0
x64a283e2b6b944d4740ab21ce629fef3e8af6e3e6715514786f66627597ce95089
2026.6.0
x6466103cf0678befa388d917975247b3861ebbad93bc7d894fd15a859f2dbf01b2
2026.5.0
x64218a15f53557d45b493e2bef6c2138cdc5a26cd429fc6ee8812065f062419bb8
2026.4.0
x64cc50ba7fe3dfd6b8f2beace0b8003ab2a06c0f4b08fc7f191dd5a14582c966ee
2026.3.0
x644638a1da959dd91483c35f2db54e282404c9d6a444e7be55a42c2743913cf9a6
2026.2.0
x6464f314deccda5255d5b6d1399df60f8bed6e3cfb0c101d7751a30b02ee4e232a
2026.1.0
x6451f09a923819d667fd96b8028a07f2956156651dd21764e506e88a54fbc269c6
2025.12.0
x6460efefdacfe0cd3e83c695014440064cf0eaf5079daeec52e7f48b229ef80435
2025.11.0
x645aff5c09c99f4badbf83fec63a9202efff0a6f2b85b14396005ac095487bfa3f
2025.10.0
x6418148ea94d7c8c2ea8cea8d427e131f928e24c42615137fef3e3a52f721a4384
2025.9.0
x64194f7340ca1d87bed8b0eac8a111d3758c557c63493f128f6477ad2fc010334c
2025.8.0
x64028b5d0798e602edc277615b4b25559498afe766a7d7d118c9eea11379fe7a46
2025.7.0
x6467f340523505f7ed8a7ad6da2cabc37055c7bcbd8770f0f1d548f6ae1d98043f
2025.6.0
x64a90b227655541777cfa29c04c7e34424e00383fb5779dffce73dcb1493f07aaf
2025.5.0
x6492bd3dbb2082899a40b30582c3a744edf7ea68888fa97bd99877cafea58d4ec2
2025.4.0
x64a59968c7788777931e2badf0611a9090a3d9b090973a0452607f2b2443906e03
2025.3.0
x6484217bcf1fab8615206728ae2d6793eaa24e8b83a7ce9ee2f0c2c0c46ede0400
2025.2.0
x640377052a88bf706310cc41fd0086977c5d58fddaa768ac95c27e094cae423b3d
2025.1.0
x64dc177e7cb0cd949ccc19f00e65e5b7ef207fbd62f00aef701add493175fc95cd
2024.14.0
x64d88f204a6e80e65c1e79edd7453673ce386716dcfb20296f618678b59a9c6347
2024.13.0
x64fff9b619e9654e172b9b8ccd35c08c1cae99ecc46dcb15dc5abfd53f63b8e565
2024.12
x64ca9d16d5affa3bed5e7e146a94795c99c12e0406580cb9e64f1584d7a4cc4ce7
2024.11
x64a1595ed2195db5b3323a88cf6edccc2c5ca4caec5043c31b8b305b3471d5ba01
2024.10
x640992ea096927b1809674709e1878924c41c93680952c6e96916ecb7b48f78358
2024.9
x640bf99b8ec79e945d36eac7775549765939800676091a59f878b94bed5a642380
0.0.2024.8
x6425400AF082C4F0AF8416D83814795BAEDC6B06358A683881BFBA3329D635B560
0.0.2024.7
x64f1b535daa6f8b5534334d01abfb1df139559904f59a74cffb5552711359b2daf
0.0.2024.6
x64621B2C22487005F710C97758859C6B93B1742AEB508D80FE1CED9CF3A0808121