Instapaper CLI
Overview
Use this skill to handle Instapaper operations via the ip CLI (which must be installed and available in PATH), especially when you need reliable automation, structured output, or troubleshooting guidance.
Install the CLI
- Go install:
go install github.com/vburojevic/instapaper-cli/cmd/ip@latest - Homebrew:
brew tap vburojevic/tap && brew install instapaper-cli - From source:
go build ./cmd/ip(run as./ip)
Workflow (fast path)
Verify setup
- Ensure
INSTAPAPER_CONSUMER_KEYandINSTAPAPER_CONSUMER_SECRETare set or passed during login. - Prefer
--password-stdinfor auth; never store the password. - Run
ip doctor --json(orip auth status) before long jobs.
- Ensure
Pick output format for automation
- Default is
--ndjson(streaming, one object per line). - Use
--jsonfor single objects or compact arrays. - Use
--plainfor stable, line-oriented text. - Add
--stderr-jsonfor structured errors and--progress-jsonfor long runs.
- Default is
Read data deterministically
- Use
listorexportwith--cursor/--cursor-diror--since/--untilbounds. - Use
--updated-sincefor incremental sync. - Use
--selectfor client-side filtering when the API does not support it.
- Use
Mutate safely
- Use
--dry-runor--idempotentwhen possible. - For bulk actions, use
--idsor--stdinand consider--batch. - Deletions require explicit confirmation flags.
- Use
Handle extras
- Text view:
ip textfor article HTML. - Highlights:
ip highlights list/add/delete. - Folders:
ip folders list/add/delete/order.
- Text view:
Troubleshoot
- Use
--debugfor request timing and status. - Use
--stderr-jsonand mapexit_codeto action.
- Use
Command reference
Read these when you need exact flags, formats, or examples:
references/commands.md: command-by-command examples for auth, list/export/import, mutations, folders, highlights, and text.references/output-and-sync.md: output formats, progress streams, cursor/bounds syntax, and filtering.references/errors.md: exit codes and structured stderr error codes.
Guardrails
- Avoid
--format tablefor parsing; it is for humans only. - Use
--outputor--output-dirfor large exports to avoid stdout pressure. - Prefer
--password-stdinon Windows to avoid echoing passwords.