Command Line & Ruby Interface to Mac OS X Sharing Services
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Terminal Share.xcodeproj
Terminal Share


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: "")


Command Line

$ terminal-share -service NAME              \
                [-text text]                \
                [-image /path/to/image]     \
                [-video /path/to/video]     \
                [-url ""]


  • service: (Required) A short string corresponding to the name of a particular NSSharingService to be used. Available values:
    • twitter - NSSharingServiceNamePostOnTwitter
    • sinaweibo - NSSharingServiceNamePostOnSinaWeibo
    • email - NSSharingServiceNameComposeEmail
    • message - NSSharingServiceNameComposeMessage
    • airdrop - NSSharingServiceNameSendViaAirDrop
    • readinglist - NSSharingServiceNameAddToSafariReadingList
    • iphoto - NSSharingServiceNameAddToIPhoto
    • aperture - NSSharingServiceNameAddToAperture
    • facebook - NSSharingServiceNamePostOnFacebook
    • flickr - NSSharingServiceNamePostImageOnFlickr
    • vimeo - NSSharingServiceNamePostVideoOnVimeo
    • youku - NSSharingServiceNamePostVideoOnYouku
    • tudou - 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 ""


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.