Hey Sam,
Open the Applescript Editor (or Script Editor on Yosemite), and paste this script into it.
------------------------------------------------------------
set targetBuddyHandle to "myHandle@someDomain.com"
tell application "Messages"
if not running then run
# activate
set thisBuddy to first buddy whose handle is targetBuddyHandle and service type of service of it is iMessage
# set thisChat to make new text chat with properties {participants:{thisBuddy}}
end tell
------------------------------------------------------------
Open the Event Log History window in the window menu. Make sure you’re showing Events and Replies in the event log window.
Run the script.
Uncomment (remove the ‘#’) the 2nd commented line (starts with ‘set thisChat’) and run the script again.
Now you get a little sense of what AppleScript is doing.
Now run this script:
tell application "Messages"
handle of buddies
end tell
Now run this script with at least 1 chat active:
tell application "Messages"
text chats
end tell
If you carefully read the language of the first script I wrote it basically tells you what it’s doing.
Set a variable named targetBuddyHandle to the handle name of the person you want to contact.
Make sure Messages is running and then activate it to bring it to the front.
(Ordinarily activate should be sufficient for this, but there’s been a bug for the last couple of versions of OSX to work around.)
set variable thisBuddy to the actual buddy-object of the buddy represented by the handle-name for use in the next command.
Make a new text chat object with 1 participant and assign it to variable thisChat.
The variable makes it easy to refer to the created text chat in other commands.
Clear as mud? 
Messages appears to be fairly scriptable, but it isn’t exactly straightforward to do so.
-Chris