Command-line interface for Keeply — read, save, search, and manage your bookmarks from the terminal.
Designed to work great standalone and as a data source for AI agents and shell scripts.
Requires Keeply Plus. CLI access is a Plus-plan feature.
brew tap keeply-link/keeply
brew install keeplynpm install -g @keeply-link/cligit clone https://github.com/keeply-link/keeply-cli
cd keeply-cli
npm install && npm run build
npm linkkeeply loginThis opens your browser to authenticate with your Keeply account. Once you approve, your session is saved automatically. Requires a Keeply Plus account.
# Check what's stored
keeply config show
# For CI / non-interactive environments, set an API key directly
keeply config set-key <your-api-key>Config is stored at ~/.config/keeply-cli/config.json.
Authenticate via browser. Opens app.keeply.tools to complete the OAuth flow, then saves your credentials locally.
keeply login # Open browser and authenticate
keeply login --force # Re-authenticate even if already logged inList your bookmarks with optional filters and pagination.
keeply list # All bookmarks, 20 per page
keeply list --folder "Reading List" # Filter by folder name
keeply list --folder <folder-id> # Filter by folder ID
keeply list --tag typescript # Filter by tag
keeply list --archived # Archived bookmarks only
keeply list --page 2 # Go to page 2
keeply list --limit 50 # 50 results per page
keeply list --limit 0 # No pagination, return all
keeply list --short # Compact one-line output
keeply list --json # Raw JSON outputOptions
| Flag | Description |
|---|---|
-f, --folder <name|id> |
Filter by folder name or ID |
-t, --tag <name> |
Filter by tag name |
-a, --archived |
Show archived bookmarks only |
-l, --limit <n> |
Results per page (default: 20, 0 = all) |
-p, --page <n> |
Page number (default: 1) |
-s, --short |
Compact one-line output |
--json |
Raw JSON (great for piping) |
Search across titles, URLs, descriptions, and notes.
keeply search "rust async"
keeply search "machine learning" --short
keeply search "react hooks" --jsonOptions
| Flag | Description |
|---|---|
-s, --short |
Compact one-line output |
--json |
Raw JSON output |
Fetch a single bookmark by its ID.
keeply get cm3x7abc123
keeply get cm3x7abc123 --jsonSave a new bookmark.
keeply add https://example.com
keeply add https://example.com --title "Example Site"
keeply add https://example.com --folder "Dev"
keeply add https://example.com --tags "web,tools,reference"
keeply add https://example.com --note "Check this out later"
keeply add https://example.com --json # Returns created bookmark as JSONOptions
| Flag | Description |
|---|---|
-t, --title <title> |
Bookmark title |
-n, --note <note> |
Personal note |
-f, --folder <name|id> |
Folder to save into |
--tags <tags> |
Comma-separated tag names (must already exist in Keeply) |
--json |
Output created bookmark as JSON |
Note: Tags must already exist in your Keeply account. Create new tags in the web app or browser extension.
Update an existing bookmark.
keeply update <id> --title "Better title"
keeply update <id> --url https://new-url.com
keeply update <id> --folder "Archive"
keeply update <id> --unfolder # Move to Unsorted
keeply update <id> --tags "rust,cli" # Replace all tags
keeply update <id> --archive
keeply update <id> --unarchive
keeply update <id> --json # Output updated bookmark as JSONOptions
| Flag | Description |
|---|---|
--url <url> |
New URL |
-t, --title <title> |
New title |
-n, --note <note> |
New note |
-f, --folder <name|id> |
Move to folder |
--unfolder |
Remove from folder (move to Unsorted) |
--tags <tags> |
Replace all tags (comma-separated names) |
--archive |
Mark as archived |
--unarchive |
Remove archived status |
--json |
Output updated bookmark as JSON |
List all your folders.
keeply folders
keeply folders --jsonList all your tags, sorted by usage.
keeply tags
keeply tags --jsonManage CLI configuration.
keeply config set-key <api-key> # Set an API key manually (for CI/scripts)
keeply config show # Show current config
keeply config clear # Remove stored credentialsAll commands support --json output for clean, machine-readable data.
# Give an AI agent your full bookmark list
keeply list --limit 0 --json | llm "what topics do I read most about?"
# Search and summarize
keeply search "python" --json | llm "summarize these links"
# Extract just URLs
keeply list --folder "To Read" --json | jq '.[].url'
# Save a bookmark from a script
URL="https://example.com"
TITLE=$(curl -s "$URL" | grep -oP '(?<=<title>)[^<]+')
keeply add "$URL" --title "$TITLE" --folder "Inbox"
# Find bookmarks modified recently and process them
keeply list --json | jq '[.[] | select(.updatedAt > "2026-01-01")]'1. My Bookmark Title
https://example.com/some/page
#typescript #tools
Note: Really useful reference
id: cm3x7abc123 · 3/15/2026
2. Another Bookmark
https://another.com
...
1. My Bookmark Title https://example.com/some/page
2. Another Bookmark https://another.com
Standard JSON array of bookmark objects, suitable for piping to jq, AI agents, or any other tool.