Connect is a local CLI, not cloud OAuth. On your machine: python -m bridge.hidrate_sync login-hidrate then login-bodyviz and sync. Tokens stay in ~/.config/bodyviz-hidrate/ — never put a Hidrate password on Railway. See docs/hidrate.md.
No sync yet
Unofficial Parse API. Apple Health remains an alternative path.
Apple Health
Apple has no web API for HealthKit. Export a ZIP from the Health app on iPhone, then upload export.xml (or the ZIP) here. Live background sync needs a future iOS companion.
No import yet
BP, weight, heart rate, steps, and workouts when present.
Enophone · Local EEG
Headphones pair over Bluetooth on this computer. Railway cannot reach them — run python bridge/server.py next to healthportrait, then connect.
Not connected
No bridge — the brain organ stays idle.
Last sample: —
VITA · HEALTH COMPANION
Connect your OpenRouter API key once to enable Vita (uses DeepSeek). It's stored only on this server — never in the chat.
About you & memory
Vita uses your saved readings, check-ins, recent conversations, and the details you choose to add here.
Up to 20 recent exchanges are saved. About you stays until you edit or erase it. Relevant health data and notes are sent to your configured assistant provider when you chat.
healthportrait
Sign in to load your live Oura data
CONNECT OURA
This account has no ring tokens yet. Authorize Oura for live vitals, or import an Apple Health export in Settings. The dashboard will not invent demo numbers.
Your total water intake for today stays visible, including water logged before you opened the dashboard. The fill shows progress toward your daily goal. New syncs animate in and update the total. WATER returns to today’s intake; Demo uses a sample and never logs water. This shows daily intake, not actual stomach contents.