scli is a command-line tool that allows you to connect to your Signal messenger account. This program utilizes a two-pane display that shows you chats on the left and the focused conversation on the right.
This guide will show you how to install scli
and its dependencies on Alpine
Linux, which requires some extra work due to musl.
If you're using a non-musl system, you can likely following the scli
README
and download the packaged binaries for an easier installation process.
Dependencies
In order to use scli
, you need a few dependencies:
openjdk17-jre
- Used as a dependency for thesignal-cli
tool. Version may vary.signal-cli
- Used as the backbone of thescli
tool.findutils
- Replaces the standard Busybox version ofxargs
.urwid
- A console user interface library for Python.urwid-readline
- For GNU emacs-like keybinds on the input line.qrencode
- Displays a QR code in the terminal to link the device using your phone. Not necessary if you're only linking on desktop and can copy/paste the connection URL.
Let's start by installing the packages available via Alpine's repositories. Be
sure to install the latest version of openjdk
. If you run into Java-related
issues, uninstall openjdk
and install an older version.
Next, let's install signal-cli
. Be sure to export the version of signal-cli
that you want. I use version 0.12.4
below, but that may be outdated by the
time you're reading this.
Finally, install the urwid
packages using the Python packaging utility.
Installation
Now that we have all of the dependencies we need, we can install scli
. Start
by simply cloning the repository.
When I cloned this repository on 2023-11-08, I found a bug in the logic that
required a fix. You must edit the scli
file and replace the one instance of
RLIMIT_OFILE
with RLIMIT_NOFILE
.
Once complete, you can move this program to anywhere on your $PATH
. I chose
the following directory.
Initial Setup
Now that everything is installed, we can login and configure the client. Start by generating a connection link.
|
This will generate a connection link and related QR code for you to use to link the devices together. Once complete, wait patiently for the connection process to finish.
Once it completes, it will exit and return you to the prompt. From here, you
need to perform an initial receive
command to start things off. The USERNAME
variable should be your phone number, such as +15551237890
.
Also be sure to test the daemon to ensure it works properly. If no errors occur, it's working. If you run into errors because you're not running a DBUS session, see my notes below.
Once the initial reception is complete, you are ready to use scli
.
This process will differ depending on your desktop environment (DE). If you are running a DE, you likely have a DBUS session running already and can simply launch the program.
However, if you're like me and running your computer straight on the TTY without a DE, you'll need to start a DBUS session for this program.
# If you're not running a DBUS session yet, you need to start one for scli
# OR - If you're already running a DBUS session, simply run scli
Configuration
Lastly, there are a number of configuration options that you can pass via the
command or in the ~/.config/sclirc
file. See the Github README for more
information on configuration options.
80
true
That's it! Following this guide, I have a functional scli
program that
successfully sends messages to my contacts and myself!