A focused macOS app for browsing Safari Reading List by Marc Köhlbrugge.
Safari makes it very easy to save links for later on macOS and iOS, but there is no great dedicated app experience for browsing a large Reading List later.
This project is meant to be that missing macOS companion: a focused app for rediscovering your saved Safari Reading List items.
Download the latest version from the GitHub Releases page.
- Reading-List-x.x.x.dmg — open the DMG and drag "Reading List" to your Applications folder.
- Reading-List-x.x.x.zip — unzip and move "Reading List.app" to your Applications folder.
The app is signed and notarized with Apple, so macOS will allow it to run without security warnings.
Requirements: macOS 13 (Ventura) or later.
On first launch, the app asks you to select your ~/Library/Safari/Bookmarks.plist file. You only need to do this once.
The UI is partly inspired by NetNewsWire and follows traditional macOS design patterns with native controls.
- Imports Safari Reading List data from:
~/Library/Safari/Bookmarks.plist
- Lets you browse links by:
- search (title, URL, hostname, preview text)
- website/domain grouping
- smart lists
- Includes default smart lists such as:
Recently AddedVideos(YouTube, Vimeo, and other video hosts)PDFs
- Supports custom smart lists with editable:
- name
- icon
- hostnames
- keywords
- added-date filter
- Supports read status:
Unread/All/Viewedfiltering- explicit
Mark as Read/Mark as Unreadactions
- Shows favicons in sidebar and list rows
- Includes a built-in preview pane and quick actions to open links in Safari
- Includes right-click context menus for common actions (open, copy link, mark read/unread, etc.)
This app is still under active development.
Apple does not provide a public Reading List API for this use case, so the app reads Safari's bookmark plist directly.
Path: ~/Library/Safari/Bookmarks.plist
When you use Mark as Read / Mark as Unread (explicit action only), the app writes to that file by updating Reading List metadata.
I try to be careful and avoid touching anything else, and it has worked well in real use, but you should still treat this as "use at your own risk."
Before using write actions, consider making a backup:
cp ~/Library/Safari/Bookmarks.plist ~/Library/Safari/Bookmarks.plist.backup.$(date +%Y%m%d-%H%M%S)You can run the app with fake sample data (including emoji-rich titles) for screenshots and demos:
swift run "Reading List" --demo-dataIn demo mode, the app does not read from or write to Safari's Bookmarks.plist.
- Open this folder in Xcode and run the
Reading Listexecutable product. - Or run from Terminal:
swift run "Reading List"If swift commands fail locally, accept the Xcode command line license first:
sudo xcodebuild -licenseThis app is under active development and should be considered beta software.
This project is shared as-is while it is being actively built, and should be considered beta software.
- I am currently not accepting pull requests.
- I may review issues, but I am not committing to act on them.
- Some issues may be closed without a comment.
- If you strongly believe something should be addressed, you are still welcome to open an issue.
- I currently have no plans to provide formal support.
This project is source-available under the terms in LICENSE.
- Personal, non-commercial use and modification are allowed.
- Redistribution is not allowed without written permission.
- Republishing in app stores or other download channels is not allowed without written permission.
