Torsion is an experiment with a different kind of instant messaging that doesn't trust anyone with your identity, your contact list, or your communications.
- You can chat without exposing your identity (or IP address) to anyone
- Nobody can discover who your contacts are or when you talk (metadata-free!)
- There are no servers to compromise or operators to intimidate for your information
- It's cross-platform and easy for non-technical users
Torsion is a peer-to-peer instant messaging system based on Tor hidden services. Your login is your hidden service address, and contacts connect to you (not an intermediate server) through Tor. The rendezvous system makes it extremely hard for anyone to learn your identity from your address.
Torsion is not affiliated with or endorsed by The Tor Project.
This software is an experiment. It hasn't been audited or formally reviewed by anyone. Security and anonymity are difficult topics, and you should carefully evaluate your risks and exposure with any software. Do not rely on Torsion for your safety unless you have more trust in my work than it deserves. That said, I believe it does more to try to protect your privacy than any similar software.
- Qt 5.1 or later (see Linux notes below)
- A pre-built Tor binary and its dependencies
tor.exe in your build directory or PATH. To build packages, see the scripts under the
Users of Ubuntu 14.04 or earlier and other slow distributions will need to use the Qt SDK or build their own Qt.
make. The default build portable, which will store configuration in a folder named
config next to the binary. For a system installation using XDG configuration directories, run
qmake DEFINES+=TORSION_NO_PORTABLE instead.
Use the Qt SDK or homebrew. Run
make to build an application bundle. The default build will store configuration in a
config.torsion folder next to the application unless the path looks like a system-wide Applications folder, in which case
~/Library/Application Support/Torsion is used.
Builds with MinGW or MSVC. You will need the Qt SDK and a copy of OpenSSL headers and libraries.
You must pass
OPENSSLDIR="C:\Path\To\OpenSSL\Build" to qmake. If using Qt Creator, add it to Additional arguments in the Projects/Build Settings tab. The default build is portable and stores configuration in a
config folder next to the binary. Pass
DEFINES+=TORSION_NO_PORTABLE to qmake to use the user appdata location instead.
Bugs can be reported on the issue tracker.
You can contact me directly at
firstname.lastname@example.org (PGP 183C045D).