Open-source project
momenbasel/Phosphor avatar
momenbasel/Phosphor

Phosphor is an open source iOS device manager that reads backups Finder makes

Free and open-source iOS device manager for macOS. Browse backups, export messages, extract photos, manage apps - no subscriptions, no iCloud lock-in.

667 stars48 forksSwiftMIT

At a glance

What is it?
Phosphor is a SwiftUI app for macOS that talks to iPhones and iPads over USB, browses and decrypts backups, exports messages and photos, and manages apps, all under an MIT licence. The trade is that it needs a recent macOS, it reads your data through the same backup mechanism Apple uses, and the project publishes a feature list that runs ahead of what any one release guarantees.
Who is it for?
Phosphor suits a macOS user who wants to read, export and restore what is on an iPhone without paying a subscription and without handing everything to iCloud, and who is comfortable working with a backup directory. It does not suit someone who needs a supported commercial product with a support contract, and it does not replace a device that has failed, because everything it reads comes from a backup.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

It reads the backup Apple already made

The positioning is stated in the repository description: a free and open-source iOS device manager for macOS that browses backups, exports messages, extracts photos and manages apps, with no subscriptions and no iCloud lock-in. The README puts the goal as complete control over your iPhone, iPad and iPod touch without proprietary software, iCloud lock-in or subscriptions, and the framing in the Why section is that Apple's Finder integration is all-or-nothing while commercial tools cost a yearly subscription. The stated platform requirements are macOS 14 or later, Swift 5.9, and support for iOS 17 to 26 and above, and the project is MIT licensed. The comparison table in the README is the most useful part of the document, because it lists the capabilities side by side with Finder and a commercial alternative across two dozen rows, from full and incremental backup through selective restore, iMessage and WhatsApp export, photo extraction, IPA install and removal, battery diagnostics, a real-time device console, a device file system browser, scheduled Wi-Fi backups, Time Machine style restore, contact and calendar export, Apple Watch data browsing, localisation, a crash report viewer, a process monitor, a ringtone creator and HEIC conversion, and it ends on price, with the paid tool at 49.99 dollars a year against free for both Finder and Phosphor.

Encrypted backups are decrypted natively, with no Python

One feature deserves separate attention because it is the one that usually forces a second tool. Phosphor can open password-protected backups, and the README says it prompts for the backup password and decrypts natively with PBKDF2, RFC 3394 key unwrap and AES-256-CBC, with no Python or external tools required. The implementation detail matters here, because the project's own architecture is built on pymobiledevice3 with libimobiledevice as a fallback, and pymobiledevice3 is a Python project. So the decryption path is the one thing implemented natively in Swift, and a user who wants to read an encrypted backup does not have to install a Python environment first. The README also says the decrypted archives work on backups made by Finder, the commercial tool, libimobiledevice and pymobiledevice3, not only on backups Phosphor created itself, which is the point of the feature. Password handling is stated plainly too: the password stays in memory for the session unless you tick the remember option, which stores it in the macOS Keychain.

Backups are browsed as a parsed database, not a pile of blobs

The backup browser is the core of the application and its implementation is the interesting part. Phosphor creates full and incremental local backups with no iCloud required, browses backup contents through a parsed Manifest.db, and navigates by domain, with Camera Roll, Apps, Home, System and Keychain among the listed domains. It can search files across the entire backup and extract individual files or whole domains. The distinction between a backup and a filesystem is worth pausing on, because it explains what the tool can and cannot do. A modern iOS backup is not a copy of the device filesystem, it is a hashed set of files plus a manifest describing which paths belong to which app and system domain, and that is why a Manifest.db has to be parsed before a browser can be built on top of it. The time machine mode, described as a 3D animated backup browser for visual restore, and the .phosphor archive format for portable export and import, are two different presentations of that same underlying structure.

Export covers messages, media, contacts and calendars

The export surface is where most people will use the application. Messages are the headline: browse all iMessage and SMS conversations from a backup, view them in a native chat-bubble interface, search across all messages, and export conversations to CSV, HTML, plain text or JSON, either one at a time or all at once, with the HTML export styled like native iMessage using blue and grey bubbles. Photos and videos can be browsed from Camera Roll without restoring, filtered by type into photos, videos and screenshots, shown in grid or list mode, and batch extracted to any folder with original filenames and structure preserved. Contacts come out of the AddressBook database as vCard or CSV, and calendars as ICS or CSV. The Apple Watch section is unusual in a backup tool: it views paired Watch information from the iPhone backup, browses WatchKit extension apps with their data sizes, and shows activity ring history for Move, Exercise and Stand, and it can extract all Watch-related data from a backup.

App extraction reads a backup, not the live device

There is a distinction in the application section that the README makes explicit and that is easy to misread. Phosphor lists all installed apps on connected devices, browses apps stored in backups with their data sizes, installs .ipa files directly to the device and removes apps from the device. But extracting an app's container works differently: you pick a backup in the Apps header and then use Extract Data on any app row, and the README states plainly that extraction reads from a local backup, not from the connected device. So there are two paths in the same feature area. Live device operations are the ones that need the device in USB and pairing: install, remove, listing. Container extraction is an offline operation against a backup you already have. The same split applies to the file system browser, which goes through AFC, the Apple File Conduit, and the README says no FUSE or ifuse is required on macOS Sonoma or later, with directory navigation, file metadata, copying to and from the device through pymobiledevice3 AFC push and pull, browsing specific app containers, deleting files on the device and drag-and-drop transfer.

Diagnostics go further than a battery percentage

The diagnostics section is broader than expected for a backup tool. The battery view reports current charge, charging status, health percentage, design capacity against actual capacity in mAh, cycle count and temperature, which together tell you whether a battery has degraded rather than merely reporting a percentage. Storage reporting breaks usage into apps, photos, media and other, with the available space and a colour bar in the style of the macOS About This Mac panel. The real-time device system log streams syslog with proper process termination, and logs can be filtered, searched, exported to a file and shown with colour-coded levels for error, warning and debug. There is also a crash report viewer that pulls and browses device crash reports, a live process monitor showing the running process list from the device, and a device management layer that covers automatic USB detection, model, iOS version, serial, UDID, IMEI and Wi-Fi and Bluetooth MAC addresses, pairing and unpairing, restart, shutdown and sleep commands, and device screenshots.

Homebrew is the install, and SwiftUI with two backends is the build

Installation is a Homebrew cask, and the README marks it as the recommended route::

bash
brew tap momenbasel/phosphor
brew install --cask phosphor

@@C1@@A manual route exists as well, starting with downloading the latest .dmg from the releases page. The application is built natively with SwiftUI, and the repository layout matches a Swift package rather than a plain app bundle, with a Package.swift, Sources/ and Resources/ directories, a Scripts/ directory, a Homebrew/ directory holding the cask definition, docs/ and assets/ directories, a CONTRIBUTING.md, a THIRD_PARTY_NOTICES.md for the bundled third party code, and a separate LICENSE file. The two backends are worth noting because they are not interchangeable in the same way. pymobiledevice3 is the primary path and libimobiledevice is the fallback, so the application has a Python dependency in its default configuration, and the native decryption described earlier is the specific feature that removes the need for it.

Editorial conclusion

Phosphor suits a macOS user who wants to read, export and restore what is on an iPhone without paying a subscription and without handing everything to iCloud, and who is comfortable working with a backup directory. It does not suit someone who needs a supported commercial product with a support contract, and it does not replace a device that has failed, because everything it reads comes from a backup. Before adopting, check that your macOS is 14 or later and your device is on iOS 17 to 26, read the incremental backup behaviour against what your own workflow needs, and note that the last push to the repository was on 2026-10-20 with v1.5.0 from 2026-10-08.

Frequently asked questions

How do I install Phosphor?

The recommended route is Homebrew, with `brew tap momenbasel/phosphor` followed by `brew install --cask phosphor`. The README also documents a manual route that starts by downloading the latest .dmg from the GitHub releases page. The app needs macOS 14 or later.

Can Phosphor open password-protected iOS backups?

Yes. It prompts for the backup password and decrypts natively with PBKDF2, RFC 3394 key unwrap and AES-256-CBC, with no Python or external tools needed for that path. It works on backups made by Finder, the commercial alternative, libimobiledevice and pymobiledevice3, and the password stays in memory unless you choose to store it in the macOS Keychain.

What can Phosphor export from a device backup?

iMessage and SMS conversations as CSV, HTML, plain text or JSON, with the HTML styled like native iMessage; Camera Roll photos, videos and screenshots with original filenames preserved; contacts as vCard or CSV; calendars as ICS or CSV; and app container data extracted from a backup. The README also lists WhatsApp message export among the features.

Does app data extraction work on a connected device?

No. The README states that extraction of an app container reads from a local backup, not from the connected device. You pick a backup in the Apps header and then use Extract Data on any app row. Live device operations such as installing or removing .ipa files and listing installed apps do use the connected device.

What licence is Phosphor released under and what does it cost?

MIT, with the licence file in the repository root and a separate THIRD_PARTY_NOTICES.md for bundled code. The README's comparison table lists the price as free against 49.99 dollars a year for the commercial alternative, and describes the project as free and open source with no subscriptions.

Official sources

  1. License: MIT
  2. momenbasel/Phosphor on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/momenbasel-phosphor.svg)](https://hysenlabs.com/projects/momenbasel-phosphor)

Was this useful?