| name | raindrop |
| description | RaindropCLI skill for managing Raindrop.io bookmarks via the `raindrop` CLI. Trigger when the user wants to: search or find bookmarks, add/save a URL, update or tag a bookmark, delete a bookmark, organize or merge collections, rename or delete tags, batch-update multiple items. Also trigger for: "find my bookmarks", "save this link", "add to raindrop", "search raindrop", "manage collections", "clean up tags", "star/favorite a bookmark".
|
| license | MIT |
| compatibility | Requires Bun runtime (v1.0+) and Raindrop.io account with API token |
| metadata | {"author":"kyoji2","homepage":"https://github.com/kyoji2/raindrop-cli","version":"1.1"} |
Raindrop CLI Assistant
Expert guidance for interacting with the RaindropCLI - a Bun-powered, AI-native CLI for managing your Raindrop.io bookmarks.
Overview
The RaindropCLI provides comprehensive command-line access to Raindrop.io's bookmark manager with AI-friendly output formats. All commands support:
- Output formats:
toon (token-optimized, default) or json (via --format json)
- Dry-run mode: Test commands safely with
--dry-run
- Schema validation: All API responses validated with Zod schemas
Requirements & Installation
Prerequisites
Installation
Option 1: Install from npm (recommended)
bun install -g @kyoji2/raindrop-cli
PATH note: After a global bun install, the binary lands in ~/.bun/bin. If your shell doesn't pick it up automatically, add this to your shell profile and reload:
export PATH="$HOME/.bun/bin:$PATH"
Option 2: Install from source
git clone https://github.com/kyoji2/raindrop-cli.git
cd raindrop-cli
bun install
bun link
Verify installation:
raindrop --version
Quick Start
Setup complete when: raindrop whoami returns your name and email — that's the primary successful outcome of onboarding.
raindrop login [token]
raindrop whoami
raindrop logout
raindrop context
raindrop structure
raindrop search "query"
raindrop add <url>
raindrop get <id>
raindrop patch <id> '<json>'
raindrop delete <id>
Authentication & Setup
Login
raindrop login
raindrop login "test_..."
Getting an API token:
- Visit https://app.raindrop.io/settings/integrations
- Create a new app or use existing
- Copy the test token
Check Current User
raindrop whoami
Account Context
raindrop context
raindrop structure
Working with Bookmarks
Search Bookmarks
raindrop search "query"
raindrop search "query" -c 12345
raindrop search "query" -l 100
raindrop search "query" --pretty
Search Syntax & Operators
Raindrop.io supports powerful search operators for precise filtering:
Basic Text Search:
apple iphone - Search across title, description, domain, or content
"exact phrase" - Match exact phrases
-excluded - Exclude terms (e.g., javascript -react)
match:OR - Boolean OR (e.g., python match:OR java)
Tag Search:
#tag - Find items with specific tag
#"multi word tag" - Multi-word tags
#tag1 #tag2 - Multiple tags (AND logic)
notag:true - Find untagged items
Field-Specific Search:
title:keyword - Search only in titles
excerpt:keyword - Search in descriptions
note:keyword - Search in user notes
link:domain.com - Search URLs/domains
Type Filters:
type:link - Web links
type:article - Articles
type:image - Images
type:video - Videos
type:document - Documents
type:audio - Audio files
Date Filters:
created:2024-01-15 - Exact creation date
created:>2024-01-01 - Created after date
created:<2024-12-31 - Created before date
lastUpdate:2024-01-15 - Last modified date
Status & Special Filters:
❤️ or important:true - Starred/favorite items
file:true - Items with uploaded files
cache.status:ready - Items with permanent copies
reminder:true - Items with reminders
Examples:
raindrop search "javascript notag:true type:article"
raindrop search "❤️ created:>2024-01-01"
raindrop search "title:API -REST"
raindrop search '#"web development" type:article'
raindrop search "link:github.com"
raindrop search "#tutorial type:video created:>2024-01-01" -l 20
Get Bookmark Details
raindrop get 123456
Add Bookmarks
raindrop add "https://example.com"
raindrop add "https://example.com" -t "My Title"
raindrop add "https://example.com" --tags "tag1,tag2"
raindrop add "https://example.com" -c 12345
raindrop add "https://example.com" -t "Title" --tags "dev,api" -c 12345
Update Bookmarks
raindrop patch 123456 '{"title": "New Title"}'
raindrop patch 123456 '{"tags": ["new", "tags"]}'
raindrop patch 123456 '{"collection": {"$id": 54321}}'
raindrop patch 123456 '{"important": true}'
Common fields:
title: Bookmark title
excerpt: Description/notes
tags: Array of tags
important: Boolean star/favorite
collection.$id: Move to collection
Delete Bookmarks
raindrop delete 123456
AI Features
raindrop suggest 123456
raindrop wayback "https://..."
Working with Collections
View Collections
raindrop structure
raindrop collection get 12345
Create Collections
raindrop collection create "My Collection"
raindrop collection create "Work" --parent 12345
raindrop collection create "Public Links" --public
raindrop collection create "Private" --private
raindrop collection create "Grid View" --view grid
View types: list, simple, grid, masonry
Update Collections
raindrop collection update 12345 '{"title": "New Name"}'
raindrop collection update 12345 '{"view": "grid"}'
raindrop collection update 12345 '{"public": true}'
Organize Collections
raindrop collection reorder title
raindrop collection reorder -title
raindrop collection reorder -count
raindrop collection expand-all true
raindrop collection expand-all false
Merge Collections
raindrop collection merge "12345,67890" 99999
Customize Collections
raindrop collection cover 12345 "/path/to/image.jpg"
raindrop collection cover 12345 "https://example.com/img.jpg"
raindrop collection set-icon 12345 "rocket"
Clean Up Collections
raindrop collection clean
raindrop collection empty-trash
raindrop collection delete 12345
raindrop collection delete-multiple "12345,67890"
Working with Tags
View Tags
raindrop structure
Manage Tags
raindrop tag rename "old-tag" "new-tag"
raindrop tag rename "old" "new" -c 12345
raindrop tag delete "tag1" "tag2" "tag3"
raindrop tag delete "unwanted" -c 12345
Batch Operations
Batch Update
raindrop batch update '{"important": true}' --ids "1,2,3"
raindrop batch update '{"tags": ["work"]}' --ids "1,2,3" -c 12345
Batch Delete
raindrop batch delete --ids "123456,789012"
raindrop batch delete --ids "1,2,3" -c 12345
Development & Schema
Schema Information
raindrop schema
This outputs complete Zod schemas for:
- Raindrop (bookmark)
- Collection
- User
- Tag
- And all API response types
Global Options
All commands support:
--dry-run
--format json
--format toon
-v, --version
Output Formats
TOON (Default)
Token-optimized format designed for AI agents:
field_name: value
another_field: value
nested.field: value
JSON
Standard JSON output with --format json:
{
"field_name": "value",
"nested": {"field": "value"}
}
Search response shape: raindrop search --format json returns a wrapped object, not a plain array:
{ "items": [...], "count": 50 }
Access bookmarks via .items — e.g. in Python: result["items"], in jq: .items[].
Using with Python / scripts
When calling the CLI from a Python script via subprocess, environment variables aren't inherited from the shell automatically. Pass them explicitly:
import subprocess, os
token = os.environ["API_KEY"]
result = subprocess.run(
["raindrop", "search", "query", "--format", "json"],
env={**os.environ, "RAINDROP_TOKEN": token},
capture_output=True, text=True
)
Alternatively, source your .env before running the script: source .env && python3 script.py.
Best Practices
- Start with context: Run
raindrop context to understand the account
- Use powerful search: Leverage operators like
notag:true, type:article, date filters, and field-specific search to find exactly what you need
- Search before adding: Use
raindrop search with link:domain.com to avoid duplicates
- Use dry-run: Test destructive operations with
--dry-run first
- Leverage AI features: Use
raindrop suggest for intelligent tagging
- Combine filters: Mix tags, types, dates, and text for precise searches (e.g.,
#tutorial type:video created:>2024-01-01)
- Check schema: Use
raindrop schema when building automation
Error Handling
The CLI provides helpful error messages with hints:
- 401 Unauthorized: Run
raindrop login to authenticate
- 404 Not Found: Verify the ID is correct
- Invalid JSON: Ensure JSON is properly escaped for shell
All errors include:
- Error message
- HTTP status code
- Hint for resolution (when available)
Examples
Advanced Search Queries
raindrop search "notag:true" -c -1
raindrop search "javascript tutorial type:article created:>2024-01-01"
raindrop search "link:github.com ❤️"
raindrop search "python type:video -beginner"
raindrop search "title:API link:medium.com type:article"
raindrop search "#javascript #tutorial #advanced" -l 50
raindrop search "note:TODO"
raindrop search "type:document file:true created:>2024-01-01"
Organize New Bookmarks
raindrop search "notag:true" -c -1 --pretty
raindrop suggest 123456
raindrop patch 123456 '{"tags": ["javascript", "tutorial", "react"]}'
raindrop patch 123456 '{"important": true}'
Clean Up Workflow
raindrop structure
raindrop search "link:example.com" -l 100
raindrop collection merge "123,456" 789
raindrop collection clean
raindrop tag rename "Dev" "development"
raindrop tag rename "JS" "javascript"
raindrop tag rename "py" "python"
raindrop tag delete "old-tag" "deprecated"
Bulk Tag Update
raindrop search "javascript -#programming" -l 100
raindrop batch update '{"tags": ["javascript", "programming"]}' --ids "1,2,3,4,5"
raindrop search "#tutorial" -l 50
raindrop batch update '{"important": true}' --ids "10,20,30"
Content Curation
raindrop search "type:article created:>2024-01-10 created:<2024-01-17"
raindrop search "#inspiration type:image"
raindrop search "type:video excerpt:" -l 100
raindrop search "created:<2023-01-01" -c 12345
raindrop batch update '{"collection": {"$id": 99999}}' --ids "1,2,3"
Resources
See references/commands.md for detailed command reference and API schema information.