Secure Peer to Peer Instant Messenger, using the Tor network for anonymity and best practice cryptorafic measures to provide privacy and authenticity.
Screenshots
To make a Secure and Private Communication Platform for Good People.
This application does not collect data about you, and it does not serve ads. It's very purpose is to prevent greedy and hostile entities to dig into your conversations and social network for manipulation, profit & greed.
All communication is encrypted using Public Key Cryptography (PKS) at the endpoints. Not even the Tor proxy-servers sees the content of any message or even the signaling. There are no central servers and no company-run services. That mean's that there are no-one to subpoena to get even the metadata regarding any conversation. The only traces left of any communications are the TCP connections in the Tor network.
Each peer run it's own Tor Hidden Service. This means that DarkSpeak will work as long as Tor works at any given time and place in the world. If a government feels threatened by Free Speech (and it seems like most of them do), there is still no way they can shut you down. There are no domain-names to block or take over and no IP addresses to block. If Tor works, you are free to talk with whoever you want.
The protocol used by DarkSpeak does not depend on Tor. It is designed so that it can be used by alternative networks in the future, or even directly over TCP (if no anonymity is required). At the moment however, only Tor is used.
DarkSpeak uses a system Tor process by default. It connects to Tor's local
control port at 127.0.0.1:9051 and uses the SOCKS proxy at
127.0.0.1:9050. Installing Tor alone does not enable the control port.
Install and start Tor:
sudo apt update
sudo apt install tor
sudo systemctl enable --now torEdit /etc/tor/torrc and enable cookie-authenticated control access:
ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1Restart Tor and allow the current user to read the control cookie:
sudo adduser "$USER" debian-tor
sudo systemctl restart torLog out and back in (or run newgrp debian-tor) so the new group membership
takes effect. Do not enable an unauthenticated control port.
Verify that Tor is listening before starting DarkSpeak:
ss -ltn | grep -E ':(9050|9051)\b'DarkSpeak should subsequently report CONNECTED and ONLINE in its log. If
the control port is configured differently, change the Tor settings in the
application accordingly. See the detailed Tor configuration notes
for more information.
Use a separate profile directory when running multiple DarkSpeak instances on the same machine. Each profile gets its own settings, database, data, and download directory:
darkspeak --profile "$HOME/.local/share/darkspeak-test-1"
darkspeak --profile "$HOME/.local/share/darkspeak-test-2"The command-line logging options are:
--log-file <path>
--log-level <trace|debug|info|warn|error>
This project began in April 2016, when I wanted to chat with my friends without Facebook, Google, NSA or anyone else overseeing our conversations. The idea that private conversations are no longer possible, and that we just have to accept that, provokes me. So I used the, now dead, "Tor Chat" project as a starting-point for a protocol, and wrote my own client in C++, using QT and QML for GUI.
However, because the legacy Tor Chat client was bundling an obsolete Tor server, my program was unable to maintain reliable connections with actual "Tor Chat" users. So at some point I decided to learn from my experience with the original implementation and write a new one from scratch.
The original implementation is still available.
One thing that has always been important to me is privacy. It was a core value handed down to me by my father. In today’s society, there are very few opportunities to have private conversations using any kind of technology. All telecom protocols and most messaging providers are required by law (or pressured by governments) to give authorities full access to listen in on any conversations they care about.
Even for peer-to-peer encrypted apps, they still require access to metadata, like who is communicating with whom, and when. There are many problems with this, ranging from the philosophical “Why is the government terrified of its citizens having private conversations?”, to the technical, where hackers gain access to these tap points to eavesdrop and extract data.
One known example is the so-called “Salt Typhoon” campaign, first detected in mid-2024, in which Chinese state-linked hackers apparently targeted the very network elements U.S. and allied governments use to conduct lawful intercepts (the “backdoors” mandated for wiretapping) across multiple telecom operators.
There is also a constant push from Democracies In Name Only, like the UK, various EU countries, and the US, to install similar tap points in all online encrypted peer-to-peer communication. Similar efforts, often using "protecting the children" as an excuse, aim to mandate identifiable online identities across all kinds of social media. (We just have to look at Gaza, and the poverty in their own streets, to see how much those governments really care about children.)
Privacy and free speech, including anonymous free speech, is an absolute requirement for a functioning democracy.
In 2020, I thought hard about this project. I was working intensely for a startup and had less time than I usually do for side projects. I was also fearful of being targeted by Europol (a police force that already has far too much power), or by some intelligence agency, simply for making an app that makes strong privacy even possible. We all know how easy it is for governments to make anyone’s life far from joyful.
July 2026: Resumed working on the project.

