Skip to content
This repository

Anonymous peer-to-peer instant messaging

branch: master

Fix visible HTML entities in chat messages (#36)

For lines of text that don't contain any link, but do contain a HTML
sensitive characters like ", those characters will still be replaced by
their entity values (e.g. "). TextEdit.AutoText does not consider
those to indicate rich text, so they will be displayed verbatim.

Since we always escape HTML characters, we should always parse the
output as HTML, and entities will be correctly decoded.
latest commit 2ea84bb070
John Brooks authored
Octocat-spinner-32 doc Use port 9878 February 15, 2014
Octocat-spinner-32 packaging Add script for building Linux static releases April 13, 2014
Octocat-spinner-32 src Fix visible HTML entities in chat messages (#36) April 13, 2014
Octocat-spinner-32 translation Tweak translation handling in Windows installer April 13, 2014
Octocat-spinner-32 .gitattributes Added .gitattributes for export September 11, 2010
Octocat-spinner-32 .gitignore Generate and use translation files March 27, 2014
Octocat-spinner-32 LICENSE Add a quick about page in preferences February 11, 2014
Octocat-spinner-32 Mention Transifex in README March 27, 2014
Octocat-spinner-32 Release version 1.0.1 April 13, 2014

Anonymous and serverless instant messaging that just works

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

How it works

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.

For more information, you can read about Tor and learn about Torsion's design or protocol. Everything is open-source and open to contribution.


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.

Downloading & Building

Build requirements

  • Qt 5.1 or later (see Linux notes below)
  • OpenSSL
  • A pre-built Tor binary and its dependencies

Place tor or tor.exe in your build directory or PATH. To build packages, see the scripts under the packaging directory.


Users of Ubuntu 14.04 or earlier and other slow distributions will need to use the Qt SDK or build their own Qt.

Run qmake or qmake-qt5, then 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 qmake and 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. Translations can be contributed on Transifex.

You can contact me with torsion:rs7ce36jsj24ogfw or (PGP 183C045D).

You should support The Tor Project, The Internet Defense League, EFF, and run a Tor relay.

Something went wrong with that request. Please try again.