Python get mac clipboard contents

Have you looked at the xerox module?
It is supposed to support windows, OS X and Linux


Usage is as follows:

xerox.copy(u'some string')

And to paste:

>>> xerox.paste()
u'some string'


PyObjC is the way to go:

#!/usr/bin/python

from AppKit import NSPasteboard, NSStringPboardType

pb = NSPasteboard.generalPasteboard()
pbstring = pb.stringForType_(NSStringPboardType)
print u"Pastboard string: %s".encode("utf-8") % repr(pbstring)

This only supports text and will return None otherwise. You can extend it to support other data types as well, see NSPastboard Class Reference.


The problem with the xerox module and most code samples I've found for "get the contents of the Mac clipboard" is that they return plain text only. They don't support hyperlinks, styles, and such, so they're not really able to access the full contents provided by apps like Microsoft Word and Google Chrome.

Standing on the shoulders of others, I finally figured out how to do this. The resulting richxerox module is available on PyPI and Bitbucket.

Though this question is old, I'm leaving breadcrumbs here because I consistently re-found this page via Google while searching for the answer.