Spark is an open-source, cross-platform XMPP instant messaging client written in Java, built for businesses and organizations that want private, standards-based real-time collaboration instead of public consumer IM networks.
What it is
Spark is a desktop instant messaging client that speaks XMPP, also known as Jabber, and is published under the Apache-2.0 licence as an Ignite Realtime community project. It lives in the Java ecosystem, which is what makes the cross-platform claim practical across Windows, macOS and Linux, and the repository is tagged with xmpp, xmpp-client, jabber, openfire, java and collaboration. The registry entry records 604 stars, 445 forks and 7 open issues, with the last push dated 2026-09-13.
The concrete problem Spark solves is stated plainly in its own README: combined with the Openfire server, it is positioned as the alternative to using unsecure public IM networks. That means an organization runs its own XMPP server rather than renting presence and messaging from a consumer platform, and Spark is the client its staff install on their desks. Group chat, file transfer and screen sharing all stay inside the same client, so a company does not have to stitch together a messaging app and a separate screen-sharing tool to get basic internal communication.
Key capabilities
- Group Chat, which the README lists first and which corresponds to the multi-user chat screenshots in the project documentation.
- In-line Spell Checking inside the message composition window.
- End-to-end (E2E) Message Encryption with OTR, giving off-the-record encrypted conversations between clients.
- Tabbed Conversations, so multiple simultaneous chats stay in one window.
- File Transfer between users directly through the client.
- Screen Capture Sharing, letting a participant broadcast a captured screen region.
- Message translations, for conversations spanning more than one language.
Who uses it and how
- Organizations that already run or plan to run the Openfire XMPP server, since the README treats Spark plus Openfire as the intended pairing.
- Windows-based fleets, where administrators can distribute the
spark_*-with-jre-amd64.exe build that bundles the JRE and avoids a separate Java install step.
- Java developers working on the client itself, who clone the repository, run
mvn verify, then cd Spark/core and mvn exec:java, or launch the org.jivesoftware.Spark main class from IntelliJ, Eclipse or Visual Studio Code.
- Plugin authors, who work against the Sparkplug Kit development guide and the Spark Development forum category.
- Translators, who contribute through the project's Transifex workspace.
Getting started
Download the last release from the GitHub releases page, or a nightly build from the Ignite Realtime downloads page; on Windows the spark_*-with-jre-amd64.exe package with the bundled JRE is the recommended choice. To run from sources, clone https://github.com/igniterealtime/Spark.git, run mvn verify, then cd Spark/core and mvn exec:java.
How it compares
Among the tools named in the project's own material, Spark is the client half of a pair, with Openfire as the server half, and both are Ignite Realtime projects released as open source. That places Spark alongside the broader XMPP client field listed on the XMPP software compliance page, rather than in the proprietary hosted-messaging category, and it is maintained by the same community that maintains the server it is designed to talk to.
When to use it — and when not to
A self-hoster must operate an XMPP server, and the README's recommended path pairs Spark with Openfire, so the client is not useful on its own without somewhere to connect. Bug tracker access is restricted to a small group of users, which means new reporters have to create a Discourse account, log in, open a New Topic in the Spark Dev category and file there instead of in the tracker directly. Anyone wanting a zero-infrastructure, browser-only chat service should look elsewhere; Spark is a Java desktop client aimed at organizations willing to run their own messaging infrastructure.
project readme (upstream, from github) — read inline
Spark

Spark is an Open Source, cross-platform IM client optimized for businesses and organizations.
- Group Chat
- In-line Spell Checking
- End-to-end (E2E) Message Encryption with OTR.
- Tabbed Conversations
- File Transfer
- Screen Capture Sharing
- Message translations.
Combined with the Openfire server, Spark is the easiest and best alternative to using unsecure public IM networks.
Spark - an Ignite Realtime community project.

Resources
Install
Download the last release from the GitHub releases page
or nightly build with the latest changes.
For Windows, if you are not sure, if it's recommended to download the spark_*-with-jre-amd64.exe that has bundled JRE.
Screenshots



Bug Reporting
Only a few users have access for filling bugs in the tracker. New
users should:
- Create a Discourse account
- Login to a Discourse account
- Click on the New Topic button
- Choose the Spark Dev category and provide a detailed description of the bug.
Please search for your issues in the bug tracker before reporting.
Run from sources
git clone https://github.com/igniterealtime/Spark.git
mvn verify
cd Spark/core
mvn exec:java
To run from an IDE execute the Main class org.jivesoftware.Spark and specify VM option -Ddebug.mode=true.
Ignite Realtime
Ignite Realtime is an Open Source community composed of end-users and developers around the world who
are interested in applying innovative, open-standards-based Real Time Collaboration to their businesses and organizations.
We're aimed at disrupting proprietary, non-open standards-based systems and invite you to participate in what's already one
of the biggest and most active Open Source communities.