Skip to content
プロジェクト

charleswest775/openextract has 77 GitHub stars and 10 forks. Star changes are not measured yet. Last checked 2026-11-14 13:45 UTC. Last push 2026-11-13.

この数値の測り方

できること

  • 🔎 Search — One box searches messages, WhatsApp, notes, calls, voicemail, people and web history, and opens the exact message
  • 💬 Messages — Browse iMessage/SMS conversations with chat-bubble UI
  • 🟢 WhatsApp — Chats, groups and broadcast lists with replies, reactions, photos, voice messages, locations and calls; save one chat or all of them as a web page, PDF, CSV or text (guide)
  • 👥 People — Everyone you were in touch with, with your messages, WhatsApp chats, calls and voicemails together

計測したスター増加

24時間
履歴を収集中
7日間
履歴を収集中
15日間
履歴を収集中
1か月
履歴を収集中

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

概要

Free, open-source iPhone backup extractor — messages, WhatsApp, photos, voicemails & more

セキュリティ

OpenExtract

A free, open-source iPhone backup extractor for Windows, Mac and Linux: read and save the messages, WhatsApp chats, photos, voicemails, calls, contacts, notes and podcasts in an iPhone or iPad backup.

Download for Windows, Mac or Linux · openextract.app

Downloads Latest release

No cloud. No subscriptions. Your data stays on your computer.

The home page of a sample iPhone backup in OpenExtract: tiles with counts of messages, WhatsApp messages, photos, people, address book cards, calls, notes, voicemails and podcasts, plus web history, timeline and year, under a search box for the whole backup.

Features

  • 🔎 Search — One box searches messages, WhatsApp, notes, calls, voicemail, people and web history, and opens the exact message
  • 💬 Messages — Browse iMessage/SMS conversations with chat-bubble UI
  • 🟢 WhatsApp — Chats, groups and broadcast lists with replies, reactions, photos, voice messages, locations and calls; save one chat or all of them as a web page, PDF, CSV or text (guide)
  • 👥 People — Everyone you were in touch with, with your messages, WhatsApp chats, calls and voicemails together
  • 📷 Photos & Videos — Gallery view with thumbnails and bulk export
  • 📞 Voicemail — Listen to voicemails with caller ID
  • 📋 Calls — View calls with contact name resolution
  • 👤 Address book — Browse and export your saved contact cards
  • 📝 Notes — Read and export your iOS notes
  • 🎙️ Podcasts — The shows you follow and every episode you played; save your subscriptions as OPML for another podcast app, or everything as a spreadsheet (guide)
  • 🔒 Encrypted Backups — Full support for password-protected backups
  • 📤 Export — Save conversations as PDF, HTML, CSV, or plain text

Writing

Essays on Medium about what your phone keeps, and what it's like to finally read it:

More on Medium and the OpenExtract blog.

Screenshots

These use a made-up test backup, so none of the people or messages are real. Click any screenshot to see it full size.

Search results for a word across the whole backup: notes, messages and web pages, with the first note previewed and every match highlighted.
Search: one box searches messages, WhatsApp, notes, calls, voicemail, people and web history.
A conversation opened from a search result at the matching message, with the word highlighted and arrows to step through the other matches.
Straight to the message: a result opens the conversation at that exact message.
A person's page in People: their messages, calls and voicemail in one list by date, with a link to their card in the address book.
People: everyone you were in touch with, with your messages, calls and voicemails together.
The Address book: saved cards with names, companies, phone numbers and emails, each linking to that person's history.
Address book: the saved contact cards. Save them as vCard or CSV.
A text conversation, including a photo of a lake sent in the thread.
Messages: read any conversation, with the photos that were sent in it.
A group chat with other people's messages labeled by who sent them and a mountain photo in the thread.
Group chats: group threads show who said what.
A WhatsApp group chat beside the list of chats: a reply that quotes an earlier message, emoji reactions under messages and a photo of a lake.
WhatsApp: chats, groups and broadcast lists, with replies, reactions and photos.
A WhatsApp chat in Spanish: two photos of a rose garden, a missed call, a voice message playing in the app and a 22-minute call.
Voice messages and calls: play voice messages in the app; calls show missed or with their length.
The Photos screen: a grid of landscape photos with favorites starred and the backup's albums listed alongside.
Photos: the whole camera roll, with favorites starred.
An album open, showing photos of hot springs, bison and waterfalls.
Albums: the albums made on the phone, kept as they were.
The Calls screen: a table of calls with who, when, how long, direction and the app used.
Calls: every call with its date, length and direction, including FaceTime.
The Voicemail screen: saved voicemails, each with the caller, date and length, and one opened to play.
Voicemail: saved voicemails with who called and when. Play them or save the audio.
The Notes screen with a note listing national parks visited and planned.
Notes: read any Apple Note and save it as text or PDF.
Web history: Safari visits with a bar chart of the most visited sites.
Web history: pages visited, the sites visited most, and the hours you browse.
The Timeline: messages, calls, photos, voicemails, notes and web visits in one list, newest first, with filters by type, person and date.
Timeline: messages, calls, photos, voicemails, notes and web visits in one list, by date.
The Year view: one square per day, darker on busier days, with filters by type and person.
Year: a whole year at a glance. Click a day to open it in the Timeline.
Backup details: counts of messages, photos, address book cards, calls, notes and voicemails, messages sent and received, the top conversations and photo stats.
Backup details: what the backup holds, who you message most, and when.
The Podcasts screen with a show open: whether it's followed, its feed address, and the episodes listened to, each marked played, in progress, saved or downloaded, with buttons to get the audio or open the episode page.
Podcasts: the shows you follow and every episode you played. Save your subscriptions for another podcast app.

Download

Get the latest version from openextract.app or GitHub Releases.

Linux

  • Ubuntu, Debian, Mint, Pop!_OS: download the .deb and open it, or install it from a terminal, then start OpenExtract from your app menu:
    sudo apt install ./openextract_*_amd64.deb
    
  • Other distros: use the .AppImage (chmod +x it first). AppImages need FUSE 2, which Ubuntu 22.04 and later no longer install by default. If it fails with dlopen(): error loading libfuse.so.2, install FUSE 2 (libfuse2t64 on Ubuntu 24.04+, libfuse2 on Ubuntu 22.04 and Debian, fuse-libs on Fedora, fuse2 on Arch), or run it without FUSE:
    ./OpenExtract-*.AppImage --appimage-extract-and-run
    

Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Python 3.11+
  • An iTunes/Finder backup of your iPhone on this computer

Setup

OpenExtract's parsing engine lives in a separate library, ios-backup-core, which python/requirements.txt installs from a sibling folder. Clone both repos side by side, or pip install will fail and the app will report ModuleNotFoundError: No module named 'ios_backup_core':

your-dev-folder/
├── openextract/
└── ios-backup-core/
# Clone both repos side by side
git clone https://github.com/charleswest775/ios-backup-core.git
git clone https://github.com/charleswest775/openextract.git
cd openextract

# Install Node dependencies
npm install

# Install Python dependencies
cd python
pip install -r requirements.txt
cd ..

# Start the development server
npm run dev

This will launch Vite (React dev server) and Electron together. The app will auto-detect iPhone backups in the default locations:

  • macOS: ~/Library/Application Support/MobileSync/Backup/
  • Windows: %APPDATA%\Apple Computer\MobileSync\Backup\

macOS: the MobileSync folder is protected by macOS privacy controls, so OpenExtract needs Full Disk Access to read it (System Settings → Privacy & Security → Full Disk Access → turn on OpenExtract, then quit and reopen it). The app will prompt you with a shortcut to that setting if access is missing. When running from source with npm run dev, grant Full Disk Access to your terminal app instead.

Creating a Backup

If you don't have a backup yet:

  1. Connect your iPhone to your computer via USB
  2. Open Finder (macOS) or iTunes/Apple Devices (Windows)
  3. Select your device
  4. Check "Encrypt local backup" (recommended — gives access to more data)
  5. Click "Back Up Now"

Architecture

Electron (window, menus, file dialogs)
    ↕ IPC
React Frontend (UI components)
    ↕ JSON-RPC over stdin/stdout
Python Sidecar (backup parsing, SQLite queries, decryption)

The Python sidecar handles all backup reading and is bundled as a standalone executable for distribution (via PyInstaller). Users never need to install Python.

Project Structure

openextract/
├── electron/          # Electron main process + sidecar manager
├── src/               # React frontend
│   ├── components/    # UI components
│   ├── hooks/         # React hooks for state management
│   └── lib/           # Utilities (IPC client, date formatting)
├── python/            # Python sidecar engine
│   ├── main.py        # JSON-RPC server
│   ├── backup.py      # Backup discovery & management
│   ├── messages.py    # SMS/iMessage extraction
│   ├── contacts.py    # Address book parsing
│   ├── photos.py      # Photo/video extraction
│   ├── voicemail.py   # Voicemail extraction
│   ├── podcasts.py    # Podcasts (shows, listening history, OPML/CSV)
│   ├── calls.py       # Call history parsing
│   └── notes.py       # Notes extraction
└── scripts/           # Build scripts

Building for Distribution

# Bundle the Python sidecar (a folder: it starts without unpacking, and every
# library in it can be signed)
npm run python:bundle

# Package the Electron app
npm run package

Output will be in the release/ directory.

Privacy

OpenExtract reads your backup entirely on your computer, and your backup data never leaves it. The app goes online only to check for updates, if you allow it, and to send a problem report when you click Send (and on Windows, to install Apple Devices if you ask it to). The source code is fully auditable — that's the point of being open source.

The only network request the app makes is an update check: it asks GitHub for the latest release's version file. It asks you once before checking automatically, you can turn it off in Settings, and it never sends anything about you or your backups. Updates download only when you click Update.

License

MIT — use it however you want.

Contributing

PRs welcome! Key areas where help is needed:

  • Testing across iOS versions (schema changes between versions)
  • Windows testing and packaging
  • Photo gallery UI
  • PDF export with proper formatting
  • Accessibility improvements