Gajim XMPP client
  • Python 98.3%
  • CSS 0.6%
  • Shell 0.6%
  • NSIS 0.4%
  • Roff 0.1%
Find a file
2026-10-03 19:22:36 +02:00
.chglog other: Change all repository links to gitlab.com 2026-09-17 20:43:31 +02:00
.ci other: Harmonize license and copyright information 2026-09-25 21:00:00 +02:00
.github/workflows ci: MacOS: Remove MacOS 14 from build 2026-09-19 13:10:27 +02:00
.gitlab/issue_templates other: Change all repository links to gitlab.com 2026-09-17 20:43:31 +02:00
data other: Change hardcoded links back to gajim domain 2026-09-28 20:05:00 +02:00
debian change: Move tests to tests folder 2026-09-27 10:45:54 +02:00
flatpak other: Remove obsolete flatpak script 2026-09-28 20:05:33 +02:00
LICENSES other: Harmonize license and copyright information 2026-09-25 21:00:00 +02:00
mac change: Switch Gajim to src layout 2026-09-27 17:24:16 +02:00
po chore: Update translations 2026-08-27 20:42:39 +02:00
scripts other: Update builder.pyi generator script 2026-09-28 20:44:45 +02:00
src/gajim fix: MacOS: Make moving cursor one word work again 2026-10-03 19:22:36 +02:00
tests other: Tests: Fix import 2026-09-27 11:37:29 +02:00
typings cq: Fix typos and replace codespell with typos 2026-09-26 13:37:05 +02:00
win ci: Windows: Fix build 2026-09-28 23:24:18 +02:00
.gitattributes Add .gitattributes 2020-10-19 20:12:40 +02:00
.gitignore change: Switch Gajim to src layout 2026-09-27 17:24:16 +02:00
.gitlab-ci.yml change: Switch Gajim to src layout 2026-09-27 17:24:16 +02:00
.pre-commit-config.yaml ci: Don't fix typos automatically 2026-09-28 23:49:11 +02:00
ChangeLog cq: Fix typos and replace codespell with typos 2026-09-26 13:37:05 +02:00
CONTRIBUTING.md cq: Fix typos and replace codespell with typos 2026-09-26 13:37:05 +02:00
COPYING Revert "Add OpenSSL licese exception. Fixes #8999" 2018-03-28 19:24:47 +02:00
make.py change: Switch Gajim to src layout 2026-09-27 17:24:16 +02:00
MANIFEST.in other: Include .in files again in source distribution 2026-09-29 21:13:58 +02:00
pyproject.toml refactor: Rework ComponentSearch 2026-10-03 17:31:01 +02:00
README.md change: Switch Gajim to src layout 2026-09-27 17:24:16 +02:00
REUSE.toml change: Switch Gajim to src layout 2026-09-27 17:24:16 +02:00

[[TOC]]

Gajim

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.

Requirements

Runtime Requirements

Optional Runtime Requirements

  • D-Bus running to have gajim-remote working
  • sentry-sdk for Sentry error reporting to gitlab.com (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
  • distro to get accurate information about the used operating system (name, version)

Rich Previews (Images and Voice Messages)

Build Requirements

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.

Building

Building the metadata files and translation

$ uv run ./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.

Building the wheel

Using build

python -m build -w

Using uv

uv build

Installing

uv pip install dist/name_of_wheel.whl

Installing the metadata files (Unix only)

$ uv run ./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")

Tests

  • uv run pytest
  • uv run pytest ./test/gtk/gui_file.py (for testing GUI files)

Packages and install instructions

Packages

Flatpak

see README

Snapshots

Mac

see Wiki

Developing

The easiest way to run the development version is to use uv

uv run gajim --user-profile dev

Windows

see README

Miscellaneous

Debugging

Execute gajim with --verbose

That is all, enjoy!

(C) 2003-2026 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.