{"id":13572013,"url":"https://github.com/ELLIOTTCABLE/pin-cushion","last_synced_at":"2025-04-04T09:31:26.661Z","repository":{"id":57324372,"uuid":"49683939","full_name":"ELLIOTTCABLE/pin-cushion","owner":"ELLIOTTCABLE","description":"Simple, maintained CLI interface to the Pinboard.in API.","archived":false,"fork":false,"pushed_at":"2018-02-22T09:12:46.000Z","size":12,"stargazers_count":126,"open_issues_count":4,"forks_count":2,"subscribers_count":7,"default_branch":"Master","last_synced_at":"2024-04-15T00:25:01.295Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ELLIOTTCABLE.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":"COPYING.text","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-15T00:13:47.000Z","updated_at":"2024-01-11T15:50:01.000Z","dependencies_parsed_at":"2022-09-26T22:22:23.215Z","dependency_job_id":null,"html_url":"https://github.com/ELLIOTTCABLE/pin-cushion","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELLIOTTCABLE%2Fpin-cushion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELLIOTTCABLE%2Fpin-cushion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELLIOTTCABLE%2Fpin-cushion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELLIOTTCABLE%2Fpin-cushion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ELLIOTTCABLE","download_url":"https://codeload.github.com/ELLIOTTCABLE/pin-cushion/tar.gz/refs/heads/Master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247153160,"owners_count":20892611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T14:01:11.255Z","updated_at":"2025-04-04T09:31:21.648Z","avatar_url":"https://github.com/ELLIOTTCABLE.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","\\*nix/\\*nux"],"sub_categories":["Productivity"],"readme":"`pin-cushion` \u003ca target=\"_blank\" href=\"https://github.com/ELLIOTTCABLE/pin-cushion/pulse/monthly\"\u003e\u003cimg alt='Maintenance status: Last active in 2018' src=\"https://img.shields.io/maintenance/yes/2018.svg\"\u003e\u003c/a\u003e\u003cimg src=\"http://elliottcable.s3.amazonaws.com/p/8x8.png\"\u003e\u003ca target=\"_blank\" href=\"https://github.com/ELLIOTTCABLE/pin-cushion/releases\"\u003e\u003cimg alt='Versions \u0026 releases' src=\"https://img.shields.io/npm/v/pin-cushion.svg?label=release\"\u003e\u003c/a\u003e\u003cimg src=\"http://elliottcable.s3.amazonaws.com/p/8x8.png\"\u003e\u003ca target=\"_blank\" href=\"https://npmjs.com/package/pin-cushion\"\u003e\u003cimg alt='pin-cushion on the NPM registry' src=\"https://img.shields.io/npm/dt/pin-cushion.svg?label=npm+installs\"\u003e\u003c/a\u003e\u003cimg src=\"http://elliottcable.s3.amazonaws.com/p/8x8.png\"\u003e\u003ca target=\"_blank\" href=\"COPYING.text\"\u003e\u003cimg alt='Open-source licensing details' src=\"https://img.shields.io/badge/license-ISC-blue.svg\"\u003e\u003c/a\u003e\u003cimg src=\"http://elliottcable.s3.amazonaws.com/p/8x8.png\"\u003e\u003ca target=\"_blank\" href=\"http://ell.io/IRC\"\u003e\u003cimg alt='Chat on Freenode' src=\"https://img.shields.io/badge/chat-IRC-blue.svg\"\u003e\u003c/a\u003e\u003cimg src=\"http://elliottcable.s3.amazonaws.com/p/8x8.png\"\u003e\u003ca target=\"_blank\" href=\"http://twitter.com/ELLIOTTCABLE\"\u003e\u003cimg alt='Twitter followers' src=\"https://img.shields.io/twitter/follow/ELLIOTTCABLE.svg?style=flat\u0026label=followers\u0026logo=twitter\u0026color=blue\"\u003e\u003c/a\u003e\n=============\nA simple command-line [Pinboard.in][] client:\n\n    pin-cushion [verb] [arguments]\n    pin-cushion posts/recent\n    pin-cushion posts/suggest --url \"http://www.ponylang.org\"\n\n    pb-rename() {\n       pin-cushion tags/rename --old \"$1\" --new \"$2\"\n    }\n\nYou get the idea. To use it, you must first record [your authentication token][auth] for the API:\n\n    npm install -g pin-cushion\n    pin-cushion --auth elliottcable:DEADBEEF1234567890\n\nThis only provides abstracted access to the Pinboard API as defined on their site:\n\u003e ### \u003chttps://pinboard.in/api\u003e\n\nAny Pinboard API method described there may be passed as the `verb`; and all described arguments are\naccepted as command-line `flags`. These are not stored in this library; as your command-line\ninstructions are simply converted directly to API calls; so this tool probably doesn't need much in\nthe form of maintenance. `:P`\n\n   [Pinboard.in]: \u003chttps://pinboard.in/\n   [auth]: \u003chttps://pinboard.in/settings/password\u003e\n\n### Piping and JSON output\nIf not explicitly passed a `--format` parameter, then `pin-cushion` will spit out a formatted\nobject-description of the response, intended for human consumption. If a format is explicitly\nprovided, then the response from the server will be printed, unmodified; this is particularly useful\nwith the [`jq`](https://stedolan.github.io/jq/) command-line JSON manipulation tool:\n\n    pin-cushion posts/recent --format=json | jq                      # Simply pretty-print\n    pin-cushion posts/recent --format=json | jq '.posts[] | .href'   # Extract URLs of recent pins\n\nThis obviously lends itself to constructing complex shell pipes. Personally, I suggest aliasing\nthis:\n\n    pc() { pin-cushion \"$1\" --format=json \"$@\" ;}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FELLIOTTCABLE%2Fpin-cushion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FELLIOTTCABLE%2Fpin-cushion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FELLIOTTCABLE%2Fpin-cushion/lists"}