HealthSteward
open source · privacy-first · v0, early development

Nobody on the clinical side owns the coordination work. HealthSteward does.

Every specialist has their own chart. None of them talk to each other. HealthSteward centralizes what they gave you — locally, on your machine — and turns it into what to bring up at the next appointment.

no cloud storage · no sync · nothing leaves your machine

The Problem

Fragmented care comes with a second, unpaid job.

Remembering what each specialist said. What changed since the last visit. Which labs are still pending. What you're supposed to bring up next time — across providers who don't share a health system and often don't share information at all. Anyone juggling more than one provider ends up doing this work; it's just unavoidable once you're seeing more than one specialist who won't see each other's notes.

That work falls hardest on people managing multiple chronic conditions, who are almost always stuck in this kind of fragmented setup — and hardest of all exactly when they have the least capacity to carry it: mid-flare, mid-crisis, mid-diagnosis. Things get missed — a follow-up nobody rebooks, a lab result nobody connects to a new symptom, a medication change one specialist doesn't know another one made.

Most tools treat this as a records problem: store the documents, make them searchable, maybe chat with them. HealthSteward treats it as a coordination problem — ingest what providers give you, track what's changed and what's still open, and turn that into something concrete for the next appointment.

Features

What it does

Profile

Health profile management

Conditions with ICD-10 codes, medications, doctors, and appointments, kept in one place.

Prep

AI visit preparation

An agentic loop drafts personalized questions for an upcoming visit, pulling relevant history and calling tools (medication lookup, past-visit lookup) before it finalizes anything. Runs fully local via Ollama by default — Claude API and other providers are opt-in.

Ingest

After-visit summary parsing

Upload the PDF you're handed on the way out. Parsed locally with Ollama, reviewed by you, then applied to your profile.

Follow-up

Proactive action items

Follow-ups to book, labs to get done, referrals to schedule — surfaced right after a visit, and again in a persistent "needs attention" list until you snooze or resolve them.

Privacy

Two trust boundaries, not one

Health data is sensitive by default, so nothing crosses a boundary un-redacted.

Stays on device — default

Ollama, local

PDF parsing always runs on a local model, and visit prep does too by default. Your raw records never touch the network unless you opt out.

Anonymized first

Claude, or any provider you choose — optional

Switch visit prep to Claude API or any OpenAI-compatible provider from Settings — names, DOB, and contact info are stripped — deterministically and via NER — before anything is sent.

This reduces exposure but isn't a guarantee — NER-based detection can miss names or identifying details in unusual free-text phrasing. Local-only mode (Ollama for both parsing and visit prep, the default) needs no anonymization step, since nothing leaves the machine.

Setup

Get started

Everything, including the database, stays in a folder on your machine. Needs Python 3.11+, Node 18+/pnpm, and Ollama.

terminal — backend
$ git clone https://github.com/nidhi-menon/HealthSteward.git && cd HealthSteward
$ pip install -r requirements.txt
$ python -m alembic upgrade head
$ python -m uvicorn src.main:app --reload --host 0.0.0.0 --port 8000
terminal — frontend
$ cd frontend && pnpm install && pnpm dev
terminal — local model, for PDF parsing
$ ollama serve
$ ollama pull qwen2.5:7b

Full setup, including the .env file, is in the README. A one-step installer for people who'd rather not open a terminal is on the way — track progress on GitHub.

Personal Note

Why this exists

I couldn't find a tool that did what I needed, so I built one.

Becoming a first-time parent took a harder toll than I expected. Mental health worsened postpartum, and managing my chronic conditions was the first thing to go — medications, blood tests, follow-up appointments, all quietly abandoned. Nobody flagged the silence. No provider reached out. The gap that opened in those months took far longer to close than it took to form.

The underlying problem: my care was split across multiple specialists — different practices, different systems, none of them talking to each other. Every appointment started from scratch. I was the only person with the full picture, and I was the least equipped to hold it.

I started building HealthSteward in December 2025 for myself: a way to hold together a medical system that asks you to track too many providers, records, and follow-ups in your own head. After sharing it with others navigating similarly fragmented care, it was clear the need went well beyond me — so it's public, GPLv3, free to use, fork, or build on.

If something here is wrong, could be better, or you just have thoughts, I'd genuinely like to hear them.