How to keep using Signal Desktop without a phone, with a command line tool

Since recently, Signal warns its Desktop users that their account will deactivate if they don’t turn on their phone again. Supposedly, it’s for “security reasons”. Here is how you can overcome this discriminatory behavior.

Living without a phone is hard enough already. Signal makes it harder, without good reason. If you’ve seen the “Open Signal on your phone to keep your account active” warning before, you know what I mean. So hopefully this guide helps you keeping your Signal Desktop client active, even when Signal complains about your phone being offline for too long.

We will use the signal-cli tool for this, which is an Open Source 3rd-party-tool that will pretend to be the Signal Android app. You will not have to use it in daily life, only run it every once in a while when the Signal Desktop client complains.

Unfortunately, you still need a sim card and a phone which can receive SMS for this guide to work; but at least you can get rid of them afterwards (it can’t hurt to keep the sim card around though). Alternatively, you can also use a landline phone.

Unfortunately, you will lose any Android chat history if you still had one – but you will retain the chat history you already had on the Desktop client, at least if you keep using the same phone number.

Before you follow this guide, read it completely and closely to make sure you meet all the prerequisites. Use at your own risk.

Install the necessary programs

We tested this guide on Xubuntu 24.04 and Windows 10.

You need to have Signal-Desktop installed, this is the tool which you will use to chat with your friends.

You also need to download signal-cli from github.com/AsamK/signal-cli/releases/latest, one of the files which ends in .tar.gz (if you use Linux, download the one with Linux-native in the file name). Unpack it, the signal-cli command line tool will be in the bin/ directory in the unpacked directory structure.

For signal-cli to work, you need to install Java Runtime Environment 21:

Initialize signal-cli

To run signal-cli, open a terminal, and use the cd command to go to the directory where you have unpacked it, for example cd Downloads/signal-cli*/bin. Then you can run ./signal-cli --help to show the available commands. (If you are on Windows, you need to use \ instead of /, and the path might be different).

Now we can initialize signal-cli for your phone number as a first step. This first command will seem to have no effect, but don’t worry. If a command line tool doesn’t output anything, that usually means “it worked”. Type ./signal-cli -u +49174581312 register (but with your actual phone number) and press enter.

Solve the captcha

Now you need to solve a captcha to prove to Signal that you are a human instead of a spam-bot. Go to https://signalcaptchas.org/registration/generate.html and solve the captcha.

After that, the browser will ask you whether you want to open the link in the Signal Desktop Client. This is not what we want. Instead of accepting, click “cancel”. Then, on the web page with the solved captcha, right-click on “Open Signal” and select “Copy Link” to get the Link address, and copy-paste it to signal-cli in the command line:

./signal-cli -u +49174581312 register --captcha signalcaptcha://signal-hcaptcha.5fad97<a very long text string which represents the solved captcha>dqFFlSUoRh4

(Be sure to include --captcha or it will not work.)

Add the SMS confirmation code

A few seconds after you executed signal-cli with the captcha code, you should receive a confirmation SMS or phone call with the six-digit confirmation code. Write it down and use it with signal-cli:

signal-cli -u +49174581312 verify SMS-CODE --pin SIGNAL-PIN

For this command, you can also enter a Signal PIN. You only have one if you have used the phone number with Signal before. You need it, if you want to keep your old contacts and group memberships. But on the Desktop client, you will still only see them once they write to you, so don’t be surprised if they don’t appear at once.

Now the account is registered to signal-cli with your phone number.

Connect your Signal Desktop client to signal-cli

If you have used the Signal Desktop client with the same phone number already, it will now be disconnected from your account. Expect it to look like this:

We need to link it to signal-cli, so you can continue using it. Click on the yellow warning, a QR code will appear. Normally, we would scan it with Signal Android, but signal-cli can’t scan QR codes. What do we do about it?

QR codes are just the visual representation of a link; we need to translate the picture to text again, then we can copy-paste the text to the command line. For this, make a screenshot or take a photo. Then upload the image to https://scanqr.org – on the right, a code like this one will appear:

sgnl://linkdevice?uuid=0gng0dajw9_2JdDWAH-14ccpg%3D%3D&pub_key=BffueqAYDWAH9m8dwauwb8e2AB%2Fh3FY1z4VMuHxwxv&capabilities=

Copy-paste it into the following signal-cli command (don’t forget to add the double quotes around the link):

signal-cli -u +49174581312 addDevice --uri "sgnl://linkdevice?uuid=0gng0dajw9_2JdDWAH-14ccpg%3D%3D&pub_key=BffueqAYDWAH9m8dwauwb8e2AB%2Fh3FY1z4VMuHxwxv&capabilities="

After you pressed enter to run the command, the Signal Desktop client will load. This can take a few minutes. After that, you are logged in, and can continue to use the Signal Desktop client without problems.

Avoid the problem in the future

To keep Signal Desktop from complaining, you need to run signal-cli receive every once in a while. On Linux, I am doing this with a cron job:

@daily /home/user/downloads/signal-cli-0.13.14/bin/signal-cli receive

You can ignore the output, it is just downloading new messages to signal-cli; but you will also see them in Signal Desktop anyway.

Move signal-cli to a new laptop

You might get a new device at some point. For restoring your Signal account on your new device, you now need a backup of both your Signal Desktop client’s and signal-cli’s databases. It depends on your operating system where they are stored exactly.

How to do this with Signal Desktop is documented in this guide.

And you can read in signal-cli’s documentation where signal-cli stores the data.

Conclusion

Signal really makes it not only unnecessarily complicated to use it without a phone, but also to keep your message history and contacts. Imagine Trump shuts down Signal – how many of your friendships will die because that’s your only contact? What important data will be lost once you lose your devices? This severe lock-in effect should be reason enough to find alternatives, even if Signal has other advantages.

Die Wasser-Wald-Tage in Grünheide

Ich habe die Wasserbesetzung in Grünheide besucht und ein Konzert dort gegeben… eine gute Gelegenheit, mich mit meinem Verhältnis zur Natur auseinanderzusetzen.

Ich verlasse die Wasser-Wald-Besetzung auf einem kleinen Trampelpfad, wo die Natur noch nicht ganz aufgegeben hat unter den Stiefeln der Menschen. Ich muss mir meinen Weg suchen, ganz eindeutig ist der Pfad hier nicht. Totholz rottet auf dem Boden vor sich hin, ich rieche an den Bakterien (oder Schimmelpilzen?) – gar nicht so schlimm. Farne verdecken den Pfad, den Boden, einige Pilze die sich unter ihrem Schatten hervorrecken.

Continue reading “Die Wasser-Wald-Tage in Grünheide”

6 Ways to Talk About a Relationship Without Labeling It

What role do our loved ones play in our life? Who is important to us and why?

If you are like me, you don’t like labels very much. I do like people. But they tend to show too much variety to fit into rigid labels. The relationships we have are too complex to describe them with words like “friend”, “spouse”, “fuckbuddy”, “comrade”, or “coworker”.

Continue reading “6 Ways to Talk About a Relationship Without Labeling It”

Besitzt du ein Smartphone oder besitzt dein Smartphone dich?

Beim letzten Chaos Communication Congress hatten wir eine Austauschrunde darüber, was uns an Handys/Smartphones stört.

Zu den verschiedenen glücklichen Umständen in meinem Leben zählt, dass es auch ohne Handy funktioniert. Vor knapp anderthalb Jahren ist mein letztes Handy kaputt gegangen. Seitdem habe ich mir einfach kein neues mehr besorgt. Vor allem, weil ich wissen wollte, ob es geht.

Continue reading “Besitzt du ein Smartphone oder besitzt dein Smartphone dich?”

How to Setup Delta Chat on Tails in 4 Steps

Delta Chat is a decentralized messenger. It also supports PGP encryption, secured against MITM attacks. But how to use it on an anonymous Tails stick?

Tails is very useful if you want to be more anonymous by running everything through the tor network; but it is especially interesting for nomad activists who travel without a laptop of their own. This is because of the “Persistent Storage” feature.

Continue reading “How to Setup Delta Chat on Tails in 4 Steps”

Corona-Tests ohne Handynummer machen – Hacktivismus hilft

Wie man mit einem Linux-Befehl die Verschlüsselung von Corona-Testergebnissen knacken kann.

Für Menschen, die in Bayern gemeldet sind, sind PCR-Tests kostenlos – eine der wenigen Corona-Maßnahmen, für die ich dankbar bin. Die Tests haben allerdings ein Datenschutz-Problem, man muss bei der Anmeldung für den Test eine Handynummer angeben.

UPDATE 14.3.2021: die Methode funktioniert seit einigen Tagen nicht mehr, weil die Codes mittlerweile acht Stellen lang sind, und aus Groß- und Kleinbuchstaben statt Zahlen bestehen. Das Entschlüsseln würde dadurch (mit meinem PC) bis zu 47 Jahre dauern – so lange können die wenigsten auf ein Testergebnis warten.

Continue reading “Corona-Tests ohne Handynummer machen – Hacktivismus hilft”

Why I Share my Music Online – for Free

I am not only an artist, but also a nerd – and at some point in my life I stumbled into programming & Open Source culture.

Open Source has deeply influenced das_synthikat – our music is truly cyberpunk, talking about life and power relations in the digital age. And it is for free, released under a Creative Commons license, just as my solo music. This means it belongs to you, you can legally listen to it, share it, and even remix it. For free. Continue reading “Why I Share my Music Online – for Free”

Anarchistische Glückskekssprüche

Als Ersatz für ein Manifest.

Die totale Anarchie zu fordern, war einer der größten Fehler, die der Anarchismus je gemacht hat. Denn welche*r Anarchist*in mag schon das Totale und das Absolute? Aber niemand von uns ist perfekt, und auch die Welt die wir schaffen wollen, kann es nicht sein.

Continue reading “Anarchistische Glückskekssprüche”

Gegen das Wir

Ein kleiner Denkanstoß zum Repräsentationsprinzip – was maßen wir uns an, wenn wir für andere sprechen?

Ich will nichts repräsentieren. Dafür bin ich mir zu wichtig.

Wenn du für jemanden sprichst, nimmst du ihr die Stimme weg, und dir die Identität. Sie wird stumm, aber nur, wenn du zu ihr wirst – sonst wird sie sich ganz schnell beschweren.

Continue reading “Gegen das Wir”

How to Fix Inconsistencies in Encrypted Xubuntu Partitions – or Rescue Data

Every few weeks, the file system of Phant’s laptop gets corrupted. How do you fix a corrupt file system?

Every few weeks, the file system of Phant’s laptop gets corrupted. Maybe at some point it won’t be fixable anymore, but these steps always worked (for now).

Continue reading “How to Fix Inconsistencies in Encrypted Xubuntu Partitions – or Rescue Data”