| Crates.io | asimov-signal-module |
| lib.rs | asimov-signal-module |
| version | 0.0.1 |
| created_at | 2025-07-27 20:58:51.545097+00 |
| updated_at | 2025-07-30 11:11:53.192934+00 |
| description | ASIMOV module for importing Signal chats. |
| homepage | https://github.com/asimov-modules |
| repository | https://github.com/asimov-modules/asimov-signal-module |
| max_upload_size | |
| id | 1770417 |
| size | 63,302 |
ASIMOV module for importing Signal chats.
.env (aka dotenv) files.asimov module install signal -v
cargo install asimov-signal-module
asimov-signal-reader | jq
asimov-signal-reader | fgrep SignalChat | jq
asimov-signal-reader | fgrep SignalGroupChat | jq
asimov-signal-reader | fgrep "My Group Chat" | jq
asimov-signal-reader | jq '.peer.phone // empty'
Signal Desktop stores data in an encrypted SQLCipher database. The encryption
key for this database is stored in a config.json file in Signal's application
data directory, and that key is itself encrypted using an encryption password
stored in the (platform-specific) system keychain.
This module can be configured to decrypt the Signal database using either the encryption password or the encryption key. (You don't need both, just one.)
The simplest way to configure the module is to set the ASIMOV_SIGNAL_PASSWORD
environment variable to the encryption password stored in the system keychain:
# macOS
export ASIMOV_SIGNAL_PASSWORD=$(security find-generic-password -a "Signal Key" -s "Signal Safe Storage" -w)
# GNOME
export ASIMOV_SIGNAL_PASSWORD=$(secret-tool lookup application Signal)
# KDE
export ASIMOV_SIGNAL_PASSWORD=$(kwallet-query kdewallet -f "Chromium Keys" -r "Chromium Safe Storage")
Alternatively, for advanced users, you could set the ASIMOV_SIGNAL_KEY
environment variable to the actual decrypted value of encryptedKey found in
the config.json file:
export ASIMOV_SIGNAL_KEY=feedc0dedecafbadcafebabecafed00dfeedc0dedecafbadcafebabecafed00d
This key must be 64 hexadecimal characters, meaning 32 bytes (256 bits). Deriving this key manually is well beyond the scope of these instructions here.
asimov-signal-reader: reads chats from the Signal data directoryasimov-signal-readerasimov-signal-reader
Usage: asimov-signal-reader [OPTIONS] [SIGNAL-DIR]
Arguments:
[SIGNAL-DIR] Path to the Signal data directory
Options:
-d, --debug Enable debugging output
--license Show license information
-v, --verbose... Enable verbose output (may be repeated for more verbosity)
-V, --version Print version information
-o, --output <FORMAT> Set the output format [default: jsonl] [possible values: jsonl]
-h, --help Print help
git clone https://github.com/asimov-modules/asimov-signal-module.git