Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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.