raindrop
SafeNotes & PKM
Raindrop.io bookmarks: search, list, add, organize with tags.
SKILL.md
# Raindrop.io Bookmarks
Manage bookmarks via the Raindrop.io API.
## Setup
```bash
# Get token from: https://app.raindrop.io/settings/integrations → "Create test token"
echo 'RAINDROP_TOKEN="your-token"' > ~/.config/raindrop.env
```
## Quick Start
```bash
# Search bookmarks
{baseDir}/scripts/raindrop.sh search "AI tools"
# List unsorted bookmarks
{baseDir}/scripts/raindrop.sh list -1 --limit 50
# Count unsorted
{baseDir}/scripts/raindrop.sh count -1
# Create collection and move bookmarks
{baseDir}/scripts/raindrop.sh create-collection "AI Coding"
{baseDir}/scripts/raindrop.sh move 12345 66016720
# Bulk move (efficient!)
{baseDir}/scripts/raindrop.sh bulk-move "123,456,789" 66016720
```
## Commands
### Reading
| Command | Description |
|---------|-------------|
| `whoami` | Show authenticated user |
| `collections` | List all collections with IDs |
| `list [ID]` | List bookmarks (default: 0 = all) |
| `count [ID]` | Count bookmarks in collection |
| `search QUERY [ID]` | Search bookmarks |
| `get ID` | Get bookmark details |
| `tags` | List all tags with counts |
| `list-untagged [ID]` | Find bookmarks without tags |
| `cache ID` | Get permanent copy (Pro only) |
### Writing
| Command | Description |
|---------|-------------|
| `add URL [ID]` | Add bookmark (default: -1 = Unsorted) |
| `delete ID` | Delete bookmark |
| `create-collection NAME` | Create new collection |
| `move ID COLLECTION` | Move bookmark to collection |
| `update ID [opts]` | Update tags/title/collection |
| `bulk-move IDS TARGET [SOURCE]` | Move multiple bookmarks (source defaults to -1/Unsorted) |
| `suggest URL` | Get AI-suggested tags/title |
### Options
| Flag | Description |
|------|-------------|
| `--json` | Raw JSON output |
| `--limit N` | Max results (default: 25) |
| `--page N` | Pagination (0-indexed) |
| `--delay MS` | Delay between API calls (rate limiting) |
| `--token TOKEN` | Override API token |
### Update Options
For the `update` command:
| Flag | Description |
|------|-------------|
| `--tags TAG1,TAG2` | Set tags (comma-separated) |
| `--title TITLE` | Set title |
| `--collection ID` | Move to collection |
### Collection IDs
- `0` = All bookmarks
- `-1` = Unsorted
- `-99` = Trash
- `N` = Specific collection (get IDs from `collections`)
## Examples
```bash
# List unsorted with pagination
{baseDir}/scripts/raindrop.sh list -1 --limit 50 --page 0
{baseDir}/scripts/raindrop.sh list -1 --limit 50 --page 1
# Create collection
{baseDir}/scripts/raindrop.sh create-collection "AI Coding"
# Output: Created: AI Coding / ID: 66016720
# Move single bookmark
{baseDir}/scripts/raindrop.sh move 1234567 66016720
# Update bookmark with tags and move
{baseDir}/scripts/raindrop.sh update 1234567 --tags "claude-code,workflow,tips" --collection 66016720
# Bulk move with rate limiting (100ms between calls)
{baseDir}/scripts/raindrop.sh bulk-move "123,456,789,101112" 66016720 --delay 100
# Find untagged bookmarks in unsorted
{baseDir}/scripts/raindrop.sh list-untagged -1 --limit 100
# Get JSON for scripting
{baseDir}/scripts/raindrop.sh list -1 --json --limit 50 | jq '.items[]._id'
# Count unsorted bookmarks
{baseDir}/scripts/raindrop.sh count -1
```
## Bulk Operations
For large batch operations, use `bulk-move` which uses the Raindrop batch API (up to 100 items per request):
```bash
# Get IDs from unsorted
ids=$({baseDir}/scripts/raindrop.sh list -1 --json --limit 100 | jq -r '[.items[]._id] | join(",")')
# Move all to collection
{baseDir}/scripts/raindrop.sh bulk-move "$ids" 66016720
```
## Rate Limiting
Raindrop API has rate limits. For bulk operations:
1. Use `--delay 100` (100ms between calls)
2. Use `bulk-move` instead of individual `move` calls
3. Process in batches of 50-100
## Direct API
For operations not covered:
```bash
source ~/.config/raindrop.env
# Update tags
curl -X PUT "https://api.raindrop.io/rest/v1/raindrop/ID" \
-H "Authorization: Bearer $RAINDROP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tags": ["tag1", "tag2"]}'
# Bulk update (up to 100 IDs)
curl -X PUT "https://api.raindrop.io/rest/v1/raindrops" \
-H "Authorization: Bearer $RAINDROP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ids": [123, 456, 789], "collectionId": 12345}'
```
API docs: https://developer.raindrop.io/
More in Notes & PKM
apple-mail
SafeApple Mail.app integration for macOS. Read inbox, search emails, send emails, reply.
apple-notes
SafeManage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move.
bear-notes
SafeCreate, search, and manage Bear notes via grizzly CLI.
better-notion
SafeFull CRUD for Notion pages, databases, and blocks. Create, read, update, delete, search, and query.