Terminal user interface for Signal messaging with Vim-like navigation and external editor support
scli is a terminal user interface for Signal messaging that provides a text-based alternative to the standard Signal clients. It acts as a frontend to signal-cli, combining it with the urwid Python library to create an interactive TUI experience. The tool supports Vim-like navigation with j/k movement keys, g/G for jumping to first/last items, and command entry with the colon prefix.
The interface includes features like emoji reactions on messages (press 'e' or 'R'), message deletion (both local with 'd' and remote with 'D'), clipboard integration for copying messages, and external editor support through the $EDITOR environment variable. Users can send attachments using the :attach command, read file contents with :read, and search through conversations using the '/' key. Optional emacs-like readline bindings are available when urwid_readline is installed.
scli requires signal-cli v0.11.0+ as a dependency and must be linked to an existing Signal account before use. The tool supports contact management for accounts registered as primary devices, conversation history saving, and customizable color schemes for message display. Installation involves setting up signal-cli, installing Python dependencies like urwid, and ensuring DBus is available on the system.
# via Git
git clone https://github.com/isamert/scli
# via Pip
pip install urwid