pb

Interface to OSX Pasteboard

Usage no npm install needed!

<script type="module">
  import pb from 'https://cdn.skypack.dev/pb';
</script>

README

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.

Installation

With npm:

$ npm install -g pb

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

$ sudo npm install -g pb

Command-Line Tool Usage

To get data from a specific pasteboard:

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

To set a specific pasteboard, 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

Library Usage

From node, pb exposes:

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

This example gets the pasteboard HTML data and copies to plaintext pasteboard:

var pb = require('pb');
var HTMLOutput = pb.get('html');
pb.set('text', HTMLOutput);

Supported Pasteboards

type description
NSStringPboardType plaintext
NSHTMLPboardType HTML
NSRTFPboardType RTF

License

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.

Analytics