Signel is an Emacs interface for Signal. It communicates with a running
signal-cli daemon via JSON-RPC to send and receive messages.
- Chat Buffers: Read-only history with a guarded input prompt.
- Media Support: Renders inline images and attachments.
- Animated Stickers: Automatically converts APNG and WebP stickers to GIF for playback in Emacs.
- Dashboard: Overview of active conversations.
- Notifications: Native desktop notifications on new messages.
- Emacs 27.1+
- signal-cli: Must be installed and available in your
$PATH. - ImageMagick (Optional): The
convertcommand is required to render animated stickers.
Before running Signel, you must link or register your account using the command line.
signal-cli link -n "emacs-client" | xargs -n 1 qrencode -t utf8signel is available on MELPA.
You can install signel with the following command.
M-x package-install RET signel RET
For a basic configuration, place this in your user-init-file
(setq signel-account "+15550000000")(use-package signel
:config
;; REQUIRED: Your registered phone number
(setq signel-account "+15550000000")
;; Optional: If signal-cli is not in your $PATH
;; (setq signel-cli-program "/usr/local/bin/signal-cli")
)- Start the background process:
M-x signel-start - Open the conversation list:
M-x signel-dashboard - Open a specific chat directly:
M-x signel-chat
| Key | Command | Action |
|---|---|---|
RET | signel-send-input | Send message |
C-c C-c | signel-send-input | Send message |
C-c C-a | signel-attach-file | Attach file |
| Key | Command | Action |
|---|---|---|
RET | signel-dashboard-open-entry | Open selected chat |
n | forward-button | Next chat |
p | backward-button | Previous chat |
g | signel-dashboard-refresh | Refresh list |