Research Assistant
Read Bear notes tagged 「待整理」, extract key topics, search for matching GIFs via gifgrep, and insert them inline. When done, remove the 「待整理」 tag and add 「已整理」.
Prerequisites
- Bear app running on macOS with a valid API token at
~/.config/grizzly/token grizzlyCLI installed (go install github.com/tylerwince/grizzly/cmd/grizzly@latest)gifgrepskill installed (provides GIF search)curlavailable
Workflow
- Fetch notes: Run
grizzly open-tag --name "待整理" --enable-callback --json --token-file ~/.config/grizzly/tokento list all notes with the tag. - For each note:
a. Read note content via
grizzly open-note --id <NOTE_ID> --enable-callback --json --token-file ~/.config/grizzly/tokenb. Extract 2–3 key topics or keywords from the note title and first paragraph. c. For each keyword, search GIFs using the gifgrep skill (orcurl "https://api.giphy.com/v1/gifs/search?api_key=dc6zaTOxFJmzC&q=<keyword>&limit=3"as fallback). d. Pick the most relevant GIF URL per keyword. e. Append GIFs to the note usinggrizzly add-text:echo -e "\n---\n" | grizzly add-text --id <NOTE_ID> --mode append --token-file ~/.config/grizzly/token - Retag: Remove 「待整理」 and add 「已整理」 by updating note tags via Bear's x-callback-url:
open "bear://x-callback-url/add-tag?id=<NOTE_ID>&name=已整理" open "bear://x-callback-url/remove-tag?id=<NOTE_ID>&name=待整理" - Report: Summarize which notes were enriched and how many GIFs were added.
Script
For batch processing, use scripts/enrich_notes.sh:
bash scripts/enrich_notes.sh
The script handles the full loop: fetch tagged notes → per-note topic extraction → GIF search → insert → retag.
Notes
- If no notes carry the 「待整理」 tag, report that and exit.
- If GIF search returns no results for a keyword, skip that keyword rather than inserting a placeholder.
- Bear must be running; grizzly commands will fail silently otherwise.
- Rate-limit GIF API calls (1 request/second) to avoid throttling.