Recent from talks
Nothing was collected or created yet.
HexChat
View on Wikipedia| HexChat | |
|---|---|
Screenshot of Hexchat 2.16.0 | |
| Developer | Patrick Griffis[1] |
| Initial release | 6 July 2012 |
| Final release | 2.16.2
/ 9 February 2024 |
| Repository | github |
| Written in | C, Python, Perl, C++, C# |
| Operating system | Linux, Microsoft Windows |
| Platform | x86-64, ARM |
| License | GPL-2.0 only with OpenSSL linking exception |
| Website | hexchat |
HexChat is a discontinued Internet Relay Chat client and is a fork of XChat. It has a choice of a tabbed document interface or tree interface, support for multiple servers, and numerous configuration options. Both command-line and graphical versions are available.[2][3]
The client runs on Microsoft Windows and Unix-like operating systems,[2] and many Linux distributions include packages in their repositories.[4]
History
[edit]The XChat-WDK (XChat Windows Driver Kit) project started in 2010 and was originally Windows-only. The project's original goal was to merge itself with XChat, but evolved from just fixing Windows bugs to adding new features. It started to make sense to support more platforms than Windows. On July 6, 2012, XChat-WDK officially changed its name to HexChat.[5]
The project was discontinued in early 2024, citing lack of maintainer availability.[6]
See also
[edit]References
[edit]- ^ "About | TingPing's blog". Archived from the original on 2018-05-14. Retrieved 2018-05-13.
- ^ a b "News – HexChat". hexchat.github.io.
- ^ Announcement of HexChat Posted on 06 Jul, 2012
- ^ "Shareware background". hexchat.github.io.
- ^ "Announcement". HexChat - IRC client. July 6, 2012. Retrieved July 22, 2021.
- ^ "2.16.2, The Final Release". HexChat. February 9, 2024. Retrieved February 9, 2024.
External links
[edit]- Official website

- #hexchat connect on Libera Chat
HexChat
View on GrokipediaOverview
Description and purpose
HexChat is a free and open-source graphical Internet Relay Chat (IRC) client forked from XChat.[1] It serves as a user-friendly interface for participating in IRC, a protocol designed for real-time text-based communication over the internet.[2] The primary purpose of HexChat is to enable users to connect to various IRC networks, where they can join channels—public or private discussion rooms identified by names prefixed with a hash symbol, such as #example—and exchange messages with other participants. Users select a nickname (or "nick") to identify themselves on the network, which can be changed if unavailable, and the client supports both group conversations in channels and private one-on-one chats (queries) with individuals. By handling connections to IRC servers—specialized hosts that relay messages across the network—HexChat facilitates seamless interaction in these environments without requiring command-line expertise.[2] As a successor to XChat, HexChat was developed to provide a fully free alternative after XChat's Windows version shifted to shareware. It is licensed under the GNU General Public License version 2 (GPL-2.0), with an additional exception permitting the use of OpenSSL for encryption, ensuring it remains completely free and open-source software across all supported platforms.[8][9]Supported platforms
HexChat primarily supports Windows and Unix-like operating systems, including various distributions of Linux and BSD variants, through its GTK+ graphical toolkit.[1][10] On Windows, native binaries are provided for both 32-bit (x86) and 64-bit (x86-64) architectures, ensuring compatibility with modern and legacy systems.[11][11] For Unix-like systems, HexChat is available on architectures such as x86-64 and ARM, with packages tailored for devices like the Raspberry Pi running Linux distributions.[12][12] The core graphical interface relies on the GTK+ library, while scripting support optionally requires additional libraries including Perl, Python (with cffi and pycparser modules), and Lua.[13][13][14] Installation on Windows can be achieved via official executable installers, which automatically handle dependencies, or through package managers like Chocolatey.[11][15] For Linux and BSD systems, HexChat is distributed through native package managers, such as apt for Debian-based distributions (e.g., Ubuntu) and ports for FreeBSD, alongside Flatpak for broader compatibility across Linux environments.[16][17][18] Users seeking custom builds can compile from source using the provided tarball, following standard autotools procedures after installing GTK+ and optional scripting dependencies.[19] HexChat lacks official support for macOS, though third-party ports exist via tools like MacPorts, and it can run on macOS using compatibility layers such as Wine.[20][21] This cross-platform design originated from its 2012 forking as a free alternative to XChat.[8][8]History
Origins and forking from XChat
HexChat originated as a community response to the evolving status of XChat, a popular Internet Relay Chat (IRC) client initially developed by Peter Železný in 1998 as a free, open-source application written primarily in C, supporting both Unix-like systems and Windows.[22][23] The project quickly gained traction in the IRC community for its user-friendly interface and extensibility through scripting languages like Perl and Python.[24] By 2004, with the release of XChat 2.4.0, the official Windows version transitioned to a shareware model, requiring a one-time fee of $19.99 after a 30-day trial period to support ongoing Windows-specific development, including customizations to the GTK+ toolkit.[8] This change introduced proprietary elements, such as exclusive features like graphical smilies and native Windows file dialogs, while the source code remained under the GNU General Public License (GPL) version 2, allowing users to compile and distribute free versions independently.[8] However, the shift created tensions, as the official builds diverged from the fully open-source ethos, limiting community contributions for the Windows platform without assigning rights to Železný.[8] In response to XChat's stagnation— with its last official release in August 2010 and minimal maintenance thereafter— the XChat-WDK (Windows Driver Kit) project emerged in 2010 as a Windows-focused recompilation effort.[25] This unofficial build aimed to preserve the free and open-source nature of the software by leveraging the GPL-licensed source code, bypassing the shareware restrictions, and addressing the perceived abandonment of active development on non-Linux platforms.[25][8] The fork's motivations were rooted in maintaining GPL compliance and enabling unrestricted enhancements, driven by community contributors who sought to sustain and evolve the client without proprietary barriers.[3] On July 6, 2012, XChat-WDK was renamed to HexChat to signify its expansion beyond Windows into a multi-platform project and to establish independence from XChat's commercial legacy, with the name evoking the hexadecimal "hex" common in programming while echoing its predecessor.[3] This rebranding marked a new phase, emphasizing open development and cross-platform compatibility.[3]Key development milestones
HexChat's development after its 2012 rebranding from XChat-WDK prioritized cross-platform expansion beyond its initial Windows focus, incorporating Unix and Linux support to enable compilation and deployment on diverse systems. This shift laid the foundation for broader adoption, with early efforts centered on unifying the codebase for consistent behavior across operating systems.[3] Between 2012 and 2015, several foundational milestones enhanced portability and extensibility. Version 2.9.0, released on July 14, 2012, marked the project's migration to GitHub for collaborative development and introduced a plugin configuration API alongside the X-SASL plugin for secure authentication.[26] In November 2012, version 2.9.4 integrated built-in SASL authentication through the CAP mechanism, supporting identify-msg and multi-prefix capabilities to improve user identification and channel management.[26] By June 1, 2014, version 2.10.0 refined SASL compatibility for servers like InspIRCd, added the userhost-in-names capability for efficient user queries, and incorporated the GTK+ Pixbuf theme engine on Windows to ensure a uniform user interface across platforms.[26] These updates represented initial plugin API enhancements and multi-platform porting, including Unix/Linux compatibility added at launch.[3] From 2016 to 2020, milestones emphasized scripting advancements and security integrations. Version 2.12.0, released on March 12, 2016, added Lua scripting support for custom extensions, implemented IRCv3.2 features like chghost and cap-notify for real-time user updates, and enabled Server Name Indication (SNI) to strengthen TLS/SSL connections.[26] In March 2018, version 2.14.0 overhauled the build system with Meson for better cross-platform reliability, improved Lua scripting capabilities, and resolved compatibility issues with OpenSSL 1.1.0 to bolster secure networking.[26] Theme system improvements continued through GTK+ refinements, while ongoing bug fixes addressed stability on various architectures.[26] In 2021 to 2024, development focused on protocol refinements and security hardening amid community contributions. Version 2.16.0, released on October 1, 2021, incorporated IRCv3 extensions such as SETNAME for nickname changes and UTF8ONLY for encoding consistency, alongside updating the default network list to feature Libera.Chat and removing outdated dependencies like libnotify.[26] Version 2.16.1, issued on February 12, 2022, fixed UTF-8 handling in Python scripts and enhanced OpenSSL 3 compatibility for robust TLS/SSL support.[26] The final version, 2.16.2, released on February 9, 2024, added default TLS usage for the /server command, support for extended-monitor and SCRAM SASL mechanisms, and various crash fixes and improvements, accumulating changes from the prior two years.[26][7] Security patches refined SASL authentication mechanisms, and proxy support saw incremental expansions for diverse network environments, all facilitated by the GitHub repository's community-driven model.[26][10] Overall, this era reflected a progression toward balanced cross-platform development, with greater emphasis on stability, modern security protocols, and maintainer sustainability rather than rapid feature proliferation.[3]Features
User interface and usability
HexChat features a graphical user interface constructed using the GTK+ toolkit, providing two primary modes for navigation: a tabbed multi-window layout that allows users to manage multiple channels and servers in separate tabs, or a tree-view hierarchy that organizes networks, servers, and channels in a hierarchical structure for efficient browsing.[27] The tree-view mode, selectable via thegui_tab_layout setting (0 for tabs, 2 for treeview), enables users to collapse or expand sections, facilitating quick access to specific conversations without cluttering the screen.[27]
Usability is enhanced through built-in features designed for smooth IRC interactions, including automatic nick completion that cycles through available nicknames when typing (toggleable with completion_auto and sortable via completion_sort), customizable fonts and text colors defined in the preferences palette for events and backgrounds, and integrated spell-checking that leverages system-wide dictionaries like those provided by Enchant on Unix-like systems or native support on Windows 8 and later.[27][28][29] A red marker line visually separates read from unread messages, resetting with shortcuts like Ctrl+M to track conversation progress, while notification sounds can be configured for events such as message highlights or private messages under the Alerts preferences.[27][29]
Extensive customization options allow users to tailor the interface via theme files in .hct format—essentially ZIP archives containing color and event configurations—that can be installed directly into the config directory, supporting diverse visual styles from dark themes to high-contrast palettes stored in files like colors.conf.[28] Layout preferences, including tree icons and dotted lines, are preserved in user-specific configuration files located in directories such as ~/.config/hexchat on Unix-like systems.[27] Accessibility is further supported by a range of keyboard shortcuts for actions like switching tabs (Ctrl+Page Up/Down), alongside localization in over 50 languages, configurable through system language settings or environment variables like LANG.[27][29][30]
Networking and security features
HexChat provides robust connection features tailored for IRC usage, including support for multiple servers within a single network configuration. Users can define several networks in the Network List, each with its own set of servers specified by hostname and port, enabling simultaneous connections to different IRC networks. Automatic reconnection is enabled by default and configurable through settings like auto-reconnect toggles and delay intervals, ensuring persistent sessions after temporary disconnections. Proxy integration supports types such as SOCKS4, SOCKS5, HTTP, Wingate, and MS Proxy, with options to apply them globally, to IRC traffic only, or to DCC transfers exclusively, facilitating connections through firewalls or anonymizing proxies. Additionally, Direct Client-to-Client (DCC) functionality allows for secure file transfers and private chats outside the main IRC server, with customizable ports, IP binding, and auto-accept policies to manage incoming requests.[27] Security is a core aspect of HexChat's networking, with TLS/SSL encryption enabled by default for server connections as of version 2.16.2, where the/server command automatically uses secure ports like 6697 unless overridden. Users can specify TLS via a + prefix on ports in the server list or disable it for insecure connections using the -insecure flag or a - prefix, providing flexibility for legacy or testing scenarios. SASL authentication is natively supported for secure logins, allowing username and password pairs in the connection settings to authenticate before joining channels, which enhances protection against eavesdropping on credentials. Client certificates further bolster identity verification, particularly for SASL EXTERNAL mechanisms on compatible networks; unencrypted certificate files (e.g., in PEM format) are placed in the application's certs directory, and HexChat automatically presents them during TLS handshakes without requiring password protection on the certs themselves.[26][27][29]
In terms of protocol handling, HexChat supports IRC extensions like WHOX for advanced user information queries, which populates the user list with hostmasks and other details when enabled via settings such as irc_who_join. This allows for more informative channel management without additional scripting. The client also includes built-in error management for networking issues, such as flood protection to throttle CTCP and message rates, preventing bans from overzealous sending, and diagnostic tools in the preferences for troubleshooting port conflicts or proxy failures. For instance, explicit port prefixes (+ for TLS, - for plain) aid in resolving encryption-related connection errors, while log files capture detailed diagnostics for further analysis.[27]
Scripting and plugins
HexChat provides extensibility through scripting and a plugin architecture, allowing users to customize functionality beyond the core IRC client features. Scripts can automate tasks, respond to events, and interact with the interface, while plugins offer deeper integration via compiled code.[31] The client supports scripting in Python (versions 2.7 and 3.x), Perl (version 5.20), and Lua (versions 5.1–5.3), which are officially maintained interfaces. These languages enable users to write code that hooks into HexChat's event system without needing to compile C extensions for basic automation. Additionally, the plugin API allows for compiled modules written primarily in C, providing binary compatibility across HexChat versions and access to lower-level features like file descriptor monitoring.[31][32][33][34][35] Core capabilities include event hooks for actions such as connecting to servers, receiving messages, or users joining/parting channels, which allow scripts to intercept and modify behavior. Automation is facilitated through custom commands, such as auto-joining channels or triggering alerts on specific events, and data structures like iterable lists for tracking channels, users, and DCC connections. Scripts and plugins can also set timers, store preferences (as strings or integers), and emit output to the user interface, such as printing formatted text with bold (\002) or color (\003) codes.[33][35][34][32]
Common uses include developing IRC bots that respond to queries, analyzers that parse chat logs for patterns, or modifications that tweak the user interface, like adding custom menus via the /MENU command. Scripts are installed by placing files (e.g., .py, .pl, .lua) in the addons directory for automatic loading on startup, or manually via client commands such as /py load filename.py, /lua unload script.lua, or /pl load plugin.so for plugins, with unload and reload options available for management.[33][35][36][32][37]
Scripts operate in isolated environments per language interpreter, limiting direct access to system files or external resources unless explicitly permitted through API calls like executing shell commands via hooks. Plugins, while more powerful, require recompilation for major architecture changes and adhere to UTF-8 string handling, with no support for certain features like Win32 pipes in file descriptor hooks. These constraints ensure stability but may require workarounds for advanced I/O operations.[35][33][32][34]
Development
Core team and contributors
HexChat's primary development has been led by Patrick Griffis, known online as "TingPing," who served as the main maintainer starting around 2010 with the XChat-WDK project and continued through the 2012 rename to HexChat.[38] Griffis handled the core C codebase, overseeing bug fixes, feature implementations, and release management for the GTK+ IRC client across Windows and Unix-like systems.[10] His leadership ensured the project's open-source nature under the GPL v2 license with an OpenSSL exception, focusing on cross-platform compatibility and security updates.[10] Key contributors to HexChat include a diverse group of community members who participated via the project's GitHub repository, totaling over 160 individuals as of its archival in 2024.[39] Notable examples encompass developers like Arnavion and orium, who implemented features and resolved issues through pull requests, as well as mniip, who developed the Lua scripting plugin for enhanced extensibility.[39][40] Early collaborators on the transition from XChat-WDK contributed to initial Windows-specific adaptations, bridging the gap from the original XChat codebase.[3] The contribution model for HexChat emphasizes open-source collaboration through its Git repository hosted on GitHub, where developers submitted pull requests for code fixes, new features, and plugin integrations.[10] Documentation efforts were centralized on Read the Docs, providing guides for scripting interfaces like Lua and Perl, as well as user manuals to support contributor onboarding. This decentralized approach allowed for iterative improvements, with community-driven testing and feedback shaping releases up to version 2.16.2. Community involvement extended beyond code to support channels and localization efforts, fostering a collaborative ecosystem. The official IRC channel, #hexchat on Libera.Chat, served as a hub for real-time discussions, bug reporting, and user assistance.[41] Additionally, translation teams coordinated via Transifex to localize the interface into multiple languages, enhancing accessibility for global users.[30] GitHub issues and the project's forums complemented these avenues, enabling bug reporters and feature requestors to engage directly with maintainers.[10]Version history and discontinuation
HexChat's development as a distinct project began with its announcement on July 6, 2012, and initial release as version 2.9.0 on July 14, 2012, marking its debut as a cross-platform IRC client forked from XChat and available for Windows, Linux, and other Unix-like systems.[3][26] Subsequent releases focused on enhancing stability, security, and functionality. Version 2.9.6, released on September 11, 2013, included several stability fixes, such as resolving crashes related to tab management and message routing, along with support for additional SASL mechanisms like BLOWFISH and AES.[26] The 2.12 series, starting with version 2.12.0 on March 12, 2016, introduced Lua scripting integration in 2.12.1, enabling more advanced plugin development, while also adding IRCv3.2 support and native spell-checking on Windows.[26] Later, version 2.16.0 arrived on October 1, 2021, with updates to IRCv3 capabilities like SETNAME and invite-notify, and version 2.16.2 on February 7, 2024, served as the final official release, incorporating security patches, cleanup of deprecated features, and default TLS for server connections.[26][7]| Version | Release Date | Key Changes |
|---|---|---|
| 2.9.6 | September 11, 2013 | Stability fixes (e.g., tab crashes, FreeBSD compilation); added SASL mechanisms (BLOWFISH, AES); Python 3 support.[26] |
| 2.12.0 / 2.12.1 | March 12, 2016 / May 1, 2016 | IRCv3.2 support; native Windows spell-check; Lua scripting integration; crash fixes.[26] |
| 2.16.0 | October 1, 2021 | IRCv3 extensions (SETNAME, invite-notify, UTF8ONLY); updated default networks; removed outdated dependencies.[26] |
| 2.16.2 | February 7, 2024 | Default TLS for servers; SCRAM SASL support; security patches and minor fixes; final release.[26][7] |
Reception and legacy
Adoption and popularity
HexChat has seen significant adoption as an open-source IRC client, particularly within Linux ecosystems where it is packaged and distributed through major repositories. It is available in distributions such as Debian, Ubuntu, Gentoo, and others via package managers like apt, enabling straightforward installation for users on Unix-like systems.[45][13] For Windows users, HexChat is accessible through direct downloads from its official website and package managers like Chocolatey, broadening its reach across operating systems. Additionally, it served as the default IRC client in privacy-focused distributions like Whonix until early 2024, underscoring its utility in specialized environments.[1][15][46] In terms of popularity metrics, HexChat's GitHub repository garnered over 3,200 stars prior to its archival in 2024, reflecting strong interest from developers and open-source enthusiasts. It frequently appears in IRC tutorials, forum discussions, and community recommendations, particularly during the 2010s when IRC remained a staple for open-source collaboration and real-time communication. Descriptions from tech outlets highlight its status as one of the more popular graphical IRC clients in the community, valued for its cross-platform compatibility and feature set.[47][48][49][50] HexChat's success stemmed from its position as a free, open-source alternative to shareware clients like mIRC, eliminating licensing barriers for users seeking a robust IRC experience. As a direct fork of the widely used XChat, it offered a familiar interface and seamless transition for existing users, appealing to beginners and veterans alike in the IRC space.[8][24] Following its discontinuation in February 2024 with the release of version 2.16.2, HexChat's usage has declined due to lack of updates and maintainer support, though it remains available in repositories like Ubuntu 24.04 for ongoing installations. In 2025, it is still recommended for legacy IRC setups where stability is prioritized over new features, maintaining a niche presence among users reliant on established open-source tools.[7][45]Comparisons with other IRC clients
HexChat, as a free and open-source IRC client, stands in contrast to mIRC, which operates under a shareware model requiring payment after a trial period and featuring a nag screen for unregistered users. Unlike mIRC's primary focus on Windows with limited ports to other platforms, HexChat provides native support for Windows, Linux, and macOS, enabling seamless cross-platform use without the need for emulation or third-party adaptations.[1] While mIRC offers deep Windows-specific scripting through its proprietary language, allowing extensive customization for automation and interface tweaks, HexChat's scripting relies on Python and Perl plugins, which provide flexibility but lack the same level of platform-tailored depth for Windows users.[51] In comparison to irssi, a terminal-based IRC client, HexChat employs a graphical GTK+ user interface that prioritizes ease of use for beginners and visual navigation through tabs and trees, making it more accessible for users preferring a point-and-click experience over command-line interaction. Irssi, by design, consumes fewer system resources due to its text-based nature, rendering it suitable for low-resource environments or remote sessions, whereas HexChat's GUI demands more overhead but supports intuitive features like drag-and-drop file transfers.[52] Both clients support Perl scripting for extensibility, though irssi's command-line focus facilitates advanced, lightweight automation that appeals to power users, in contrast to HexChat's plugin ecosystem geared toward graphical enhancements.[53] Relative to other XChat forks such as XChat-Azure, which targets Windows and macOS with a native Aqua interface but has seen minimal updates since around 2017, HexChat received active maintenance until its discontinuation in early 2024, including security patches and feature additions like improved plugin compatibility across broader platforms.[54][7] XChat-Azure emphasizes Mac-specific integrations, such as better support for OS X notifications, but its narrower scope limits cross-platform plugin portability compared to HexChat's unified codebase for Linux, Windows, and Unix-like systems.[55] As a discontinued yet stable client, HexChat serves users with straightforward IRC needs through its reliable GUI and plugin support, differing from modern alternatives like WeeChat, a highly extensible terminal client with robust scripting in multiple languages for complex setups, or The Lounge, a self-hosted web-based client that enables browser access from any device without local installation. HexChat's legacy positions it as a lightweight desktop option for casual users, avoiding the configuration overhead of WeeChat or the server requirements of The Lounge, though it lacks their ongoing development for emerging IRC extensions.[56][57]References
- https://wiki.gentoo.org/wiki/HexChat
