SaveIt CLI
One-command access to your SaveIt bookmarks from any terminal via `npx saveit`.
SaveIt CLI
The saveit npm package ships with a saveit executable. No clone, no build - just npx.
npx saveit auth set <your-api-key>
npx saveit bookmarks list --tags dev,ai --limit 10 --json
Install
You don't have to. npx saveit ... downloads on demand. If you'd rather have a permanent binary on your PATH:
npm install -g saveit
# or
pnpm add -g saveit
Then drop the npx prefix from every example below.
Authenticate
Create an API key at saveit.now/account/keys, then save it:
npx saveit auth set <your-saveit-api-key>
npx saveit auth test
The token is stored at ~/.config/tokens/saveit.txt with chmod 600. The CLI also reads SAVEIT_API_KEY from the environment - useful for CI:
export SAVEIT_API_KEY=<your-saveit-api-key>
npx saveit bookmarks list --json
| Command | Description |
|---|---|
saveit auth set <token> |
Save the token (chmod 600) |
saveit auth show |
Show masked token |
saveit auth show --raw |
Show full token (for piping) |
saveit auth test |
Verify token works |
saveit auth remove |
Delete the saved token |
Bookmarks
# List + search
saveit bookmarks list
saveit bookmarks list --query "next.js" --limit 5
saveit bookmarks list --tags design,ux --json
saveit bookmarks list --types ARTICLE,YOUTUBE --special UNREAD
saveit bookmarks list --cursor <cursor> --limit 50
# Create
saveit bookmarks create --url "https://example.com"
saveit bookmarks create --url "https://example.com" --metadata '{"source":"slack"}'
# Random unopened bookmark (also marks it as opened)
saveit bookmarks random
# Delete
saveit bookmarks delete bm_1234567890
| Flag | Commands | Description |
|---|---|---|
--query <q> |
list | Full-text search |
--tags <a,b> |
list | Comma-separated tag filter |
--types <t1,t2> |
list | VIDEO, ARTICLE, PAGE, IMAGE, YOUTUBE, TWEET, PDF, PRODUCT |
--special <s> |
list | READ, UNREAD, or STAR |
--limit <n> |
list | Page size, 1-100, default 20 |
--cursor <c> |
list | Pagination cursor (from previous nextCursor) |
--fields <a,b> |
list | Columns to render in text/csv output |
--url <url> |
create | URL to save (required) |
--transcript <t> |
create | Optional transcript text |
--metadata <json> |
create | Optional JSON object |
Tags
saveit tags list
saveit tags list --limit 100 --json
saveit tags list --cursor <cursor>
Global flags
Available on every command:
| Flag | Description |
|---|---|
--json |
Output as JSON (recommended for scripts) |
--format <text|json|csv|yaml> |
Output format (default: text) |
--verbose |
Print debug info to stderr |
--no-color |
Disable ANSI colors |
--no-header |
Strip headers from text/csv output |
Scripting
Pipe to jq, hand to xargs, etc:
# Print every URL in your unread queue (NUL-delimited, safe with weird URLs)
saveit bookmarks list --special UNREAD --limit 100 --json \
| jq -j '.data[] | .url, "