|0.2.6||Nov 12, 2022|
|0.2.5||Oct 17, 2022|
|0.2.1||Sep 25, 2022|
|0.1.3||Aug 3, 2021|
|0.1.2||Jun 18, 2020|
#1086 in Command line utilities
40 downloads per month
Table of Contents
Pinboard is "social bookmarking for introverts"– a social bookmarking web service along the lines of (the now defunct) del.icio.us. pin is a command-line client for Pinboard. It is by no means complete; it supports a few operations which I have found useful in my workflow. Here are a few examples:
You can send a link
http://foo.com/bar to Pinboard with title "splat" & tags
c like so:
pin send -t a -t b -t c "http://foo.com/bar | splat"
You can setup canned tag clouds you use repeatedly & refer to them by name:
$> cat ~/.pin token = "you:XXX" [targets] [targets.frobnitz] tags = ["@review", "frobinate"] read_later = true ... # This link will get tags @review & frobinate, and have the "read later" flag set: $> pin send -r frobnitz "http://foo.com/bar | splat"
You can send the link to Instapaper at the same time:
$> pin send -r frobnitz --with-instapaper "http://foo.com/bar | splat"
I use it for curating my tags:
$> pin get-tags | Tag | Use Count | +--------------------------------+-----------+ | flapdoodl | 1 | | flapdoodle | 10000 | ... # Hmmm... likely a mis-spelling $> pin rename-tag flapdoodl flapdoodle
or, say, deleting all links with a given combination of tags when they're no longer useful:
ping delete old-company+jira
pin --help for a description of all flags & sub-commands.
pin is GPL v3 software.
The Rust toolchain (Rust version 1.57 at minimum).
This crate is available on crates.io, but you can also download an Autotools tarball:
cd /tmp curl -O https://www.unwoundstack.com/dist/pin-0.2.6.tar.xz tar xf pin-0.2.6.tar.xz cd pin-0.2.6 ./configure make make check sudo make install
Status & Roadmap
pin is still early code; I have chosen the version number (0.2) in the hopes of conveying that this is a preliminary release. pinboard.py provides far more complete coverage of the Pinboard API, albeit at the cost of forcing users to navigate Python's package management. Still, pin provides an interface that is task-oriented, not API-oriented. For instance, deleting all links with a given tag combination is actually a complex operation; one needs to:
- ask the API for all links that have that combination of tags
- delete those links one at a time (because that is what the API allows)
- while respecting the API's rate limits
In other words, this package is intended to provide an interface organized around user operations, not API endpoints.
Bugs, comments, problems, PRs, feature requests &c welcome at email@example.com and in the issues.