Research Assistant
Batch-process Bear notes tagged 「待整理」: find a relevant GIF for each note, append it, then remove the tag.
Prerequisites
- Bear running + grizzly installed + token at
~/.config/grizzly/token - gifgrep skill available
Workflow
-
Fetch tagged notes
grizzly open-tag --name "待整理" --enable-callback --json --token-file ~/.config/grizzly/tokenParse the JSON to get note IDs and titles/summaries.
-
For each note: a. Read full content
grizzly open-note --id "$NOTE_ID" --enable-callback --jsonb. Derive a GIF search query — extract 2–3 keywords from the note title or key findings. Prefer concrete nouns and verbs over abstract terms. c. Search for a GIF using the gifgrep skill (or
web_search+web_fetchas fallback) with the derived query. d. Append the GIF to the note under a## Supporting Mediaheading:printf '\n## Supporting Media\n\n\n' "$ALT_TEXT" "$GIF_URL" \ | grizzly add-text --id "$NOTE_ID" --mode append --token-file ~/.config/grizzly/tokene. Remove the 「待整理」 tag — replace note content with the tag removed, or use Bear's tag API:
grizzly create --title "$TITLE" --tag "$OTHER_TAGS" < /dev/null # Then delete the old note if needed, or strip the tag from contentSimplest approach: append a line that re-tags the note (Bear removes a tag when it's deleted from the note body). Use
sedon the note content to strip#待整理and re-write viagrizzly add-text --mode replace. -
Report — list processed notes and any failures.
Script
For batch runs, use scripts/process_tagged.sh:
bash scripts/process_tagged.sh
The script reads all notes tagged 「待整理」, extracts keywords, and calls the gifgrep search endpoint. It appends the top GIF result and strips the tag.
Notes
- If no GIF matches, skip the note and log it — don't force irrelevant results.
- Rate-limit Bear API calls (1–2 req/s) to avoid callback timeouts.
- The script is a convenience wrapper; the agent can also drive the workflow step-by-step for more control.