Sign.el 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 Sign.el, you must link or register your account using the command line.
signal-cli link -n "emacs-client" | xargs -n 1 qrencode -t utf8Clone the repository and add it to your load path.
(use-package signel
:load-path "~/.emacs.d/site-lisp/signel" ;; Adjust path as needed
:config
;; REQUIRED: Your registered phone number
(setq signel-account "+15551234567")
;; 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 |
GPLv3