safari-py
- python
- macos
- cli
Safari keeps its bookmarks and reading list in a binary plist with no public API, which makes them invisible to scripts, backups, and any workflow that isn't clicking. safari-py opens that up: a Python library and a safari CLI that read, search, add, remove, and move bookmarks and reading-list items, manage folders, and export the reading list to org-mode, JSON, or plain text.
It's built for automation. Every command takes --json for structured output, every write operation supports --dry-run, and there's a one-shot backup before anything destructive. That combination makes it safe to hand to a script or an agent: I use it to let Claude Code triage my reading list, which is exactly the kind of small, well-fenced capability that makes agent workflows trustworthy.
Installable with pip install safari-py (or pipx), tested, and read-only unless you ask it not to be.