Skip to content
Off-the-Record messaging library for Java
Branch: master
Clone or download
Pull request Compare This branch is 151 commits ahead, 3 commits behind redsolution:master.
gpolitis Merge pull request #30 from tribut/apache-cla
Re-license code according to CLA and update link to CLA
Latest commit 72a2051 Jun 2, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Adds protocol specs. Feb 5, 2014
src Change license to Apache according to Atlassian CLA Jun 1, 2016
.gitignore Ignore *.iml files. Jun 18, 2015
LICENSE Update LICENSE Jun 18, 2015
THANKS.markdown Fixes typo. Jun 18, 2015
TODO.txt Updates JavaDoc in preparation for Maven central release. Feb 22, 2015
pom.xml introduce selected (more thorough) PMD rules Feb 15, 2016



otr4j is an implementation of the OTR (Off The Record) protocol in java. Its development started during the GSoC '09 where the goal was to add support for OTR in jitsi. It currently supports OTRv1, OTRv2 and OTRv3. Additionally, there is support for fragmenting outgoing messages.

For a quick introduction on how to use the library have a look at the DummyClient.


If you use maven for managing your project lifecycle and you want to use otr4j in your project, just add the following dependency to your the pom.xml:

IMPORTANT otr4j has moved to Maven Central! I will be making releases to the old repository for the foreseeable future, but it is highly recommended to update your settings!



Want to hack on otr4j? Awesome! Here are the guidelines we'd like you to follow:

  • All contributors submit code via pull requests. NOTE that before we can accept any patches from you, we need you to sign our contributor agreement available here.
  • New commits must be pushed by the reviewer of the pull request, not the author.
  • Any developer can request push access and become a committer, regardless of project or organization affiliation.
  • We choose committers primarily on the Hippocratic Principle. You can find out more about the exact procedure here.
You can’t perform that action at this time.