# ia-local-casa (Local AI for home documents/photos)

Self-hosted home stack that archives, indexes, and searches personal documents, photos, and videos with **local** models on a Windows PC — "without sending your documents to the cloud." Public repo `fwinchi/ia-local-casa` (created 2026-08-06; README.en.md fetched 2026-08-13).

Tags: local-llm, home-ai, paperless, ollama, chromadb, immich, open-webui, mcp, spanish, personal-use

## Summary

A copy-pasteable, heavily documented personal install: Paperless-ngx + AIssist for invoices/receipts, ChromaDB semantic indexes for PDFs/photos/videos, Immich for faces, Open WebUI as the chat UI, MCP servers bridged through **mcpo**, Ollama on an RTX 5080. Author (`fwinchi`) is not a professional programmer; built it with Claude over ~35 hours / 8 sessions. Status badge: "personal use, active." Dual license: **MIT** (code) + **CC BY 4.0** (docs). Stack assumes **Spanish**.

Not a product, SaaS, or Hermes/Grok Bot plugin. It is a reference architecture for local-home-AI document RAG.

## Who

- GitHub: [fwinchi](https://github.com/fwinchi). Real name **unknown**.
- Self-description (README.en.md): "I'm 64 and not a programmer." Comfortable with Windows and following terminal instructions.
- Acknowledgments: Claude (Anthropic) as the pairing partner; pre-publish reviews by Gemini 3.1 Pro, Kimi K3, Grok Fast, then Claude Code + gitleaks + TruffleHog 3.96.0. Author: "not a professional security audit."

## What it is

Three independent circuits (plus Immich off to the side):

1. **Paperless** — drop files in `consume` → OCR → AIssist fills custom fields → `autocorresponsal.py` assigns sender.
2. **Document index** — `indexar_documentos.py` walks configured folders (PDF/DOCX/TXT/ODT), chunks, embeds with `bge-m3`, stores in ChromaDB. Tool: `buscar_en_documentos`.
3. **Photos/videos** — vision-model descriptions (`qwen3-vl:8b` as `vl3-paperless`) into ChromaDB. Tools: `buscar_fotos` / `buscar_videos`.
4. **Immich (separate)** — faces/people on a read-only external library. Deterministic count/filter tools in `mcp_fotos.py` (not the retired ImmichMCP).

Open WebUI is the chat front-end. MCP servers on ports 8001–8003 are converted to OpenAPI by **mcpo 0.0.20** so Open WebUI can call them as tools.

## Hardware / versions (quoted from pages)

| Item | Stated |
|------|--------|
| Tested PC "NASA" | Windows 11, RTX 5080 16 GB VRAM, 32 GB RAM, Docker Desktop |
| Backup node | Orange Pi 5 Plus, Linux ARM64, `~/backup-nasa/` |
| Python | **3.14** (pinned requirements verified 2026-08-10) |
| Local models | `gpt-oss:20b` as `gptoss-paperless` (num_ctx 16384, temp 0.1); `qwen3-vl:8b` vision; `bge-m3`; `nomic-embed-text` (legacy photo embeds) |
| VRAM claim | `gpt-oss:20b` largest that fits 16 GB; `qwen3.6:35b` ~23 GB → CPU offload, "too slow" |
| Cloud (optional, world knowledge only) | Google models via LiteLLM: gemini-flash → gemini-3.5-flash-lite; gemini-pro → gemini-3.1-flash-lite; gemma → gemma-4-31b-it |
| GitHub | 2 stars, 0 forks, 3 open issues (all Dependabot), public, MIT detected |
| Licenses | MIT Copyright (c) 2026 fwinchi (code); CC BY 4.0 Copyright (c) 2026 fwinchi (README, prompts/, docs/) |

No unverified hardware minimum is claimed.

## Local-home-AI angle

This is the "run it on the family PC" pattern: invoices in Paperless, medical PDFs in a dedicated index folder, photo disk described by a local VLM, backups rsync'd to an Orange Pi. Deliberate split: **local model for your files, cloud (Gemini via LiteLLM) for the outside world** because `gpt-oss:20b` "makes things up and defends them."

Security posture (author, from code): mcpo + LiteLLM bound to `127.0.0.1`; Paperless/Immich on LAN for phone use (no extra auth — "Don't expose them to the internet"); Ollama firewalled to WSL + phone (Maid app). Secrets gitignored. Docker images digest-pinned (author cites "LiteLLM had malicious versions published on PyPI in March 2026" — **not independently verified here**). Prompt-injection documentation still **pending** on the author's list; tools are read-only by design.

Limitations the README owns: Spanish-first; single PC (if it's off, nothing runs); local model is not a source of truth outside your files; amounts/dates must be verified by opening the document; duplicate detection never auto-deletes.

## Relation to Josh's local LLM / Hermes / Grok Bot interests

- **Local LLM:** Concrete, battle-logged Windows+Ollama+Open WebUI home RAG. Useful as a pattern library (three circuits, deterministic tools instead of dumping JSON to the model, one-tool-per-chat, `bge-m3` over `nomic-embed-text` for Spanish). Not a drop-in for Josh's stack (Spanish OCR/prompts; Python 3.14; RTX 5080 numbers).
- **Hermes Agent:** Same MCP idea, different host. Casa exposes Paperless/docs/photos as MCP and then **mcpo → OpenAPI → Open WebUI**. Hermes would consume MCP more natively (see [[hermes-agent]], [[youtube-hermes-desktop-plugins]]). Casa is not a Hermes plugin and does not mention Hermes.
- **Grok Bot:** Opposite deployment. Grok Bot = managed cloud computer + connectors ([[grok-bot]]). Casa = your GPU, your disks, your LAN. Complementary reference if Josh wants a fully local document/photo vault rather than cloud computer-use over personal files.
- **Perseus Vault:** Different problem. Casa indexes *files* (ChromaDB + Paperless). [[perseus-vault]] stores *agent memory* (encrypted SQLite MCP). Could theoretically sit beside Casa as the agent's long-term notes; **no stated integration**.

## Unknowns

- Author identity beyond `fwinchi` / age 64.
- Why `pushed_at` is 2026-08-13 when the five latest listed commits are 2026-08-10.
- Whether digest-pinned images are still current as of ingest day.
- English-language operability without editing OCR (`spa`) and prompts.

## Related

- [[hermes-agent]]
- [[youtube-hermes-desktop-plugins]]
- [[youtube-hermes-kanban-multi-agent]]
- [[grok-bot]]
- [[grok-bot-vs-hermes-agent]]
- [[perseus-vault]] (agent memory, not document RAG)
- raw/`ia-local-casa-2026-08-13/`

## Sources

- https://github.com/fwinchi/ia-local-casa
- https://github.com/fwinchi/ia-local-casa/blob/main/README.en.md
- https://raw.githubusercontent.com/fwinchi/ia-local-casa/main/README.en.md
- GitHub API: repo, contents, license, commits, issues, languages (2026-08-13)
