charleswest775/openextract
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
セキュリティREADME.md
オリジナル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
No cloud. No subscriptions. Your data stays on your computer.
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:
- The journal you never meant to keep (October 2026): your phone has been keeping a more honest journal than the one you'd write, and how to read it like one.
- The Fortress of Nothing Matters (April 2026): what 17,518 extracted text messages revealed when analyzed at scale, and what data-as-mirror can show that introspection can't.
- Your iPhone Has Been Writing Your Diary. You Just Can't Read It Yet. (March 2026): what it feels like to finally hold years of your own messages, photos and voicemails in a readable form.
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.
Download
Get the latest version from openextract.app or GitHub Releases.
Linux
- Ubuntu, Debian, Mint, Pop!_OS: download the
.deband 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 +xit first). AppImages need FUSE 2, which Ubuntu 22.04 and later no longer install by default. If it fails withdlopen(): error loading libfuse.so.2, install FUSE 2 (libfuse2t64on Ubuntu 24.04+,libfuse2on Ubuntu 22.04 and Debian,fuse-libson Fedora,fuse2on 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:
- Connect your iPhone to your computer via USB
- Open Finder (macOS) or iTunes/Apple Devices (Windows)
- Select your device
- Check "Encrypt local backup" (recommended — gives access to more data)
- 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


















