Your rating: None Average: 4.9 (7 votes)

TextSecure client for Sailfish OS

This is a Signal compatible client for Sailfish OS, written in Go and QML. It builds upon the great Go textsecure package and modified versions of a minimalistic gui. Some Ideas and concepts are taken from WhisperFish which is also a Signal client for Sailfish OS.

This is a project in early stage. It works for me as a daily messenger. But don't expect it to be 'feature complete'!

What works

  • Phone registration
  • Direct and group messages
  • View received Photos
  • Storing conversations
  • Notification on incoming messages (as long as App is running in background)
  • Contact syncronisation

What is missing

  • A lot of the usual UI things, like in other messaging clients
  • Most settings that are available in the Android app
  • Encrypted message store
  • Group handling (group info, create group, delete group, leave group, ...)
  • Desktop client provisioning/syncing
  • Encrypted phone calls
  • ... and so on

Known Bugs

  • You have to restart the app when you leave a wifi and automatically switch to mobile data connection. Otherwise you won't get new messages.

There are still bugs and UI/UX quirks.

You  can find this project on github:



- Notifications with acoustic and haptic feedback

- Send pictures



First release for Sailfish OS.


DameCENO's picture

Hi and good day. Trying to install this app and there is no installation file, so how do I proceed?

Markkyboy's picture

You don't, errr, you can't, there is no file to download, end of thoughts/conversation ;)

Or, you can click the link for github and compile the files yourself into an RPM, but first, you should read the comments below from the author, he is stating that people are getting blocked by using this app, so don't bother, move along ;)

DameCENO's picture

Thanks Markkyboy the info is quite definitive, any native alternative? Really need one ASAP

Markkyboy's picture

Sorry, not that I am aware of, especially as I do not use such applications, perhaps someone else in the community might have an idea.

DameCENO's picture

Thans for clearing this up for me, I appreciate it.Have gotten the android version and it worrks on Jolla Phone, might have to settle for that one for now although I am not comfortable using android messenger...

broncheoli's picture

Hi @DameCENO,

Whisperfish is arround here. It´s still alpha but it´s getting more and more useable.

pvcn's picture

Is this App stil under active development? I search for a native Sailfish app for signal and am a bit confused: was this app blocked because of it's former name or is it still blocked and discontinued?

schorsch's picture

This project is stopped. Use open alternatives like xmpp! If you want to be dependent from OWS, have a look at whisperfish.

schorsch's picture

I will stop this project - sorry.

Open Whisper Systems has started blocking users of LibreSignal. It's just a matter of time until all other alternative clients get blocked. So I will not put more effort into this project.


Instead, let's use realy open solutions in the future instead of depend on centralised services. I will investigate some time to get a knowledge what is missing on the xmpp implementation of telepathy to get a usable jabber client on sailfish os. The existing messaging app is really a mess with xmpp.

andu's picture

I found a decent alternative on Android called Wire ( which is open source and they promissed to open source the server also.

paolomi's picture

wire doesn't work on sailfish browser (unsupported browser) and wire apk doesn't work on jolla1 because it needs android 4.2 and on jolla1 there is only dalvik vm  4.1

we need a native client otherwise there is no alternative.

objectifnul's picture

For your information, Wire for Android is working fine with SailfishX v. and its associated Aliendalvik compatibility layer v1.0.63 (device: Sony Xperia X model f5121).

mottel's picture


Yes, the Android Wire App is working fine on the F5121.

But received pictures are not displayed. Any idea how to solve this bug? Which Wire App Version are you using?

objectifnul's picture

v3.2.373 (didn't check pictures)

andu's picture

You're right but I was mentioning wire as a posible port to SF not as is. At some point I saw already a wire client for ubuntu touch.

paolomi's picture

Great! thanks! :) you had to say it sooner! :) Here it is:

now let's find a developer to port it to sailfish os :)


EDIT: Now we can't port it, we need qtwebengine or oxide

babba22's picture


pvanhoof's picture

To delete messages, you can do something like this:

ssh to your phone

sqlite3 /home/nemo/.local/share/sailsecure/db/db.sql

sqlite> .schema
CREATE TABLE messages (id INTEGER PRIMARY KEY, sid integer, source text, message text, outgoing boolean, sentat integer, receivedat integer, ctype integer, attachment string, issent boolean, isread boolean, flags integer default 0);
CREATE TABLE sessions (id INTEGER PRIMARY KEY, name text, tel text, isgroup boolean, last string, timestamp integer, ctype integer, unread integer default 0);
CREATE TABLE groups (id INTEGER PRIMARY KEY, groupid TEXT, name TEXT, members TEXT, avatar BLOB, avatarid INTEGER, avatar_key BLOB, avatar_content_type TEXT, relay TEXT, active INTEGER DEFAULT 1);
sqlite> select * from messages where message LIKE '%Stuff I want deleted%'

sqlite> delete from messages where message LIKE '%Stuff I want deleted%'

Or just use delete from messages where sid=x , with x being the id of the session (~= conversations?) in the database. To remove the last message from the conversations screen, delete if from the sessions table too.

Note to the author of this application: it's weird that you store messages unencrypted in a sqlite3 database if the application you are providing is all about secure chat. Just saying.




Louis's picture

An x86_64 build for my tablet would be nice :)

m01's picture

While encrypted storage & fingerprint viewing functionality is missing from the UI, here's a clunky workaround for valdating fingerprints...

My identity:

$ xxd -l 32 /home/nemo/.local/share/sailsecure/.storage/identity/identity_key

Their identity:

$ xxd /home/nemo/.local/share/sailsecure/.storage/identity/remote_<phone nr>

Assuming I've understood the code correctly, these hex numbers should be prefixed by 05 in the Signal UI (apparently it identifies the key type).


marxistvegan's picture

There is a lot of activity with WhisperFish, will you be integrated them soon?

schorsch's picture

I currently thinking of stoping this project. I had the idea of using the Ubuntu Signal App and port it to the Jolla phone. Then Andrew jumped in and started whisperfish with the same Ubuntu base. He is doing a realy great job and implement quick a lot of features. It didn't make sense to port his code back to this project. Instead, just let us wait for whisperfish to hit Jolla Harbour or openrepos. I will go on with some other projects...

jdrescher's picture

When I look at the github repo of whisperfish, there is no activity since at least three month.
Is the project abandoned or dead now?
If so, it would be nice if you continue with SailSecure.

objectifnul's picture

Here (SFOS Saimaa), contacts don't show up (except myself twice). No option to add or import contacts.

schorsch's picture

Got some similar feedback from other users. The App should try to 'correct' any phone number in your contacts. Sometimes, this seems to fail. Try to clean out all numbers in your address book of contacts which has a signal account. Number should be in E.164 format.

e.g. +4917612345678

Without any whitspaces

lkdhf's picture

You can apply for hosting translation efforts on Weblate:

nodevel's picture

Thanks for the app!

Just one question: Does it upload all your contacts to Signal servers? If so, could this be optional? I was quite (unpleasantly) surprised to go to Contacts in the app and see some of my contacts from the phone there. It could at least ask the user to do so, as it's quite unfair to the people whose info has been uploaded.

schorsch's picture


The Link from lkdhf describes the behavior with the contacts very well. SailSecure currently uses the same approach. Contacts (or hashes) from your phone are being send to the whispersystem server. The server replays with a contact list, who's number is also registered as an signal client.

Of course, privacy would be improved if only selected contacts are send to the server. Please open a feature request on the github page of the project.

nodevel's picture

Thanks for the link, but I don't think it is that relevant to my question, as it relates to the official client only.

It would be a great privacy advantage over the official client if we could opt out of this data sharing. Instead, the app could have its internal contact db and only optionally import (or sync) device contacts. That way those who value privacy (which the target userbase of Signal should be) could be sending only the contacts they intend to chat with.