https://github.com/greendoescode/signalmessagecounter
Signal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.
https://github.com/greendoescode/signalmessagecounter
Last synced: 7 months ago
JSON representation
Signal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.
- Host: GitHub
- URL: https://github.com/greendoescode/signalmessagecounter
- Owner: greendoescode
- License: bsd-2-clause
- Created: 2024-07-01T00:42:37.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-01T13:52:43.000Z (almost 2 years ago)
- Last Synced: 2025-08-09T23:56:11.102Z (8 months ago)
- Language: Rust
- Homepage:
- Size: 7.81 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Signal Message Counter
Signal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.
## Getting Started
### 1. Obtain the SQLite Database
Depending on your operating system, locate the Signal SQLite database:
- **Linux**: `~/.config/Signal/sql/db.sqlite`
- **Mac**: `~/Library/Application Support/Signal/sql/db.sqlite`
- **Windows**: `C:\Users\\AppData\Roaming\Signal\sql\db.sqlite` (exact path may vary)
### 2. Decrypt and Convert SQLite Database to CSV
The Signal SQLite database is encrypted using SQLCipher. You need to decrypt it and convert it to CSV format using the following steps:
#### Prerequisites
Ensure you have the following installed:
- **sqlcipher**: A recent version (e.g., 3.31.0 or later) to decrypt the encrypted SQLite database.
#### Decrypt Script
Download the decryption script [sqlite-to-csv.sh](./scripts/sqlite-to-csv.sh) and follow these steps:
1. Save the script in a directory of your choice.
2. Make it executable: `chmod +x sqlite-to-csv.sh`.
3. Execute the script: `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.
### Analyzing Messages
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 `
### License
This project is licensed under the BSD 2-Clause License - see the [LICENSE](./LICENSE) file for details.