Repository navigation
Summary
MERK is a free, open source, multiple-document interface Internet relay chat for Windows, Linux, and macOS. It can be run with Python 3.9+ if PyQt5 and Twisted are installed; to connect to TLS/SSL enabled servers, install pyOpenSSL and service_identity. If you encounter problems running MERK with Python 3.9+ on Windows, you may need to install pywin32. All PyInstaller versions of MERK are built for 64-bit operating systems.
What's New
- Many icons have been changed. The icons for "open file", "folder", "bold" and "italics", "new file", "save", and "save as" are all new, from the public domain Tango icon set.
- Log snippets can be copied from the Log Manager with color/formatting stripped. Use the "Ctrl+X" shortcut in the Log Manager to copy text from the log viewer with all IRC colors/formatting stripped from the text.
- Results from
/ctcp PINGnow show the round-trip time the request took in milliseconds. Showing a user's full username (nickname!hostmask) in CTCP replies can now be toggled; this is turned off by default, and will only display the user's nickname. - The "Windows" menu has been streamlined.
- Many more IRC networks now have "known" websites. The network website URLs will appear in server information menus, and in status bars. Nearly all of the "built-in" server networks now have a URL, if we could find one.
- All new application shortcuts. Press
Ctrl+Nto open the connection dialog,Ctrl+Lto open the Log Manager,Ctrl+Eto open the text style editor,Ctrl+Ito open the Ignore Manager, andCtrl+Hto open the Hotkey Manager. The shortcuts are turned on by default; they can be turned off in the "Settings" dialog, in the "Settings" menu, or with the/configcommand. - Users are now asked before connecting to the same server more than once. MERK will connect to servers more than once, it will only ask the user if they are sure they want to. This option is enabled by default, but can be disabled in the "Settings" dialog, or with the
/configcommand. - New "tips" have been added to the "tips and tricks" dialog.
- Many prompt dialogs have been updated. Dialogs that prompt the user for a "yes or no" question have been changed to be clearer and easier to understand; the default button is always in "bold".
- New script-only command:
strip. This command strips IRC colors and formatting from text and stores the result in an alias. - The
_TOPICand_COUNTbuilt-in aliases work slightly different. More details can be found in the MERK User Guide. - New built-in alias:
_CMODE. This built-in aliases contains any channel modes that are set in the current channel, or to*if used in a non-channel window or if no channel modes are set. - The "large log" warning has been set to 15 MB (down from 30 MB). This is the new limit MERK will look for before prompting the user the back up large logs.
- Many bugfixes.
Files
- Python distribution
merk-0.052-300.zipcontains the Python code for MERK; unzip the source to any folder, navigate to that folder with your favorite console application, and typepython merk.pyto run MERK. Instructions for running the source on Windows, Linux, and macOS can be found in the repository.
- Windows PyInstaller distributions
merk-windows-0.052-300.zipcan be unzipped to any folder, and contains an executable and a directory with support files; unzip to any folder, and double click onmerk.exeto run MERK.merk-windows-setup-0.052-300.zipcontains an installer for MERK; unzip and double clicksetup.exe.
- Linux PyInstaller distribution
merk-linux-0.052-300.zipcan be unzipped to any folder, and contains an executable and a directory with support files; unzip to any folder, and double click onmerkto run MERK.merk-linux-0.052-300.flatpakcan be installed withflatpack install --user merk-linux-0.052-300.flatpak.
- Other files
MERK_User_Guide.pdfcontains a guide for using MERK, as well as writing scripts and plugins. It is available in the app, in the "help" menu.CHANGELOGcontains a list of changes in new release.
All downloads contain README.html, which contains usage information about the application and a list of all commands supported by MERK. Further information can be found in the MERK_User_Guide.pdf, available here or from the Help menu.
MERK has a plugin framework. For more information about how to write plugins, please see MERK_User_Guide.pdf. The official repository contains some example plugins right here.
Configuration files and logs are stored in a directory named .merk in the user's home directory.
CHANGELOG for 0.052.300
APPLICATION CHANGES
- Changed the "open file" icon.
- Changed the "folder" icon.
- Changed the "bold" and "italics" icons. Previously, these icons had both
"dark mode" and "light mode" separate icons; the code for this (and the icons)
have been removed. - Bugfix: the userlist display in the text style editor was not showing entries
in bold (or NOT in bold) correctly. - Bugfix: changing the font while connected and chatting could result in the
chat display "cursor" being moved to an incorrect position. - Tweaked the "set color" button size in the "Settings" dialog and the text
styler. This shrinks the size of the text style editor down some. - All widgets in the text style dialog can no longer accept focus, and the
"Apply" button is now set to be the default button. - Bugfix: the "user" icon was shown in the channel "copy channel name to
clipboard" option in the channel chat display right click menu. - Added an option (for privlileged users) to copy a channel's banlist to the
clipboard to the channel right click menu. - Tweaked the private chat and channel right click menus; the name of the
current chat is now mentioned relatively frequently. - Changed the right click menu in the log manager to allow users to copy
selected text in the log viewer and strip IRC colors from the text before
storing it in the clipboard. The "cut" shortcut (Ctrl+X) has is used to
copy text without any IRC formatting or colors. - Changed the "new file" icon.
- Changed the "save" icon.
- Changed the "save as" icon.
- The "/ctcp" command can now send PING requests. The "/ping" command (which did
this functionality) has been removed. The "/help" command text, as well as
the command documentation and the syntax highlighter, has been updated
accordingly. - Bugfix: the IRC client can now handle malformed PING replies without
displaying an error message. - Bugfix: the IRC client now handles CTCP PING replies properly.
- Bugfix: the "smaller font" point size in the text style dialog could be not
set in certain circumstances. - Bugfix: fixed the "/links" command.
- Bugfix: several commands were potentially vulnerable to a race condition.
- The "/whois", "/whowas", and "/who" commands now also write their output to
the server window. - Bugfix: the "/who" command could print to STDOUT for no reason.
- Removed support for the WebSocket "pong" event.
- The "/ctcp PING" command now tracks how long it took the PING to return to
to the client, and displays that time in milliseconds to the user. - Bugfix: the "/ctcp" command could pass unneeded arguments.
- CTCP replies no longer display the user's "full" username (nick!hostmask).
- Added an option to toggle showing "full" user data in CTCP replies to the
"Settings" dialog. - Server submenus in the "Windows" menu now don't reproduce a per-server
subwindow list when only one server is connected to. All the other options are
there (as set in the "Settings" dialog/config file). - Added a link to every network in the "built-in" server list that I could find.
- The "cleanlooks" Qt widget style is now allowed for use.
- Added a message box that asks the user if they want to restart the
application when they change the Qt widget style. Much like with other message
boxes, the option to reconnect to all currently connected servers on restart
is offered to the user. - Added application shortcuts to bring up the connection dialog, log manager,
style editor, hotkey manager, and ignore manager. This option can be turned
off in the Settings dialog, or by using "/config" to set
"application_shortcuts" to "false". The shortcuts, if enabled, are shown in
menu entries. - Bugfix: the chat display in the text style editor could be scrolled.
- Added a toggle for application shortcuts to the "Settings" menu, in the
"Tools" submenu. - Changed the font size in main menu entries.
- Code cleanup: moved more functionality using string concatenation to
f-strings. - Bugfix: channel topics with IRC colors/formatting could show up "strange" if
they are shown in the application title. The colors/formatting are now
stripped before being shown in the title. - Added an option to prompt the user if they try to connect to the same server
more than once; the user can still connect anyways, but they will be prompted
to make sure. This option is enabled by default, but can be disabled in the
"Settings" dialog or the "/config" command. - Unified the "visual language" of the application by making the default button
in various dialogs bold. - The "hostmask" script only command will now "return" "*" if the requested
hostmask is not known. - Added new "tips" to the "tips and tricks" dialog.
- Bugfix: channel user list refreshes didn't always occur for some "ununsual"
or uncommon channel statuses. - Some server requests were moved to the newer "batch" system, to limit how
much information we request from the server at one time. - New built-in alias: "_CMODE", which contains any set channel modes, or is set
to "*" if there are no modes set or the window is not a channel window. - Change to the "_COUNT" built-in alias: the alias works the same for channel
windows, but is set to "0" for server windows, and "2" for private chat
windows. - Change to the "_TOPIC" built-in alias: if there is no topic set, or if the
window is not a channel window, "_TOPIC" will be set to "*". - Bugfix: fixed several error messages for script-only commands.
- New script-only command: "strip", which strips IRC colors and formatting from
a string and stores it in an alias. - Changed the default "large log warning" size to 15 MB (down from 30 MB). The
variable name in the configuration file has been changed so that the new
default it updated for all users. - Rewrote some of the message display code for setting and unsetting modes.
- Bugfix: sometimes the client would display a "mangled" set or unset mode
message from servers. - The "/time" command now displays the reply to it in the active subwindow as
well as the server subwindow; the same change has been made with the
"/version" command. - Bugfix: being kicked from a channel could trigger a 442 error from the server
(as the client tried to issue a PART command when a channel window is closed).
PLUGIN API CHANGES
- The Window class "status" method can now accept "op" or "operator" to test for
channel operator status. - The Window class "status" method can now accept "halfop" or "half-operator" to
test for channel half-operator status. - The Window class "status" method can now accept "admin" or "administrator" to
test for channel administrator status.
WARNING! MERK may appear to be infected with something by your Windows antivirus. It is not infected with anything, it just seems to appear that way because some malware in the past was packed with PyInstaller (at least, this is my theory). I have uploaded all binaries to VirusTotal.
Released Monday September 21, 2026