Graincrawl
Use local Granola archive data first. Check freshness for recent/current questions:
bashgraincrawl doctor --json graincrawl status --json
Refresh only when stale or asked:
bashgraincrawl sync --source private-api graincrawl sync --source desktop-cache
Query with bounded reads:
bashgraincrawl search "query" graincrawl notes --json graincrawl note get <id> graincrawl transcripts get <id> graincrawl panels get <id> graincrawl --json sql "select count(*) as notes from notes;"
Report absolute date spans, note titles, source gaps, and transcript/panel availability. Use read-only SQL for exact counts/rankings. Ordinary reads must not surprise-prompt Keychain. Before encrypted source debugging, inspect graincrawl secrets --json; use graincrawl unlock --json before enabling encrypted sources. Resolve the database from status/config rather than assuming a machine-specific path.


