ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.
Objective-C Swift Other
Latest commit 8b69f22 Jun 23, 2017 @chrisballinger chrisballinger Fix test
Failed to load latest commit information.
ChatSecure.xcodeproj Fixing Xcode 9 warnings Jun 23, 2017
ChatSecure.xcworkspace Use new Xcode 9 build system Jun 22, 2017
ChatSecure Version 4.1.0 (89) Jun 23, 2017
ChatSecureCore Merge remote-tracking branch 'origin/master' into xep-0363 Jun 14, 2017
ChatSecureTests Fixes for Tor Jun 12, 2017
ChatSecureUITests Convert to swift 3 Feb 18, 2017
OTRAssets Add donation nag dialog Jun 21, 2017
OTRResources Add donation nag dialog Jun 21, 2017
Podspecs Merge omemo and clean up msg-queue Oct 28, 2016
Submodules Fix test Jun 23, 2017
media animate in progress Feb 18, 2015
snapshot Convert to swift 3 Feb 18, 2017
.gitattributes Bump to v2.2.1 and update translations Feb 21, 2014
.gitignore Use Carthage for SignalProtocol dependencies Apr 3, 2017
.gitmodules Move compatible dependencies to Carthage Jun 21, 2017
.travis.yml Move compatible dependencies to Carthage Jun 21, 2017 3.1 alpha 1 Mar 26, 2015 Fix links to CLA Nov 17, 2013
COPYING Change license to GPLv3+ Aug 14, 2012
Cartfile Add Kvitto.framework for IAP receipt validation Jun 22, 2017
Cartfile.resolved Add Kvitto.framework for IAP receipt validation Jun 22, 2017
Gemfile Use aesgcm url scheme for OMEMO sessions Apr 13, 2017
Gemfile.lock Use aesgcm url scheme for OMEMO sessions Apr 13, 2017
LICENSE Change license to GPLv3+ Aug 14, 2012
Podfile Fix submodule path Jun 21, 2017
Podfile.lock Fix CocoaPods warning Jun 21, 2017 Move compatible dependencies to Carthage Jun 21, 2017


Build Status

ChatSecure is a free and open source XMPP messaging client for iOS that integrates OTR and OMEMO encrypted messaging support, and has optional integrated support for connectivity via the Tor network.

download chatsecure on the app store


Redistributing ChatSecure Code on the App Store

Even though this project is open source, this does not mean you can reuse this code when distributing closed source commercial products. Please contact us to discuss licensing options before you start building your product.

If you are an open source project, please contact us to arrange for an App Store redistribution exception. For more information about why this is required, please read this blog post from Open Whisper Systems.

Cost for End Users

Downloading the ChatSecure app is 100% free because it is important that all people around the world have unrestricted access to privacy tools. However, developing and supporting this project is hard work and costs real money. Please help support the development of this project! We now also accept Bitcoin via Coinbase!

bitcoin coinbase donation paypal donation


transifex localization

If you would like to contribute/improve a translation:

  1. Visit our Transifex project page and make an account if you don't have one already.
  2. Go to the resources subsites AppStore.strings & Localizable.strings to add a new language or improve an existing translation.
  3. Open an issue on Github notifying us of your translation.


There's a more full list of OTR clients on Wikipedia. A smaller list of clients support the mobile-friendly OMEMO Encryption.



Build Instructions

You'll need CocoaPods and Carthage installed for most of our dependencies. Due to some issues with CocoaPods and Xcode 8, we need to use the pre-release version, which we'll install with bundler and our Gemfile.

$ brew install carthage
$ ### gem install cocoapods # Until CocoaPods is fixed use the bundle command below instead.
$ bundle install

Download the source code and don't forget to pull down all of the submodules as well.

$ git clone
$ cd ChatSecure-iOS/
$ git submodule update --init --recursive

Now you'll need to build the dependencies.

$ carthage bootstrap --platform ios # or carthage update --platform ios
$ bash ./Submodules/CPAProxy/scripts/
$ bash ./Submodules/OTRKit/scripts/
$ ### pod install # Until CocoaPods is fixed use the bundle commands below instead.
$ bundle exec pod repo update
$ bundle exec pod install

Next you'll need to create your own version of environment-specific data. Make a copy of Secrets-template.plist as Secrets.plist:

$ cp OTRResources/Secrets-template.plist OTRResources/Secrets.plist

You'll need to manually change the Team ID under Project -> Targets -> ChatSecure -> Signing. The old .xcconfig method doesn't seem to work well anymore.

Open ChatSecure.xcworkspace in Xcode and build.

Note: Don't open the .xcodeproj because we use Cocoapods now!

If you're still having trouble compiling check out the Travis-CI build status and .travis.yml file.


Thank you for your interest in contributing to ChatSecure! To avoid potential legal headaches and to allow distribution on Apple's App Store please sign our CLA (Contributors License Agreement). For contributing translations, please check out our Transifex page.

  1. Sign the CLA (odt, pdf) and email it to
  2. Fork the project and (preferably) work in a feature branch.
  3. Open a pull request on GitHub.
  4. Thank you!


Software License Agreement (GPLv3+)

Copyright (c) 2015, Chris Ballinger. All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <>.

If you would like to relicense this code to distribute it on the App Store, please contact me at

Third-party Libraries

This software additionally references or incorporates the following sources of intellectual property, the license terms for which are set forth in the sources themselves:

The following dependencies are bundled with the ChatSecure, but are under terms of a separate license:

For a more complete list, check the Podfile.


Thank you to everyone who helped this project become a reality! This project is also supported by the fine folks from The Guardian Project, OpenITP, and the Open Technology Fund.