Skip to content

ELLIOTTCABLE/pin-cushion

Master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

pin-cushion Maintenance status: Last active in 2018Versions & releasespin-cushion on the NPM registryOpen-source licensing detailsChat on FreenodeTwitter followers

A simple command-line [Pinboard.in][] client:

pin-cushion [verb] [arguments]
pin-cushion posts/recent
pin-cushion posts/suggest --url "http://www.ponylang.org"

pb-rename() {
   pin-cushion tags/rename --old "$1" --new "$2"
}

You get the idea. To use it, you must first record [your authentication token][auth] for the API:

npm install -g pin-cushion
pin-cushion --auth elliottcable:DEADBEEF1234567890

This only provides abstracted access to the Pinboard API as defined on their site:

https://pinboard.in/api

Any Pinboard API method described there may be passed as the verb; and all described arguments are accepted as command-line flags. These are not stored in this library; as your command-line instructions are simply converted directly to API calls; so this tool probably doesn't need much in the form of maintenance. :P

[Pinboard.in]: <https://pinboard.in/ [auth]: https://pinboard.in/settings/password

Piping and JSON output

If not explicitly passed a --format parameter, then pin-cushion will spit out a formatted object-description of the response, intended for human consumption. If a format is explicitly provided, then the response from the server will be printed, unmodified; this is particularly useful with the jq command-line JSON manipulation tool:

pin-cushion posts/recent --format=json | jq                      # Simply pretty-print
pin-cushion posts/recent --format=json | jq '.posts[] | .href'   # Extract URLs of recent pins

This obviously lends itself to constructing complex shell pipes. Personally, I suggest aliasing this:

pc() { pin-cushion "$1" --format=json "$@" ;}

About

Simple, maintained CLI interface to the Pinboard.in API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published