Skip to content

Keeply-link/keeply-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keeply-cli

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.


Installation

Homebrew (macOS and Linux) — recommended

brew tap keeply-link/keeply
brew install keeply

npm (requires Node.js 18+)

npm install -g @keeply-link/cli

From source

git clone https://github.com/keeply-link/keeply-cli
cd keeply-cli
npm install && npm run build
npm link

Setup

keeply login

This 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.


Commands

keeply login

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 in

keeply list · keeply ls

List 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 output

Options

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)

keeply search <query>

Search across titles, URLs, descriptions, and notes.

keeply search "rust async"
keeply search "machine learning" --short
keeply search "react hooks" --json

Options

Flag Description
-s, --short Compact one-line output
--json Raw JSON output

keeply get <id>

Fetch a single bookmark by its ID.

keeply get cm3x7abc123
keeply get cm3x7abc123 --json

keeply add <url>

Save 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 JSON

Options

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.


keeply update <id>

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 JSON

Options

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

keeply folders

List all your folders.

keeply folders
keeply folders --json

keeply tags

List all your tags, sorted by usage.

keeply tags
keeply tags --json

keeply config

Manage 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 credentials

Using with AI agents

All 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")]'

Output formats

Default (human-readable)

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
   ...

Short (--short)

  1. My Bookmark Title                         https://example.com/some/page
  2. Another Bookmark                          https://another.com

JSON (--json)

Standard JSON array of bookmark objects, suitable for piping to jq, AI agents, or any other tool.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages