pb

Interface to OSX Pasteboard

pb

Improved pbcopy/pbpaste for OSX

The standard pbcopy and pbpaste utilities can manipulate the plaintext clipboard but have no easy way of accessing the HTML pasteboard. This module and CLI tool provide a more convenient way to access the pasteboard from node.

With npm, global installation is easiest:

$ npm install -g pb

Depending on your system configuration, you may need to run as root:

$ sudo npm install -g pb

To get data from a specific pasteboard:

$ pb [type]
$ pb -m <type>

To set a specific pasteboard, be sure to pipe data into pb:

$ get_data | pb -s [type]

To list available pasteboards:

$ pb -l

For example, to grab the contents of the HTML pasteboard and put it on the plaintext pasteboard:

$ pb -m html | pb -s

From node, pb exposes:

  • get(type): get pasteboard data from specified pasteboard
  • set(type, data): set pasteboard data (overwrites other pasteboards)
  • gettypes(): enumerate available pasteboards

For example, to grab the contents of the HTML pasteboard and put it on the plaintext pasteboard:

var pb = require('pb');
var HTMLOutput = pb.get('html');
var textOutput = pb.get();
  • NSStringPboardType (plaintext)
  • NSHTMLPboardType (HTML)

Please consult the attached LICENSE file for details. All rights not explicitly granted by the Apache 2.0 license are reserved by the Original Author.