Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Java Other
Failed to load latest commit information.
.settings The big reformat!
.tx The locale folder "id" should be called "in" instead
META-INF full update
assets remove default emoji (will offer as plugin)
doc Reorg data request/response, keep track of requests
external peg to 14.1 commit tag
gitian Update
libs switch to IOCipher v0.3
otr-sample Update .classpath
res remove ugly background
robo-tests Update
src update notificaiton with proper intent
tests test whether pinned domains are working properly with the pins
.classpath Eclipse ADT insists on reordering elements in these .classpath files
.gitignore port basic tests from robo-tests/ to an Android Test Project
.gitmodules purge IOCipher submodule, the v0.2 release jar is used
.project the project has been renamed
AndroidManifest.xml make versionName match the signed release git tag
LICENSE Edited LICENSE via GitHub update README
XMPPClient.iml full update
XMPPClient.ipr full update
XMPPClient.iws full update
add-proguard-release.xml updates to project files
build.xml change build name to ChatSecure
custom_rules.xml do not include BUILD.MF in debug APK, it breaks signature verification
fix-ellipsis fix TypographyEllipsis lint warning: Android wants … not ...
fix-xliff-tags fix embedded <xliff:g> tags, transifex is messing them on download
make-release-build make-release-build: include 'v' in release APK name, following conven…
pom.xml Adjust pom.xml version of asmack to the one actually included in the update to target android-21 to support Material
update-ant-build.bat updating windows bat add target

ChatSecure for Android (previously known as Gibberbot) is a secure messaging app built on open standards like XMPP/Jabber and OTR encryption:

It includes OTR4J:

and BouncyCastle for Java:

and SQLCipher for Android:

Original wallpaper generated using Tapet app and Gimp:

and previously included some CC0 public domain beautiful images: Ry Van

Bug reports

Please report any and all bugs or problems that you find. This is essential for us to be able to improve this software!

Build Instructions

First make sure you have the Android SDK and Eclipse installed. Follow instructions here:

Please help us keep this process easy by letting us know if you have problems. If you have any questions, don't be afraid to email us at or jump into our IRC chatrooms for real-time help at #guardianproject on freenode or OFTC (

Get the source

The source code is all in the main git repos, with sub-projects setup as git submodules:

git clone
cd ChatSecureAndroid
git submodule update --init

ant setup

We use ant to make our official releases and automated test builds. If you are not familiar with Eclipse, then it is easier to start with the ant build:

export ANDROID_HOME=/path/to/android-sdk
ant clean debug

Then the installable APK will be in bin/ChatSecure-debug.apk.

Eclipse setup

  1. Start by adding ChatSecureAndroid to Eclipse by going to File -> New -> Project... -> Android project from existing code.

  2. Open the ChatSecureAndroid folder that was just cloned from git.

  3. Eclipse will next show a list of subprojects to import, all of the libraries with New Project Name of library must be renamed after the project name, i.e. SlidingMenu, AndroidEmojiInput, ViewPagerIndicator.

  4. Click Deselect All. The sample and example projects are not needed, and can cause conflicts.

  5. Select ChatSecure again by clicking the top item in the list.

  6. Outside of Eclipse, open up the text file Then back in Eclipse, for each line that starts with android.library.reference, select that path from the list of included sub-projects in Eclipse.

Now you should be ready to build ChatSecure!

Test Instructions

mvn test

See robo-tests/ for eclipse instructions.

Currently the instrumented target tests (to be run on a device) in the directory tests are empty.


adb shell setprop log.tag.GB.XmppConnection DEBUG

Building for a Locale

ant -Dgibberbot.locale=fa release

Something went wrong with that request. Please try again.