Mac OS X Sharing Services... As A Service
Mac OS X 10.8 Mountain Lion introduced built-in sharing. Access to this system-level feature is provided through NSSharingService.
It does everything from posting to Twitter, Facebook, Flickr, Vimeo, & YouTube, to adding content to your Safari Reading List or iPhoto or Aperture Library, as well as sending files over airdrop or e-mail. It even supports Chinese web services like Sina Weibo, Tu Dou, & YouKu.
terminal-share extends access to these APIs by proxying through a simple command-line application. Normally, Apple would provide such a Unix command-line interface through a Foundation Tool.
$ gem install terminal-share
This will also install the terminal-share executable.
require 'terminal-share'
TerminalShare.share(:twitter, text: "This was shared from the command-line, courtesy of terminal-share, by @mattt", url: "https://github.com/mattt/terminal-share")$ terminal-share -service NAME \
[-text text] \
[-image /path/to/image] \
[-video /path/to/video] \
[-url "http://example.com"]
service: (Required) A short string corresponding to the name of a particularNSSharingServiceto be used. Available values:twitter-NSSharingServiceNamePostOnTwittersinaweibo-NSSharingServiceNamePostOnSinaWeiboemail-NSSharingServiceNameComposeEmailmessage-NSSharingServiceNameComposeMessageairdrop-NSSharingServiceNameSendViaAirDropreadinglist-NSSharingServiceNameAddToSafariReadingListiphoto-NSSharingServiceNameAddToIPhotoaperture-NSSharingServiceNameAddToAperturefacebook-NSSharingServiceNamePostOnFacebookflickr-NSSharingServiceNamePostImageOnFlickrvimeo-NSSharingServiceNamePostVideoOnVimeoyouku-NSSharingServiceNamePostVideoOnYoukutudou-NSSharingServiceNamePostVideoOnTudou
text: (optional) Text to be shared.image: (optional) File path to an image to be shared.video: (optional) File path to a video to be shared.url: (optional) URL to be shared.
Not all services support sharing of all types of content. See the NSSharingService Documentation for additional guidelines.
$ terminal-share -service twitter \
-text "This was shared from the command-line, \
courtesy of terminal-share, by @mattt" \
-url "https://github.com/mattt/terminal-share"
Mattt Thompson (@mattt)
Thanks to Eloy Durán for his work on terminal-notifier, which was used as inspiration and a guideline for how to use the Script Bridge APIs.
terminal-share is available under the MIT license. See the LICENSE file for more info.
