Crates.io | pin |
lib.rs | pin |
version | 0.2.8 |
source | src |
created_at | 2020-06-01 01:26:40.026758 |
updated_at | 2023-05-09 00:15:58.513779 |
description | Pinboard (and Instapaper) client |
homepage | https://github.com/sp1ff/pin |
repository | https://github.com/sp1ff/pin |
max_upload_size | |
id | 248538 |
size | 172,724 |
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 a
, b
& 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
Type 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.8.tar.xz
tar xf pin-0.2.8.tar.xz
cd pin-0.2.8
./configure
make
make check
sudo make install
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:
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 sp1ff@pobox.com and in the issues.