A privacy-first personal AI health trainer that runs entirely on your machine. Your data never leaves your device except for an anonymized summary sent to Claude when you chat.
- AI Chat — Ask your personal trainer anything; responses reference your actual data
- Data Import — Upload Hevy workout CSVs and Samsung Health CSVs
- Dashboard — Visualize workout volume, weight progression, sleep, steps, and heart rate
- Profile — Set your goals and preferences to personalize coaching
git clone <repo-url>
cd health-mindPython 3.11+ is required.
pip install -r requirements.txtCopy .env.example to .env and add your key:
cp .env.example .envEdit .env:
ANTHROPIC_API_KEY=sk-ant-...
Get a key at console.anthropic.com.
streamlit run app.pyThe app opens at http://localhost:8501.
- Open Hevy on your phone
- Go to Profile → Settings → Export Data
- Select CSV and share/save the file
- Upload it on the Import Data page in HealthMind
- Choose whether your weights are in kg or lbs before importing
Expected columns: Date, Workout Name, Exercise Name, Set Order, Weight, Reps, Duration
- Open the Samsung Health app
- Go to More (⋮) → Settings → Download personal data
- Select the data types you want (Heart rate, Sleep, Steps, Stress, etc.)
- Download and extract the ZIP — you'll get one CSV per data type
- Upload the relevant CSVs on the Import Data page
Supported file types: heart_rate, sleep, step_count, stress, calories, spo2
- SQLite database is stored at
./db/healthmind.db— local only, never synced - Claude API calls send only an aggregated JSON summary (averages, totals, trends) — never raw rows
- The app runs exclusively on
localhost; no data is shared with any server other than the Claude API for chat responses
health-mind/
├── .env # Your API key (never commit this)
├── app.py # Streamlit entrypoint + sidebar
├── requirements.txt
├── db/
│ ├── schema.sql # SQLite schema
│ └── healthmind.db # Created automatically on first run
├── core/
│ ├── database.py # DB helpers
│ ├── normalizer.py # CSV parsers (Hevy + Samsung)
│ ├── context_builder.py # Builds Claude-safe data summaries
│ └── trainer.py # Claude API wrapper
└── pages/
├── 1_Chat.py # AI trainer chat
├── 2_Upload.py # Data import
├── 3_Dashboard.py # Charts
└── 4_Profile.py # User profile
| Issue | Fix |
|---|---|
ANTHROPIC_API_KEY is not set |
Add key to .env and restart |
| CSV parse error | Check that the file matches the expected format for Hevy or Samsung Health |
| No charts showing | Import data first via the Import Data page |
ModuleNotFoundError |
Run pip install -r requirements.txt |