{"id":30859335,"url":"https://github.com/greendoescode/signalmessagecounter","last_synced_at":"2025-09-07T14:59:06.588Z","repository":{"id":246736549,"uuid":"822341558","full_name":"greendoescode/signalmessagecounter","owner":"greendoescode","description":"Signal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.","archived":false,"fork":false,"pushed_at":"2024-07-01T13:52:43.000Z","size":8,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-09T23:56:11.102Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greendoescode.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-01T00:42:37.000Z","updated_at":"2025-07-29T20:03:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"3d88626b-687e-47d7-bc1e-a96b90a9b01a","html_url":"https://github.com/greendoescode/signalmessagecounter","commit_stats":null,"previous_names":["greendoescode/signalmessagecounter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/greendoescode/signalmessagecounter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greendoescode%2Fsignalmessagecounter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greendoescode%2Fsignalmessagecounter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greendoescode%2Fsignalmessagecounter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greendoescode%2Fsignalmessagecounter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greendoescode","download_url":"https://codeload.github.com/greendoescode/signalmessagecounter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greendoescode%2Fsignalmessagecounter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274051968,"owners_count":25214030,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-07T14:58:27.685Z","updated_at":"2025-09-07T14:59:06.577Z","avatar_url":"https://github.com/greendoescode.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Signal Message Counter\n\nSignal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.\n\n## Getting Started\n\n### 1. Obtain the SQLite Database\n\nDepending on your operating system, locate the Signal SQLite database:\n- **Linux**: `~/.config/Signal/sql/db.sqlite`\n- **Mac**: `~/Library/Application Support/Signal/sql/db.sqlite`\n- **Windows**: `C:\\Users\\\u003cYourName\u003e\\AppData\\Roaming\\Signal\\sql\\db.sqlite` (exact path may vary)\n\n### 2. Decrypt and Convert SQLite Database to CSV\n\nThe Signal SQLite database is encrypted using SQLCipher. You need to decrypt it and convert it to CSV format using the following steps:\n\n#### Prerequisites\n\nEnsure you have the following installed:\n- **sqlcipher**: A recent version (e.g., 3.31.0 or later) to decrypt the encrypted SQLite database.\n\n#### Decrypt Script\n\nDownload the decryption script [sqlite-to-csv.sh](./scripts/sqlite-to-csv.sh) and follow these steps:\n\n1. Save the script in a directory of your choice.\n2. Make it executable: `chmod +x sqlite-to-csv.sh`.\n3. Execute the script: `bash sqlite-to-csv.sh`.\n\nThis 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`. \n\nTo use this script on windows, either use WSL or transfer the files to a linux machine.\n\n### Analyzing Messages\n\nOnce 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`\n\n`Usage: signalmessagecounter \u003cfilepath\u003e \u003cconversationId\u003e`\n\n### License\n\nThis project is licensed under the BSD 2-Clause License - see the [LICENSE](./LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreendoescode%2Fsignalmessagecounter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreendoescode%2Fsignalmessagecounter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreendoescode%2Fsignalmessagecounter/lists"}