Download Entire iMessage History with One Person as Plain Text
The Messages app stores history in ~/Library/Messages/chat.db, which is a database in SQLite format. To open it and inspect it, you'll need to install the SQLite tools, which are available from the SQLite website or from Homebrew with brew install sqlite.
In a terminal, run sqlite3 ~/Library/Messages/chat.db, which will open the sqlite3 command line. Type SELECT * FROM handle; and search for the relevant conversation - its ID is the number in the first column.
Next, run .output filename.txt to set a path for the output to be saved, and
then run the following command, replacing 12345 with the ID of the conversation you're exporting.
SELECT handle_id, date, datetime(date / 1000000000,'unixepoch','31 years'), text 
FROM message T1 
INNER JOIN chat_message_join T2 
    ON T2.chat_id=12345
    AND T1.ROWID=T2.message_id 
ORDER BY T1.date;

You will now have a text file, filename.txt, containing this conversation in chronological order. You can run .schema message to see the full list of columns if you would like to save more data - simply add a comma and the name of the column onto the SELECT statement.