Skip to content

Linking other devices (Provisioning)

Julien Palard edited this page Jul 17, 2024 · 20 revisions

Signal allows to link additional devices to your primary device. A "primary" program can be the official Signal app on a mobile device (e.g. Signal-Android), or an instance of signal-cli. A "linked" program can be Signal-Desktop, or an instance of signal-cli. Note that currently Signal allows up to five linked devices per primary; attempting to link additional devices using signal-cli as a primary (with signal-cli addDevice …) leads to "Authentication failed" error.

  • Connect to another device

    signal-cli link -n "optional device name"
    

    This shows a sgnl://linkdevice… link (or tsdevice:/… in earlier versions); if you want to connect to another signal-cli instance, you can just use this link (see below for details). If you want to link to an mobile device, create a QR code with the link (e.g. with qrencode) and scan that in the Signal app.

    To request a link and display the resulting QR code image in a single command on linux:

       signal-cli link -n "optional device name" | tee >(xargs -L 1 qrencode -t utf8)
    

    alternatively, you can try:

       signal-cli link -n "optional device name" | xargs -L 1 qrencode -o /tmp/qrcode.png & while [ ! -f /tmp/qrcode.png ]; do sleep 1; done; xdg-open /tmp/qrcode.png
    

    or for newer versions on android:

     signal-cli link -n "optional device name" | xargs -L 1 qrencode -o /tmp/qrcode.png --level=H -v 10 & while [ ! -f /tmp/qrcode.png ]; do sleep 1; done; xdg-open /tmp/qrcode.png
    

    Do not kill the signal-cli link … process until linking is finished; the process will exit when it's done.

    After linking was successful, you need to execute the receive command to get the list of contacts and groups from the main device.

    signal-cli -u USERNAME receive
    
  • Add another device

    signal-cli -u USERNAME addDevice --uri "tsdevice:/…"
    

    The tsdevice:/… link (or sgnl://linkdevice… in more recent versions) is the one shown by the new signal-cli instance or contained in the QR code shown in Signal-Desktop or similar apps.

    Only the master device (that was registered directly, not linked) can add new devices.

  • Manage linked devices

    signal-cli -u USERNAME listDevices
    
    signal-cli -u USERNAME removeDevice -d DEVICE_ID
    
  • Connect to another signal-cli instance

    You cannot run two instances on the same machine, so use either a virtual machine or another physical machine for your secondary device. On the secondary machine, issue the command

     signal-cli link -n "optional device name"
    

    This will display the tsdevice:/… link. Then go back to the primary machine and issue the command

    signal-cli -u USERNAME addDevice --uri "tsdevice:/…"
    

    This links the two instances. Now, on your secondary machine, you can run

    signal-cli -u USERNAME daemon
    

    or any other valid signal-cli command except those which can only be used from the primary device.

Clone this wiki locally