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.
Permalink
Failed to load latest commit information.
Ruby
Terminal Share.xcodeproj
Terminal Share
LICENSE
README.md

README.md

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.

Ruby

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

Screenshot

Command Line

$ terminal-share -service NAME              \
                [-text text]                \
                [-image /path/to/image]     \
                [-video /path/to/video]     \
                [-url "http://example.com"]

Arguments

  • 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.

Example

$ 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"

Creator

Mattt Thompson (@mattt)

Credit

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.

License

terminal-share is available under the MIT license. See the LICENSE file for more info.