Manage Raindrop.io bookmarks, collections, tags, and highlights via API. Use when user mentions raindrop, bookmarks, saving links, organizing URLs, bookmark collections, or web highlights.

1 stars
0 forks
Shell
2 views

SKILL.md


name: raindrop description: Manage Raindrop.io bookmarks, collections, tags, and highlights via API. Use when user mentions raindrop, bookmarks, saving links, organizing URLs, bookmark collections, or web highlights.

Raindrop.io API Skill

Manage bookmarks via Raindrop.io REST API.

Prerequisites

User must have RAINDROP_TOKEN env var set. If not configured, instruct them to:

  1. Create app at https://app.raindrop.io/settings/integrations
  2. Generate test token
  3. Add export RAINDROP_TOKEN="..." to ~/.zshrc.local

Authentication

All requests require:

Authorization: Bearer $RAINDROP_TOKEN

Base URL

https://api.raindrop.io/rest/v1/

Helper Script

Use scripts/raindrop.sh for API calls:

./scripts/raindrop.sh GET /collections
./scripts/raindrop.sh POST /raindrop '{"link":"https://example.com","pleaseParse":{}}'
./scripts/raindrop.sh PUT /raindrop/123 '{"tags":["new-tag"]}'
./scripts/raindrop.sh DELETE /raindrop/123

Quick Reference

Collections

Action Method Endpoint
List root GET /collections
List children GET /collections/childrens
Get one GET /collection/{id}
Create POST /collection
Update PUT /collection/{id}
Delete DELETE /collection/{id}

Raindrops (Bookmarks)

Action Method Endpoint
List GET /raindrops/{collectionId}
Get one GET /raindrop/{id}
Create POST /raindrop
Update PUT /raindrop/{id}
Delete DELETE /raindrop/{id}
Search GET /raindrops/0?search=...

Special collection IDs: 0 = all, -1 = unsorted, -99 = trash

Tags

Action Method Endpoint
List all GET /tags
List in collection GET /tags/{collectionId}
Rename PUT /tags/{collectionId}
Delete DELETE /tags/{collectionId}

Highlights

Action Method Endpoint
List all GET /highlights
In collection GET /highlights/{collectionId}
Add/Update/Remove PUT /raindrop/{id}

Colors: blue, brown, cyan, gray, green, indigo, orange, pink, purple, red, teal, yellow

Common Operations

Create bookmark with auto-parse

./scripts/raindrop.sh POST /raindrop '{
  "link": "https://example.com",
  "collection": {"$id": 12345},
  "tags": ["tag1", "tag2"],
  "pleaseParse": {}
}'

Search bookmarks

./scripts/raindrop.sh GET '/raindrops/0?search=keyword&sort=-created'

Search operators:

  • #tag - by tag
  • type:article - by type (link, article, image, video, document, audio)
  • domain:example.com - by domain
  • created:>2024-01-01 - by date
  • important:true - favorites only

Create collection

./scripts/raindrop.sh POST /collection '{
  "title": "My Collection",
  "public": false
}'

Add highlight to bookmark

./scripts/raindrop.sh PUT /raindrop/123 '{
  "highlights": [{"text": "highlighted text", "color": "yellow", "note": "my note"}]
}'

Bulk tag bookmarks

./scripts/raindrop.sh PUT /raindrops/0 '{
  "ids": [1, 2, 3],
  "tags": ["new-tag"]
}'

Export collection

curl -s "https://api.raindrop.io/rest/v1/raindrops/{collectionId}/export.csv" \
  -H "Authorization: Bearer $RAINDROP_TOKEN" > bookmarks.csv

Formats: csv, html, zip

Rate Limits

120 requests/minute. Check headers: X-RateLimit-Limit, RateLimit-Remaining, X-RateLimit-Reset

Detailed Reference

See references/API-REFERENCE.md for complete endpoint documentation.

README

Raindrop.io Agent Skill

Manage your Raindrop.io bookmarks with AI assistants.

Save links, organize collections, search bookmarks, add highlights—all through natural language.

Features

  • Bookmarks — Create, search, update, bulk edit, import/export
  • Collections — Organize, nest, share with collaborators
  • Tags — Add, rename, merge across bookmarks
  • Highlights — Save annotated snippets with colors
  • Multi-client — Works with Claude Code, Codex, Amp, OpenCode

Quick Start

# 1. Get token from Raindrop
#    https://app.raindrop.io/settings/integrations
#    → Create app → Create test token

# 2. Add to shell
echo 'export RAINDROP_TOKEN="your_token"' >> ~/.zshrc.local
source ~/.zshrc

# 3. Install (Claude Code / Amp / OpenCode)
git clone https://github.com/gmickel/raindrop-skill ~/.claude/skills/raindrop

# 3. Install (Codex)
git clone https://github.com/gmickel/raindrop-skill ~/.codex/skills/raindrop

# 4. Use it
"Save this article to my Reading collection"
"Search my bookmarks for React hooks"
"List all tags in my Dev collection"

Setup

1. Create Raindrop App

  1. Go to app.raindrop.io/settings/integrations
  2. Click Create new app
  3. Fill in:
    • Name: AI Assistant (or anything)
    • Redirect URI: http://localhost (required, not used)
  4. Click Create

2. Get Test Token

  1. Open your app settings
  2. Click Create test token
  3. Copy the token

3. Configure Shell

# Add to ~/.zshrc.local or ~/.bashrc
export RAINDROP_TOKEN="your_test_token_here"

4. Verify

curl -s "https://api.raindrop.io/rest/v1/user" \
  -H "Authorization: Bearer $RAINDROP_TOKEN" | jq .fullName

Why Test Tokens?

We use Raindrop's test token + environment variable approach because:

  • Standard pattern — Same as GH_TOKEN, ANTHROPIC_API_KEY, etc.
  • No expiration — Test tokens are permanent (OAuth tokens expire in 2 weeks)
  • No OAuth dance — No redirect URI, no token refresh logic
  • Subprocess-friendly — Env vars are inherited by agents and scripts

For personal/CLI use, this is the accepted approach. Store in .zshrc.local (not committed to dotfiles) and you're set.

Want more security? Use 1Password CLI or macOS Keychain:

export RAINDROP_TOKEN=$(op read "op://Private/Raindrop/token")

Installation

Claude Code

# User-level (all projects)
git clone https://github.com/gmickel/raindrop-skill ~/.claude/skills/raindrop

# Project-level (single repo)
git clone https://github.com/gmickel/raindrop-skill .claude/skills/raindrop

Codex CLI

# User-level
git clone https://github.com/gmickel/raindrop-skill ~/.codex/skills/raindrop

# Project-level
git clone https://github.com/gmickel/raindrop-skill .codex/skills/raindrop

Amp / OpenCode

Both fall back to .claude/skills/:

git clone https://github.com/gmickel/raindrop-skill ~/.claude/skills/raindrop

See docs/ for detailed installation guides.


Usage Examples

Once installed, just ask:

Task Example
Save link "Save https://example.com to my Dev collection"
Search "Find bookmarks about TypeScript"
List "Show my collections"
Tag "Add #reading tag to my last 5 bookmarks"
Highlight "Show highlights from my Research collection"
Export "Export my bookmarks as CSV"

Files

raindrop-skill/
├── SKILL.md              # Main skill instructions
├── scripts/
│   └── raindrop.sh       # API helper
├── references/
│   └── API-REFERENCE.md  # Complete API docs
└── docs/
    ├── INSTALL-CLAUDE-CODE.md
    ├── INSTALL-CODEX.md
    └── INSTALL-OTHER-CLIENTS.md

API Coverage

Resource Operations
Raindrops CRUD, search, bulk ops, file upload
Collections CRUD, nesting, sharing, covers
Highlights Create, update, delete with 12 colors
Tags List, rename, merge, delete
Import/Export HTML, CSV, ZIP, URL parsing
Backups List, download, generate

Full reference: API-REFERENCE.md


License

MIT