Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How do you convert the iChat transcript files that Messages creates into human-readable text files that can be opened without the Messages app?

For reference, these are the conversation files located in ~/Library/Messages/Archive.

Simply opening the .ichat files in a text editor includes a bunch of additional strings and hashes. Opening them in Messages and copy-pasting into a text editor works, but I'd prefer to automate the process if possible.

share|improve this question

The files that Messages saves have an ichat file extension.

But from the command line you can inspect them to see they are actually binary plist files:

$ file transcript.ichat
transcript.ichat: Apple binary property list

Turns out, you can easily convert binary plist files into human-readable XML documents:

$ plutil -convert xml1 transcript.ichat

Now, when you run file again, you can see it's an XML file:

$ file transcript.ichat
transcript.ichat: XML document text

Go ahead—open it and see for yourself:

$ open transcript.ichat
share|improve this answer

If you are familiar with sqlite, you can just export the messages directly from the database on Mountain Lion iMessage.

sqlite3 /Users/(username)/Library/Messages/chat.db

From the database, you can send sql commands to get any and all messages and associated fields you have interest. Further, you can change the output settings to write directly to a file.

Also, in addition to the database, all photos are stored in the Attachments folder.

share|improve this answer
iChat transcripts (.ichat files) are not SQLite databases. – Sean Moubry Apr 29 '15 at 15:55

Check out my project that will take all of your conversations and convert them into one readable text file. It won't convert just a single iMessage, but it will collect all of your messages and attachments, back them up, and put them into a human-readable format.

share|improve this answer
Does it work with iChat log files? – patrix Jul 18 '15 at 8:40
It uses your iChat log files found in your ./Library/Messages/chat.db to convert into a text file. – Peter Kaminski Jul 18 '15 at 18:20
This worked nicely for me, thanks! I notice it can skip the very beginning of message histories though if you have conversations that are VERY long (unless they are forever lost if iMessage doesnt keep all messages like i thought). Nevertheless still got the job done! – Billy Bryce May 12 at 13:04
I think the main problem I've noticed is that when you open your macbook after having sent many messages on your phone, there is that delay between iMessage on mac and phone, and this causes the messages to get cut off. – Peter Kaminski May 13 at 5:07

If you select print from the file menus, when the print box opens in the lower left is a pdf button with a drop down. From here you can save as pdf, post script, mail as pdf or send to iTunes.

share|improve this answer

This wouldn't be a perfect solution, but I notice that the messages are always between Ä_ and _$. You could write a script to extract all the text which started and ended with those characters. (any language with rexex support would do)

share|improve this answer

This seems like an ideal application of Automator workflows or AppleScript, since both of those can do "press buttons onscreen" style behavior. You'd say "take file as input," and use something under "print" or "messages" if there are either of those, or use AppleScript to tell it to open the file and press file and print and save as pdf and then close the file.

share|improve this answer
Could you provide a better description of your answer. That's suggestive but not showing any particular answer for the user with steps. – Danijel-James W May 21 at 2:04

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.