Skip to main content
Status: Available (macOS) Your photo library made searchable, fetched by photoscrawl. It reads your Apple Photos library and builds a local SQLite database at ~/Library/Application Support/photoscrawl/photos.sqlite: one asset per photo/video plus per-asset observations (OCR text, visual/scene labels, detected people, album membership) from Apple Vision and a local model. A photo has no words of its own, so DuckBrain makes it searchable by aggregating those observations into text_body (lines like Scene: beach, sunset / People: … / Text: <OCR> / Album: …).

Install photoscrawl

photoscrawl isn’t on the Homebrew tap — install it from source:

What gets ingested

  • Observations, not pixels. photoscrawl crawl reads the library; photoscrawl classify runs a local vision model to produce the labels. Only assets that have been described (have observations) are ingested — a bare crawl with no classify yields no searchable text.
  • Aggregated into text_body. OCR, scene/visual labels, people, and album membership become the searchable text for each asset.
  • Upsert. Labels accrue as classify runs, updating each asset in place.
  • Manual refresh. Crawl and classify are heavy, so there’s no auto-refresh lane — run them, then duckbrain sync photos.

Facet mapping

Apple Photos is macOS-only. Rows are classification: confidential and never leave the machine.