Get started
Download the app, then point it at a backup you already own.
Version 1.0.5, universal build for Apple silicon and Intel, 14.8 MB.
Download and open it
Saga ships as a disk image. Open it, drag Saga into Applications, and launch it. The first launch may ask for permission to read Contacts, which is how names replace phone numbers.
Builds are ad-hoc signed while the project has no Apple Developer certificate, so macOS stops the first launch with Apple could not verify “Saga” is free of malware. Click Done, open System Settings → Privacy & Security, scroll to Security, click Open Anyway beside Saga, then confirm with your password. The button only appears for about an hour after a blocked launch; if it is missing, launch Saga again and go straight back to Settings. On macOS 14, right-click Saga in Finder and choose Open instead. Download Saga only from this page or the GitHub releases.
What you need
macOS 14 or later. An Android backup, and its 64-digit encryption key — not the password you may have chosen for the backup. Room on disk for the vault, the search index and temporary files. iPhone import is experimental and does not replace a full Android backup.
Import from Android
Open Saga and follow the wizard: USB setup or an existing backup file, the encryption key, a contact-name source, where the vault goes. When the import and index finish, open a chat or search for a word you remember.
Encryption is optional and off by default; turn it on after the first import. Privacy explains what stays readable either way.
Add more history
Import older backups to fill the gaps, or update from a newer full backup. Saga matches messages across imports, and keeps what it has already seen.
Build from source
Install a Swift 6 toolchain and the macOS developer tools, then run this from a checkout.
swift build -c release
scripts/make_app.sh --universal
open build/Saga.app
Source builds are ad-hoc signed too, so the first launch takes the same extra step.
Try it with sample data
Saga can build its own demo archive: 20,600 messages, 14 conversations, three years. It is the archive behind the screenshots and the sample Wrapped.
swift build
.build/debug/saga demo --out ~/saga-demo
.build/debug/SagaApp --demo ~/saga-demo
The folder holds a vault and a local index. It refuses to overwrite an existing folder, so pick a new path each time.
If setup stops
For USB trouble, check the cable, USB debugging and the phone's permission prompt. For decryption errors, confirm the backup and the key belong together. If you report a problem, describe the steps and the error — never upload messages, contacts, backups or keys.