finds.dev← search

// the find

OpenHealthForAll/open-health

★ 3,902 · TypeScript · AGPL-3.0 · updated Jan 2026

OpenHealth, AI Health Assistant | Powered by Your Data

OpenHealth is a self-hosted AI health assistant that parses your blood tests, checkup results, and personal health records into structured data, then lets you chat with an LLM about that data. It runs locally via Docker with Ollama support, which is the main differentiator from just uploading PDFs to ChatGPT. Aimed at privacy-conscious individuals who want a persistent health data layer rather than one-off LLM queries.

Local-first architecture is genuine — Docling for parsing and Ollama for inference means you can run the entire stack air-gapped. Multi-provider LLM support (GPT, Claude, Gemini, LLaMA, DeepSeek) with a seeded provider config in Prisma is practical, not just a checkbox. The data model is reasonably structured: separate parsing pipeline from chat, with health data normalized before it hits the LLM context. Docker Compose setup is straightforward and the .env.example covers what you actually need.

The parsing pipeline is still a Python sidecar being 'planned to migrate to TypeScript' — that's a split runtime in production today, not a roadmap item, and it complicates the Docker setup and debugging. There's no structured schema validation or versioning for the parsed health data format, so a parsing change could silently corrupt existing records without a migration story. No mention of how the LLM context is constructed when health data grows large — chunking, RAG, or a hard context limit — which matters the moment you have more than a few blood tests. Auth is NextAuth with a local credentials provider; there's no multi-user isolation model documented, so running this for a family means trusting the app-level user separation holds.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →