Crates.io | signalmessagecounter |
lib.rs | signalmessagecounter |
version | 0.1.0 |
source | src |
created_at | 2024-07-01 00:48:35.376689 |
updated_at | 2024-07-01 00:48:35.376689 |
description | Rust CLI tool to count signal messages |
homepage | https://github.com/greendoescode/signalmessagecounter/ |
repository | https://github.com/greendoescode/signalmessagecounter/ |
max_upload_size | |
id | 1288274 |
size | 27,204 |
Signal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.
Depending on your operating system, locate the Signal SQLite database:
~/.config/Signal/sql/db.sqlite
~/Library/Application Support/Signal/sql/db.sqlite
C:\Users\<YourName>\AppData\Roaming\Signal\sql\db.sqlite
(exact path may vary)The Signal SQLite database is encrypted using SQLCipher. You need to decrypt it and convert it to CSV format using the following steps:
Ensure you have the following installed:
Download the decryption script sqlite-to-csv.sh and follow these steps:
chmod +x sqlite-to-csv.sh
.bash sqlite-to-csv.sh
.This script decrypts the Signal SQLite database using the encryption key obtained from config.json
, extracts message data in JSON format, and writes it to backup-desktop.csv
.
To use this script on windows, either use WSL or transfer the files to a linux machine.
Once you have backup-desktop.csv
, you can use this tool to parse and analyze the CSV file to extract insights such as message counts, timestamps, and message types (incoming/outgoing). You'll need to get your conversation id for this, which you can find by getting most recent message from your selected chat, doing CTRL-F in the CSV file and on the same line, finding the conversation id. It'll look something like d37673ee-9d18-4294-be46-30e755a1406
Usage: signalmessagecounter <filepath> <conversationId>
This project is licensed under the BSD 2-Clause License - see the LICENSE file for details.