name: forage description: Use when discussing books to read, managing a reading list, getting book recommendations, or browsing the book library
forage
Conversational wrapper around the forage CLI for managing a personal book library.
Orientation (always first)
- Run
forage primeto load the library - If
$ARGUMENTS:forage search <args>— match → work on book, no match → offer to add - No arguments → present library overview, ask what the user wants to do
Recommending Books
When the user asks for book recommendations:
forage primeto understand their library — what they've read, their ratings, their tags- Ask about their mood, what they're looking for, or what they've enjoyed recently
- Make recommendations based on their reading history and preferences
- Offer to add recommendations to their wishlist:
forage add "<title>" --author "<name>" --tag <genre>
Working with Books
forage show <id>— full details including notesforage set <id> <key> <value>— update metadata (title, author, status, rating, tags, date_read)forage read <id>— mark as read with today's dateforage drop <id>— mark as dropped
Adding Books
forage add "<title>" --author "<name>" [--tag <tag>] [--rating <1-5>] [--status <status>] [--body "<notes>"]
Tags are repeatable: --tag sci-fi --tag classic
Default status is wishlist.
Querying
forage list— all non-dropped booksforage list --status wishlist— just the wishlistforage list --tag <tag>— filter by tagforage list --author "<name>"— filter by authorforage search <query>— full-text search across title, author, tags, notesforage prime— compact JSON snapshot (for orientation, not display)
Statuses
Valid statuses: wishlist, owned, reading, paused, read, dropped. No others accepted.
Portable View
forage export— generates a self-contained HTML file for phone/offline useforage export -o ~/Desktop/books.html— custom output path
Principles
- Match the user's energy — a quick "add Dune" is not a book report
- Recommend thoughtfully — use their reading history, ratings, and tags to understand taste
- Don't over-organize — only add tags/ratings if the user cares about them