coyim - a safe and secure chat client
Go Shell Other
Permalink
Failed to load latest commit information.
Godeps Update gotk3 to remove a piece of code that cases segfaults on some p… Jan 18, 2017
build Vendor should have only vendored packages Oct 31, 2016
ci Make the build info file get into the right directory Nov 4, 2016
cli Make log output in CLI work correctly Jan 16, 2017
client Fix #392 - Give a notification when we verify the fingerprint of a peer Nov 8, 2016
config Fix #274 - Make it possible to sort by status instead of name Dec 23, 2016
digests Fix #369 - Upgrade CoyIM to use Golang 1.6 Vendor experiment Oct 27, 2016
event Fix #369 - Upgrade CoyIM to use Golang 1.6 Vendor experiment Oct 27, 2016
gui Reverse logic of activation of "Connection info" button Jan 16, 2017
i18n Add #413 by making sure the i18n subsystem is initialized for CLI Jan 15, 2017
net Fix #369 - Upgrade CoyIM to use Golang 1.6 Vendor experiment Oct 27, 2016
reproducible/docker Add a script for mailing signed build info files Nov 6, 2016
roster Fix #274 - Make it possible to sort by status instead of name Dec 23, 2016
sasl Fix #369 - Upgrade CoyIM to use Golang 1.6 Vendor experiment Oct 27, 2016
servers Fix #369 - Upgrade CoyIM to use Golang 1.6 Vendor experiment Oct 27, 2016
session Cache entered password such that on reconnects you won't have to ente… Dec 21, 2016
tls Fix lint and a small makefile issue Mar 24, 2016
ui Fix all lint errors Nov 8, 2016
vendor Update gotk3 to remove a piece of code that cases segfaults on some p… Jan 18, 2017
xmpp A whitespace is more than a SP character. Nov 22, 2016
.appveyor.yml follow ola's godeps change Mar 7, 2016
.gitignore Fixes rules on zanata.xml Feb 16, 2016
.travis.yml Ask for docker services Nov 3, 2016
CONTRIBUTING.md Touch ups on some of the markdown files Jan 12, 2017
DOWNLOADING.md Add download instructions Dec 10, 2015
LICENSE Add license Jan 27, 2016
LICENSE.xmpp-client Add a copy of original xmpp-client Sep 16, 2015
Makefile Ensure that gpg keyid finding works correctly, by forcing the expecte… Jan 13, 2017
README.md Remove logo from readme Jan 12, 2017
RELEASE.md Touch ups on some of the markdown files Jan 12, 2017
REPRODUCIBILITY.md Touch ups on some of the markdown files Jan 12, 2017
authors.rb Fix #237 - automatically generate author list Nov 8, 2016
check_build_info_signatures.rb Add a script to make it possible to verify signatures for a specific … Nov 6, 2016
cli.go Add #413 by making sure the i18n subsystem is initialized for CLI Jan 15, 2017
coyim.apparmor First stab at an apparmor for CoyIM. Mar 22, 2016
force Add force file Sep 23, 2016
gen_icon.rb Add icon for question mark Oct 25, 2016
gen_version_file.sh Actually set version even if we're not on a specific tagged version Apr 16, 2016
gtk.go Fix #369 - Upgrade CoyIM to use Golang 1.6 Vendor experiment Oct 27, 2016
install_coyim_tails.sh Add back gotk3 as a dependency to install Mar 1, 2016
mail_build_info.sh Add a script for mailing signed build info files Nov 6, 2016
main.go Refactor Aug 2, 2016
main_test.go Fix #369 - Upgrade CoyIM to use Golang 1.6 Vendor experiment Oct 27, 2016
push_build_info.sh Slight tweaks Nov 6, 2016
sign_build_info_with_key.sh Fix a few small issues with rep-builds for linux Nov 5, 2016
supported_xeps Add list of supported XEPs, fixes #355 Aug 24, 2016
zanata.xml Fixes rules on zanata.xml Feb 16, 2016

README.md

CoyIM - a safe and secure chat client

Build Status Build status Coverage Status Download

CoyIM is a new client for the XMPP protocol. It is built upon https://github.com/agl/xmpp-client and https://github.com/twstrike/otr3. It adds a graphical user interface and tries to be safe and secure by default. Our ambition is that it should be possible for even the most high-risk people on the planet to safely use CoyIM, without having to make any configuration changes.

To do this, we enable OTR by default, we default to use Tor and we will use the Tor Onion Service for a server if we know it, and also to use TLS and TLS certificates to verify the connection - no configuration necessary. The implementation is written in the Go language, to avoid many common types of vulnerabilities that come from using unsafe languages.

Security warning

CoyIM is currently under active development. There have been no security audits of the code, and you should currently not use this for anything sensitive.

Getting started

Using CoyIM is very simple: you just need to download the executable file from the project's home page and then run it.

When you first launch CoyIM, a wizard will appear. If you already have a Jabber client installed and configured for OTR encryption in your computer, you can use this wizard to import your account settings as well as your OTR keys and your contacts' fingerprints. By importing them, you won't have to do anything else to use CoyIM just as you used your former client.

If you don't import your account settings, keys and fingerprints through the wizard that opens at the first launch, you can still import them by going to Accounts -> Import at a later stage.

If the client you have been using so far is Pidgin, you will find the files you need to import in the .purple directory in your home.

If you want to know more about the features you will and will not find in CoyIM, read this page.

Building CoyIM

GUI version

Please note: Important requirements for building CoyIM are also git and golang (at least version 1.4).

The GUI version requires GTK+ >= 3.6.16, which installation depends on your OS:

Ubuntu:

sudo apt-get install gtk+3.0 libgtk-3-dev

MacOS:

brew install gtk+3

Then install CoyIM:

export GTK_VERSION=$(pkg-config --modversion gtk+-3.0 | tr . _ | cut -d '_' -f 1-2)
go get -u -tags "gtk_${GTK_VERSION}" github.com/twstrike/coyim

CLI version (xmpp-client)

go get -u -tags cli github.com/twstrike/coyim

Contributing to CoyIM

We have instructions to help you get started contributing to CoyIM.

Reproducibility

CoyIM supports reproducible builds for Linux on AMD64. See REPRODUCIBILITY for instructions on how to build or verify these builds.