SimpleX Chat
We already wrote some articles on instant messaging apps that respect privacy1.
In this article, we present SimpleX Chat (already to version 5.0, but we have been following the project since some time ago), which has the particularity - as you can read on the official website - to be the first messenger without user IDs. We should point out that Session also does not use identifiers.
SimpleX Chat, founded by Evgeny Poberezkin, is an open-source project under AGPL-3.0 license, started in 2020. Being an open-source project, you can access its GitHub repository to view and verify the code.
We believe in and support open-source, considering it as a considerable value.
Thus, kudos to Simplex Chat’s developers.
The project is well attended and in continuous development, so much so that the current SimpleX Chat v5.0 supports videos and files up to 1GB.
In our previous articles on instant messaging solutions, we highlighted as we avoid WhatsApp for several reasons described in some of our contributions to which we refer.
Moreover, we prefer decentralized systems instead of centralized ones because they allow users to have control over their data as by Whereas(7) of the GDPR. However, apart from the choice of a centralized architecture, we appreciate some apps like Signal.
From our perspective, some instant messaging apps like Matrix, Session, and any solution based on XMPP open protocol (we use Snikket (XMPP)), are closer to respecting current data protection, privacy legislation, and technical standards due to their decentralized architecture.
Among the last group, there is also SimpleX Chat. However, you can find our choices on our Digital Notepad page, “Main apps and services I use”, and also on that one, “How to contact me”.
Notably, the main goal of complying with the data protection and privacy legislation is to respect some main principles like data minimization, data protection by design and by default, transparency, accuracy, storage limitation, integrity and confidentiality.
The mentioned apps, each one different from the others, respect almost all those principles.
Regarding SimpleX Chat, you can read How does SimpleX work? to understand its peculiarity. Moreover, the most crucial feature of SimpleX Chat is that it does not use IDs, avoiding personal data disclosure or identifiers. You can chat with people by just communicating a unique TOR network URL.
We much appreciate the founder and developers’ dedication to describing the relevance of not using IDs in the paragraph “Why user IDs are bad for privacy?”. That makes one of the differences with the other instant messaging apps like WhatsApp or Signal.
Definitely! We agree but also underline that the IDs’ data protection and privacy issues are much more vast than you imagine. We cannot discuss them here.
From what we read, SimpleX Chat is currently available for all mobile operative systems and Desktop OS (as a terminal (console) app / CLI on Linux, MacOS, and Windows).
However, installing SimpleX Chat on MacOS with M1 took us a lot of work. For those reasons, we describe how to install SimpleX Chat CLI on macOS with M1 in the next paragraph.
How to install Simplex Chat CLI on a Mac with M1
You can find the official instructions to install SimpleX Chat CLI on MacOS on their GitHub repository.
However, since I could not install SimpleX Chat CLI with those instructions, I modified some steps based on some suggestions in the issues founded on their repository2.
I succeeded in installing SimpleX Chat CLI with the steps below.
- Install Haskell GHCup, GHC 8.10.7 and cabal:
- Build the project by the following commands:
git clone git@github.com:simplex-chat/simplex-chat.git
cd simplex-chat
git checkout stable
- Verify what version of OpenSSL you have installed by running:
brew search openssl
- You should see something like the following
==> Formulae
glib-openssl openssl@1.1 ✔ openssl@3 ✔ openssl@3.0 openslp openssh opensaml opensc open-sp openfst opencsg openmsx
==> Casks
openmsx opensc opensim
- If you didn’t install OpenSSL yet or you have installed only openssl@1.1 I suggest installing openssl 3 via Homebrew as follows:
brew install openssl@3
- You should previously also check whether you have installed llvm and what version; you can proceed via Homebrew by checking as follows
brew search llvm
- You should see something like the following
==> Formulae
cargo-llvm-lines llvm@11 llvm@13 ✔ llvm@15 llvm@8 spirv-llvm-translator
llvm ✔ llvm@12 llvm@14 llvm@7 llvm@9 wllvm
- If you didn’t install llvm yet or you have installed only llvm@13, I suggest installing llvm@13 via homebrew as follows:
brew install llvm@13
- Be careful after the installation to add the PATH to the file
.zshrc
.
Open .zshrc
and control that the line was correctly added.
Rember that if you modify the file after exiting from the editor, it’s necessary to run source .zshrc
.
- Then, be sure to stay under the folder
simplex-chat
and run
cp scripts/cabal.project.local.mac cabal.project.local
- Open cabal.project.local to make some changes, and precisely be sure that in the following lines, there is
openssl@3
as follows:
extra-include-dirs: /opt/homebrew/opt/openssl@3/include
extra-lib-dirs: /opt/homebrew/opt/openssl@3/lib
- This is a workaround (waiting for the source code to be modified). Check the correct path of the file cabal.project under the folder simplex-chat, and then open the file
Controller.hs
, undersimplex-chat/src/Simplex/Chat/
. You can jump directly to the line that should be modified by running:
nano +77 Controller.hs
Modify the PATH after
B.readFile
with the correct one where is the filecabal.project
; it should be something like/Users/foo/simplex-chat/cabal.project
.In the end run:
cabal update
- and then
cabal install
If all is correct, you will have simplex-chat compiled and installed on your Mac M1, and you can use it by simply running:
simplex-chat
That’s all.
If this resource was helpful, you could contribute by
Or donate via
Follow us on Mastodon
Stay tuned!
Use the Search engine to find the articles on our Digital Notepad. ↩︎
This section is also available on our GitHub repository. ↩︎