Skip to content

ddonaldson130/Ichat-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iChat Reader

A modern desktop application for viewing and searching iChat/SMS message archives.

Features

  • Clean Message View: Easy-to-read conversation display
  • Global Search: Search across all message files with multi-term support (comma-separated)
  • Tag Bubbles: See which search terms appear in each file with visual tag indicators
  • Modern Dark Theme: Sleek, eye-friendly interface
  • Keyboard Navigation:
    • Left/Right arrows: Navigate search results
    • Up/Down arrows: Scroll through messages
  • Debug View: Raw data inspection for troubleshooting
  • Windows Executable: Standalone .exe included in releases

Installation

Option 1: Download Pre-built Executable

Download iChat Reader.exe from the Releases page - no Python installation required!

Option 2: Run from Source

# Clone the repository
git clone https://github.com/YOUR_USERNAME/ichat-reader.git
cd ichat-reader

# Run the application (no dependencies to install!)
python ichat_reader.py

Requirements:

  • Python 3.8+ (any standard Python installation)
  • No pip install required! Uses only Python standard library modules

The application uses only built-in Python modules:

  • tkinter (GUI - included with Python)
  • plistlib (parse iChat files)
  • os, sys, re, datetime (standard library)

Usage

  1. Launch the application
  2. Click "Select Directory" and choose the folder containing your .ichat files
  3. Files will load and display in the left panel
  4. Search: Enter terms in the search bar (use commas for multiple terms: honey, bear, hey)
  5. Navigate: Use Prev/Next buttons or arrow keys to jump between matches
  6. Switch Views: Click "Clean View" or "Debug View" to change display mode

Screenshots

Clean View

Clean View Easy-to-read conversation display with timestamps and sender names

Search with Tags

Search Results Search across multiple files with visual tag indicators showing match counts

Debug View

Debug View Raw data inspection for troubleshooting

Note: Screenshots use placeholder data. Your actual conversations will be displayed.

Development

Running Tests

python -m pytest test_ichat_reader.py

Building Executable

pip install pyinstaller
pyinstaller --onefile --windowed --name "iChat Reader" ichat_reader.py

Technical Details

  • Parses Apple's binary plist format used by iChat
  • Handles both iChat and SMS/iMessage formats
  • Extracts plain text from NSMutableString/NSString objects
  • Resolves UID references for nested data structures

License

This project is licensed under a Custom Source-Available License.

What this means:

  • Free for personal use
  • Modify and learn from the code
  • Share with others (non-commercially)
  • Cannot sell this software or derivatives
  • Cannot use in commercial products/services
  • 🔒 Author retains full commercial rights

Commercial Use

The original author retains exclusive rights to:

  • Sell this software commercially
  • License it to third parties
  • Change the license terms in the future
  • Make it proprietary or closed-source

See LICENSE for full terms.

For commercial licensing inquiries, please contact: drew@grohaus.org

Acknowledgments

Apple is a big company with lots of lawyers so to be clear I don't claim any rights to the iChat name or underlying IP . It annoyed me that apple does not provide ulilities to decode their files from systems they not longer operate so that people can still view the contents of those files. I pulled pieces together from a lot of different repositories but I can't rememberr which ones if any had code end up in this commit. If you see your code let me know and I'll add a link to your rrepo here.

I built what I needed so I could go back in time and visit old conversations I had with my wife when we firrst met in college. I hope this tool helps you revisit some of your past converrsations that you may have thought were lost to the sands of time. Happy Hunting. -Drew

  • Built with Python and tkinter
  • Inspired by the need to preserve and search old iChat conversations

About

A tool to read and search your old iChat messages (.ichat format) w/o iChat

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages