What it is
Kata is a private AI fitness coach. It ingests Apple Health data through Health Auto Export, stores workouts and recovery signals in SQLite, and asks a local model for a short daily coaching note that reflects the last few weeks of training instead of a single workout.
The private surface is intentionally narrow: a single-user dashboard, a coaching note, and enough recent metrics to make the advice auditable. The real value is continuity — the coach remembers what it told me yesterday and can compare that plan against what actually happened.
Why I built it
Most fitness apps either show dashboards without telling me what to do, or offer closed coaching plans that do not own my local history. Kata sits in the middle: self-hosted data, local model calls, and a coach that can say "move the hard session" when sleep and recovery make that the better choice.
What I learned
- State changes the prompt. A coaching note is only useful when it can see prior advice, recent workouts, and recovery together.
- Apple Health needs a phone-side push. HealthKit does not let a server pull this data directly, so Health Auto Export became the practical bridge.
- Small dashboards beat fake chat. For v1, a daily note plus the context table is more honest than a chat box without enough longitudinal memory.
Status & next steps
Kata v1 is running as a me-only service. The ingestion, storage, model call, and dashboard loop all round-trip, but it is not exposed on jhinx.dev. The long-term usefulness still depends on the phone export and a normal-week soak. The next real milestone is proving I actually read and act on the notes before building chat or multi-week plans.
