Vacuum Chat 2.0.0 is a Qt 6 desktop messaging application with a modular plugin architecture. It offers XMPP account support and an integrated Matrix and Meshcore plugin, with shared interfaces for conversations, presence, rosters, notifications, and message display.
- XMPP accounts, presence and contact rosters
- One-to-one chats and multi-user chat rooms
- Message history and archive support
- File transfer, notifications, and configurable message styles
- Extensible functionality provided by loadable plugins
- Matrix rooms and conversations integrated into the shared chat UI
- Optional Matrix end-to-end encryption support when
libolmis available at build time - MeshCore account
| Chat Protocol | Status | Comment |
|---|---|---|
| Matrix | ✔️ | Integrated with rooms, messages, reactions, e2ee, etc. |
| XMPP | ✔️ | Classic protocol supporting PubSub, MUC, and offline messages. |
| Meshcore | ✔️ | Custom distributed architecture for decentralized communication. |
| Discord | ❌ | Planned for future release, no release date yet. |
| IRC | ❌ | Planned for future release, no release date yet. |
- CMake 3.16 or newer
- A C++ compiler supported by Qt 6
- Qt 6 components: Core, Gui, Widgets, Network, Xml, and Sql
- Python 3 for the protocol smoke tests
Matrix encryption dependencies are optional. CMake enables Matrix E2EE when it
finds libolm; OpenSSL enables the Matrix Secure Secret Storage (SSSS)
functionality. Without these libraries, the corresponding Matrix cryptographic
features are disabled.
The Spell Checker plugin needs a Hunspell dictionary for the selected language;
installing the Hunspell library alone is not enough. A dictionary consists of a
matching .dic and .aff file. On Linux, dictionaries are searched in
/usr/share/hunspell and /usr/share/myspell, as well as the plugin data
folder's spelldicts directory. On OS/2 and Windows, place them in a hunspell
folder next to the application. Enable the Spell Checker plugin and select an
installed dictionary from the editor's context menu. Spell checking is
unavailable when no matching dictionary is found.
Configure and build the main application from the repository root:
mkdir build
cd build
cmake -DRUN_FROM_BUILD_DIR=ON -DHAVE_OLM=1 ..
make
On Linux, CPack can create a Debian package; when bsdtar and zstd are
available, its default generator set also creates an Arch Linux
.pkg.tar.zst package:
cmake -DRUN_FROM_BUILD_DIR=OFF -DHAVE_OLM=1 -DCPACK_BINARY_DEB=true ..
make packagesRun the project checks with:
make checkThis builds the chatmessagehandler and recentcontacts targets, runs the
Matrix protocol smoke suite, and checks the Git diff for whitespace errors. The
Matrix smoke suite uses a local mock HTTP server and does not require a live
homeserver.
An optional live Matrix smoke test runs when all of these environment variables are set:
MATRIX_HOMESERVERMATRIX_ACCESS_TOKENMATRIX_USER_IDMATRIX_HOME_ROOMMatrix Keep access tokens private; do not commit them or place them in this README.
src/interfaces/— protocol-neutral plugin and application interfacessrc/plugins/— XMPP, Matrix, chat UI, roster, notification, and other pluginssrc/utils/— shared application utilitiestests/— protocol and integration smoke tests
Vacuum Chat is distributed under the GNU General Public License, version 3. See
COPYING for the full license text.
