All Projects → mattt → Terminal Share

mattt / Terminal Share

Licence: mit
Command Line & Ruby Interface to Mac OS X Sharing Services

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].