[[TOC]]
A fully-featured XMPP chat client.
Gajim aims to be an easy to use and fully-featured XMPP client. Just chat with your friends or family, easily share pictures and thoughts or discuss the news with your groups.
- libadwaita (>=1.7.0)
- cairo (>=1.16.0)
- cryptography (>=3.4.8)
- css-parser
- emoji (>=2.6.0)
- GLib (>=2.80.0)
- Gtk4 (>=4.17.5)
- GtkSourceView5
- keyring
- nbxmpp (>=6.2.0)
- omemo-dr (>=1.0.0)
- packaging
- Pango (>=1.50.0)
- Pillow (>=9.1.0)
- precis_i18n
- pycairo
- PyGObject (>=3.52.0)
- Python (>=3.11)
- qrcode (>=7.3.1)
- setuptools (>=65.0.0)
- SQLAlchemy (>=2.0.0)
- sqlite (>=3.35.0)
- pystray (Only on Windows)
- PyWinRT (Only on Windows)
- windows-toasts (Only on Windows)
- D-Bus running to have gajim-remote working
- sentry-sdk for Sentry error reporting to dev.gajim.org (users decide whether to send reports or not)
- libspelling and hunspell-LANG where lang is your locale eg. en, fr etc
- libsecret for GNOME Keyring or KDE support as password storage
- GUPnP-IGD for better NAT traversing
- NetworkManager for network lose detection
- GeoClue for sharing your location
- GSound for sound on Linux
- Farstream
- GStreamer
- gst-plugins-base
- gst-plugins-rs (for gst-plugin-gtk4)
- gst-plugins-ugly
- gst-libav
- setuptools (>=65.0.0)
- gettext
To build Gajim a PEP517 build frontend like pip (https://pip.pypa.io/en/stable/) or build (https://pypa-build.readthedocs.io/en/stable/) must be used.
The build frontend takes care of installing all python build requirements. Beware gettext
is not a python library and cannot be installed by the build frontend.
$ ./make.py build -h
usage: make.py build [-h] [--dist {unix,flatpak,flatpak-nightly,win}]
Afterwards metadata files can be found in dist/metadata
folder.
This is only necessary if you need the wheel, otherwise you can skip to the Installing section.
python -m build -w
pip wheel --no-deps --use-pep517 -w dist .
pip install .
pip install dist/name_of_wheel.whl
$ ./make.py install -h
usage: make.py install [-h] [--dist {unix,flatpak,flatpak-nightly}] [--prefix PREFIX]
options:
-h, --help show this help message and exit
--dist {unix,flatpak,flatpak-nightly}
Distribution
--prefix PREFIX The path prefix for installation (e.g. "/usr")
python -m unittest discover -s test
python -m unittest ./test/gtk/gui_file.py
(for testing GUI files)
see README
see Wiki
To create a virtualenv you can execute
./scripts/dev_env.sh
Be sure all install requirements are available.
Afterwards activate the virtual environment with
source .venv/bin/activate
It is a good practice to run the development version with a user profile. This ensures that it does not interfere with other installations.
./launch.py --user-profile dev
see README
Execute gajim with --verbose
That is all, enjoy!
(C) 2003-2025 The Gajim Team https://gajim.org
We use original art and parts of sounds and other art from Psi, Gossip, Gnomebaker, Gaim and some icons from various gnome-icons (mostly Dropline Etiquette) we found at art.gnome.org. If you think we're violating a license please inform us. Thank you.