Omahub
← All plugins
T

Raindrop Bookmarks

by Trevor Ramey

Fuzzy-search Raindrop.io bookmarks with cached cover images.

Install
$ omarchy plugin add https://github.com/treramey/omarchy-raindrop-bookmarks --enable
Productivity #quickshell #launcher

Raindrop Bookmarks for Omarchy

A keyboard-first Omarchy Quattro overlay for fuzzy-searching your Raindrop.io bookmarks. Bookmark covers are cached as small PNG thumbnails, with a letter tile used whenever no usable cover exists.

Raindrop Bookmarks overlay showing saved bookmarks

Requirements

  • Omarchy Quattro
  • curl, jq, file, python3, timeout, and ImageMagick's magick
  • A Raindrop.io test token from Settings → Integrations

Install the non-default dependencies with:

omarchy pkg add jq imagemagick python

Configure

Store your Raindrop token outside the plugin repository:

install -d -m 700 ~/.config/raindrop
printf '%s\n' 'YOUR_RAINDROP_TEST_TOKEN' > ~/.config/raindrop/token
chmod 600 ~/.config/raindrop/token

Set RAINDROP_TOKEN_FILE before starting Omarchy Shell if you prefer another token location.

Install

omarchy plugin add https://github.com/treramey/omarchy-raindrop-bookmarks.git --enable

Open the overlay from a terminal:

omarchy-shell shell summon io.github.treramey.raindrop-bookmarks '{}'

Use

  • Type to fuzzy-search titles, domains, tags, and URLs.
  • Use Up, Down, Page Up, and Page Down to move through results.
  • Press Enter to open the selected bookmark.
  • Press Escape to clear the query, then press it again to close the overlay.
  • Click outside the card to close it.

Data and security

Omarchy plugins run unsandboxed with your user permissions. This plugin:

  • reads only the configured Raindrop token file;
  • sends that token only to https://api.raindrop.io;
  • downloads only HTTPS cover URLs on port 443 whose DNS answers are all public;
  • pins each cover request to its validated address, disables redirects and proxies, and enforces strict connection, transfer-time, and 5 MiB limits;
  • accepts only PNG, JPEG, GIF, and WebP covers and processes them under a restrictive ImageMagick resource and codec policy;
  • stores generated thumbnails under ~/.cache/omarchy-shell/raindrop-bookmarks/covers; and
  • opens selected links through xdg-open.

The token is never copied into the plugin directory. Cover thumbnails older than seven days are refreshed, and inactive thumbnails older than 30 days are removed during synchronization. Bookmark data refreshes when the overlay is opened after five minutes.

Remove

omarchy plugin remove io.github.treramey.raindrop-bookmarks
rm -rf "${XDG_CACHE_HOME:-$HOME/.cache}/omarchy-shell/raindrop-bookmarks"

Removal intentionally leaves ~/.config/raindrop/token in place because it is user-owned configuration that may be shared by other Raindrop tools.

Development

omarchy plugin validate .
qmllint -I "$OMARCHY_PATH/shell" RaindropBookmarks.qml
bash -n cover-sync
tests/security.sh

Runtime changes must include a Changesets entry (pnpm changeset) describing their semantic-version impact. After those changes reach main, the Changesets workflow creates or updates a release PR that synchronizes package.json and manifest.json. Commits use Conventional Commit subjects.

Changesets tooling requires pnpm install. Its local node_modules tree contains symlinks, which Omarchy's plugin validator intentionally rejects. Remove it before validating the plugin folder:

rm -rf node_modules
omarchy plugin validate .

The implementation follows the Omarchy marketplace development and publishing guides.