The local stack

The three-phase model says what happens to a source. This page says what runs it — and the answer is: everything, on your own machine.

Local stack diagram

What grabs hold where

PhaseBuilding blocksRole
CaptureNetNewsWire, Zotero Connector, iOS share sheet, feedreader-score.pyGet candidates into Zotero _inbox
Filterzotero-mcp (ChromaDB embeddings), index-score.py, summarize_item.py, OllamaRank and preview so you can decide Go/No-go
Bundlebuild-zotero-bundle.py, fetch-fulltext.py, yt-dlp, youtube-transcript-api, whisper.cppTurn any source type into one canonical Markdown bundle
Backendwiki_backend.py → olw, claude-obsidian, or noneCompile bundles into an interlinked wiki
ReadObsidian, hyaloBrowse and search the result

Why the wiring is the point

Each of these tools is useful on its own. Zotero manages references, whisper.cpp transcribes, Ollama runs models, Obsidian renders Markdown. None of them knows about the others.

What this repository contributes is the wiring: a podcast episode, a PDF, and a note you wrote yourself all end up in the same canonical format, scored by the same relevance model, gated by the same Go/No-go decision, and compiled by whichever backend you chose. The convergence is the work.

It also means every substitution is local. Don't want Ollama? Set LLM_BACKEND=mlx. Don't want olw? Change one line in wiki-backend.toml. Nothing in the chain assumes a cloud service exists.