{"id":15440798,"url":"https://github.com/jonluca/mimessage","last_synced_at":"2025-10-04T22:42:54.831Z","repository":{"id":151969240,"uuid":"622003571","full_name":"jonluca/mimessage","owner":"jonluca","description":"iMessage Wrapped, Semantic Search, and AI Chats","archived":false,"fork":false,"pushed_at":"2024-08-19T05:50:09.000Z","size":11937,"stargazers_count":149,"open_issues_count":3,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-22T22:42:44.047Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://blog.jonlu.ca/posts/mimessage?ref=gh","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonluca.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-03-31T21:39:07.000Z","updated_at":"2025-06-10T15:23:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"bfad8bdc-9262-476d-b990-a54bc6711c14","html_url":"https://github.com/jonluca/mimessage","commit_stats":{"total_commits":184,"total_committers":2,"mean_commits":92.0,"dds":0.005434782608695676,"last_synced_commit":"f4c02808429a49c5148d6c4170e7322a6f7d8e36"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/jonluca/mimessage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonluca%2Fmimessage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonluca%2Fmimessage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonluca%2Fmimessage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonluca%2Fmimessage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonluca","download_url":"https://codeload.github.com/jonluca/mimessage/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonluca%2Fmimessage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278386118,"owners_count":25978109,"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-10-04T02:00:05.491Z","response_time":63,"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":"2024-10-01T19:15:21.466Z","updated_at":"2025-10-04T22:42:54.815Z","avatar_url":"https://github.com/jonluca.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# MiMessage\n\nMiMessage is a free and privacy preserving UI to help search, export and visualize your iMessage conversations. It helps export conversations, search conversations, and visualize stats about your conversations.\n\n![App screenshot](readme-assets/img.png?raw=true \"Mimessage App\")\n\n## Installation\n\nTo install the application, check out the releases tab and download the app for your architecture. https://github.com/jonluca/mimessage/releases\n\n## Features\n\nThis alternative UI provides several advanced features, including:\n\n- **Semantic Search**: Using OpenAI and a locally running version of chroma you can do semantic search on your messages\n- **Wrapped**: See the stats for all your iMessage conversations\n- **Custom Filters**: Apply custom filters to refine your search results and find exactly what you're looking for.\n- **Custom Filters**: Apply custom filters to refine your search results and find exactly what you're looking for.\n- **Conversation Export**: Export all the data of a given conversation in a user-friendly format for archival purposes or analysis.\n- **Regex Search**: Search your conversations using powerful regular expressions to find specific messages or patterns.\n- **Media Export**: Easily export all media (images, videos, etc.) from a conversation to a separate folder.\n- **AI Conversation**: Have a conversation with anyone you've talked to before, in their voice\n\nPlease note that this application is for viewing and managing iMessage conversations only. It does **NOT** allow you to send messages.\n\n### Wrapped\n\nMimessage also creates an \"iMessage Wrapped\" - a Spotify Wrapped, but for your conversations. It will generate some statistics about your conversations.\n\n![Wrapped](readme-assets/wrapped.png?raw=true \"My iMessage Wrapped\")\n\nFun sidenote: ChatGPT actually came up with a lot of the stats that would be interesting to see.\n\n![ChatGPT ideas](readme-assets/chatgpt.png?raw=true \"ChatGPT generated the stats\")\n\n### My stats look wrong\n\nIf a lot of your conversations are missing attachments, or the stats look wrong, you can try the following:\n\n- Open up iMessage settings\n- Unselect \"Enable Messages in iCloud\"\n- In the prompt, select \"Only this device\"\n- Re-enable Messages in iCloud\n- Wait for the messages to sync and download (You can see progress in the bottom right of the iMessage app)\n\nThis will force iMessage to download all the attachments and messages to your computer. This process might take a while depending on how many messages you have.\n\n## Creating embedding is slow\n\nThe [OpenAI rate limits](https://platform.openai.com/docs/guides/rate-limits/overview) are dependent on your tier and account age. Make sure you're on the \"Pay as you go\" plan, and your acount is at least 48 hours old.\n\n## Developing\n\nFirst clone the repo, then run `yarn` to install dependencies. Then run `yarn dev` to start the application.\n\nThe recommended node version is v19\n\n```bash\ngit clone git@github.com:jonluca/mimessage.git\ncd mimessage\nyarn install\nyarn dev\n```\n\nImportant note: your IDE or your terminal must have full disk access enabled in permissions. It will also request contacts permissions, to be able to read your contacts to map the phone numbers to names.\n\n## Credits\n\n- [imessage-exporter](https://github.com/ReagentX/imessage-exporter) was used to help understand the database schema\n- [BlueBubbles](https://github.com/BlueBubblesApp/bluebubbles-app) was used to understand some messages specific types and enums\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonluca%2Fmimessage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonluca%2Fmimessage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonluca%2Fmimessage/lists"}