Local Research Workflow

A privacy-first workflow for processing documents, videos, podcasts, and RSS feeds with local AI. Designed for a Mac with Apple Silicon; no cloud storage for your research data.

Estimated installation time: 60–120 minutes Requirements: macOS Sequoia or later, internet connection for downloads, an Anthropic account (for Claude Code)


The 3-phase model

Every source — paper, podcast, video, RSS article — passes through three explicit phases:

PhaseGoalHow
1 — Cast wideCapture everything, no filtering yetAll sources flow into a single Zotero _inbox collection via browser extension, iOS app, or RSS reader
2 — FilterYou decide what enters the vaultQwen3.5:9b (local) generates a 2–3 sentence summary per inbox item; you give a Go or No-go
3 — ProcessFull processing of approved itemsClaude Code writes a structured literature note to the Obsidian vault, including key findings, methodology notes, relevant quotes, and flashcards for spaced repetition

The separation between phases 1 and 3 keeps the vault clean: only sources you have consciously approved end up there.


Tools required

ToolRoleLocal / Cloud
ZoteroReference manager and central inboxLocal
Zotero MCPConnects Claude Code to your Zotero library via local APILocal
ObsidianMarkdown-based note-taking and knowledge baseLocal
OllamaLocal language model for offline tasksLocal
yt-dlpDownload YouTube transcripts and podcast audioLocal
whisper.cppLocal speech-to-text transcription for podcastsLocal
NetNewsWireRSS reader for academic and non-academic feedsLocal
Claude CodeAI assistant that orchestrates the workflow; generative work runs locally via Qwen3.5:9b (Ollama)Local (default) / Cloud API with --hd

In standard mode, only orchestration instructions are sent to the Anthropic API; all generative work is handled locally by Qwen3.5:9b. Only when --hd is explicitly requested do the prompt and source content go to the Anthropic API (Claude Sonnet 4.6). Reference data, notes, and transcriptions always stay local.


Overview of steps

  1. Install Homebrew (package manager)
  2. Install and configure Zotero 7 (including _inbox collection)
  3. Set up Python environment
  4. Install and configure Zotero MCP
  5. Install Claude Code
  6. Install Ollama (local language model)
  7. Install Obsidian and create vault
  8. Connect everything: configure Claude Code with MCP
  9. Run first test
  10. Optional extensions (yt-dlp, semantic search, automatic updates)
  11. Podcast integration (whisper.cpp)
  12. RSS integration (Zotero feeds + NetNewsWire)
  13. Spaced repetition (Obsidian plugin)
  14. Set up filter layer per source