Open Source IRC Client
A multiple-document interface IRC client for Windows and Linux
MERK connected to Libera, 2600net, and a local IRC server.
The connection dialog.
MERK is a graphical open source Internet relay chat client. The current development version is 020.002. It uses a multiple-document interface, much like the popular Windows IRC client mIRC. MERK is written in Python 3, using the PyQt5 and Twisted libraries, and runs on both Windows and Linux.
MERK is in beta, but it is usable. A lot of the fancier features don't work, but you can connect to a server, join channels, and chat with people. Private chat works, too.
Currently, user settings and logs are stored in the application directory. Later, user settings and logs will be stored in the user's home directory (or, via a command-line option, another directory of the user's choosing).
pip install pyqt5 pip install Twisted
To connect to IRC servers via SSL, two additional libraries are needed:
pip install pyOpenSSL pip install service_identity
MERK is being developed with Python 3.7 on Windows 11, and Python 3.8.5 on Linux Mint.
pip install pywin32
To run properly on Linux, the latest version of all required software is recommended.
There are three libraries that comes bundled with MERK:
First, make sure that all the requirements are installed. Next, download MERK. Extract the zipfile to a directory of your choice using your favorite archive/zip program. Open a command prompt, navigate to the directory you extracted MERK to, and type:
usage: python merk.py [-h] [--ssl] [--reconnect] [-p PASSWORD] [-D DIRECTORY] [--config-name NAME] [--qtstyle NAME] [-N] [SERVER] [PORT] optional arguments: -h, --help show this help message and exit Connection: SERVER Server to connect to PORT Server port to connect to (6667) --ssl Use SSL to connect to IRC --reconnect Reconnect to servers on disconnection -p PASSWORD, --password PASSWORD Use server password to connect Configuration: -D DIRECTORY, --config-directory DIRECTORY Location to store configuration files --config-name NAME Name of the configuration file directory (default: .merk) --qtstyle NAME Set Qt widget style (default: Windows) Miscellaneous: -N, --noask Don't ask for connection information on start
Several tools are included in the official MERK repository for developing MERK. The
pyrcc5 utility is required, and should be installed automatically when you install PyQt. These are only needed if you're developing MERK, and can be ignored if you're only using the MERK IRC client.
- compile_resources.bat - This batch file compiles the miscellaneous resources (graphics, fonts, etc) required by MERK into a single file,
resources.py, and inserts the file into the MERK source code. This is for development on the Windows platform.
- compile_resources.sh - This shell script basically does the same thing that
compile_resources.batdoes, only it's for development on the Linux platform.
- build_dist.py - This is a Python 3 script that, when executed, does several things:
- Executes either
compile_resources.bat(if the host system is Windows) or
compile_resources.sh(if the host system is Linux); if the host system is not running either Windows or Linux,
build_dist.pywill exit with an error
- Increments the MERK's minor version (which is stored in
merk/data/minor.txt) and saves it
README.txtinto memory and replaces several symbols in it:
! _VERSION_ !(without spaces) is replaced with MERK's major version
! _MINOR_ !(without spaces) is replaced with MERK's minor version
! _FULL_VERSION_ !(without spaces) is replaced with MERK's major and minor version, with a period in between them.
README.mdwith the edited contents of
- Creates a new directory named
dist, and copies into it:
merkdirectory and its contents
qt5reactordirectory and its contents
spellcheckerdirectory and its contents
emojidirectory and its contents
- Zips up the
distdirectory either using PowerShell (if the host system is Windows) or the zip utility (if the host system is Linux) into a file named
- Deletes the
distdirectory and its contents
dist.zipto "merk-MAJOR VERSION.zip", referred to as
merk.zipin this description.
merk.zipexists in the
downloadsdirectory, the version in the
downloadsdirectory is deleted
merk-latest.zipexists in the
downloadsdirectory, it is deleted
merk.zipis copied into the
downloadsdirectory, and is copied to