this is the main cwtch gui with the pretty interface
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
Dan Ballard ec60073ce2 update README with git submodule instructions 1 vecka sedan
android Android Back button like home button (#212) 8 månader sedan
assets Global Toolbar 3 veckor sedan
go support for translations in opaque 1 vecka sedan
i18n update translations 1 vecka sedan
linux install Desktop file for linux 8 månader sedan
qml change Widgets to Opaque in qml imports 1 vecka sedan
windows windows log to file 9 månader sedan
.drone.yml Fix assets loading in QML on windows 4 månader sedan
.gitignore migrate to stand alone log and connectivity packages 3 månader sedan
.gitmodules move widgets into the Opaque submodule project 1 vecka sedan
LICENSE Add 'LICENSE' 1 år sedan
Makefile assets folder + emoji drawer 4 månader sedan update README with git submodule instructions 1 vecka sedan get therecipe-qt-docker-imgs sh 2 månader sedan
go.mod do random things with go.mod 1 vecka sedan
go.sum adding bottom status bar for global network status 2 veckor sedan
main.go support for translations in opaque 1 vecka sedan
qml.qrc adding back components that shouldnt have been moved to opaque 1 vecka sedan move qmlfmt to serpeate standalone openprivacy repo 1 vecka sedan assets folder + emoji drawer 4 månader sedan

Cwtch - UI

This codebase provides a graphical user interface for Desktop and Android for Cwtch: Privacy Preserving Infrastructure for Asynchronous, Decentralized and Metadata Resistant Applications


Cwtch is an experimental concept and prototype. We do not recommend you use Cwtch today if you require secure communication. At least, not yet.

If you discover a security issue, please log an issue above, or email



The UI is built using QT so you will need the development libraries and tools for your OS. Currently we are using QT 5.13.0

This code relies on therecipe/qt before getting started consult the Installation and Getting Started documentation to get that up and running. It will make building this much easier.

Cwtch UI uses the Go module system for dependancies, and git submodules for includin QML components

git submodule init
git submodule update


go mod vendor
qtdeploy build linux
./deploy/linux/ui -local -debug 2>&1 | grep -v 'Detected anchors on an item that is managed by a layout.'

The -debug flag increases the logging level.

The -local flag means the binary should use the local copies of QML files instead of the compiled ones allowing for more rapid UI development.

The grep statement filters out some QML noise.


We supply an arm-pie version of tor in android/libs/armeabi-v7a with the name

go mod vendor
qtdeploy -docker build android
adb install deploy/android/build-debug.apk


  • Download and install QT Open Source edition
  • Go to My Computer - Right Click on This PC - Advanced System Settings - Environment Variables
    • New - QT_DIR = C:\Qt (or wherever you have it installed)
    • New - QT_VERSION = 5.12.1 (because I picked 5.12.1)
    • Edit the Path Variable and Add C:\Qt\Tools\mingw530_32\bin
  • Install MSYS2 (Bash shell for windows)
  • Install Go and make sure it's in the PATH, and add your GOPATH/bin to the PATH
  • Setup therecipe/qt (instructions
    • go get -u -v
    • qtsetup (Can take around an hour?)

If all that is done, then check out

go mod vendor

Currently if you do not have Tor running Cwtch will start tor for you, which will open a dos console window. We are working to hide this in the future.



(If you'd like to add a new translation, feel free to open an issue and we can generate the .ts file for you to edit by hand, or in QT Linguist!)

Add new translation

  1. Install the language tools if you have not already (on linux: sudo apt-get install qttools5-dev qttools-dev-tools)

  2. Edit and add a new line in the variable definition for TRANSLATIONS like:

    TRANSLATIONS = i18n/translation_en.ts

  3. Edit qml.qrc and add a new line near the other translation files like:


  4. To update and generate your new translation file, run lupdate and you will find your new file in the i18n/ directory.

Updating translations

Run lupdate to update all the translation files in the i18n/ directory, then edit your languages’ .ts file to make the appropriate changes. It is recommended to use QT Linguist (linguist) to edit the files.

When done, run lrelease to compile all the translations from their .ts files into .qm files for use in the program. Then you can compile the ui program.