intervals is a running coach that lives on top of your intervals.icu data. It reads your calendar, activities, and recovery, plans your training around 80/20, and brings you every change as a proposal you approve or dismiss.
Ask what to adjust this week and the coach answers from your actual calendar, activities, and recovery signals, with training science behind every plan. Chat streams in real time, sessions are searchable and pinned, and every reply can become concrete calendar changes.
Every calendar write shows exactly what would change (date, name, distance, workout text, load profile) with the coach's rationale beside it. Approve and it's on your calendar. Dismiss and nothing happened. Ask for a bigger change, like trimming a whole week, and you get one sheet with per-row checkboxes and diff bars, so you can approve two rows and throw the rest back.
Tap the Load or Form metrics on your week view and intervals opens the drill-down: THE GAP between your current load and your hold-flat target, your weekly zone mix with an 80/20 verdict, CTL/ATL fitness, and seven days of HRV, resting heart rate, and sleep.
Bring your own OpenRouter key and pick your coach's brain: GLM, Claude Haiku, and DeepSeek on the roster by default. The app ships zero LLM credentials, chat can run fully on-device against any OpenAI-compatible endpoint like LM Studio or Ollama, and the header badge always tells you which mode you're in.
Your athlete ID and API key mirror your calendar, activities, and wellness data.
Ask what to adjust, register a race, or trim a week. Everything arrives as proposals.
Your calendar moves only when you say so. Partial approvals are fine.
intervals is built by Nick with a standing team of AI agents (a builder, a coach tuner, and a vision reviewer) under a written working agreement: the same propose-and-approve discipline the app itself enforces. Web is live today, Android beta is in nightly use, and iOS widgets ship next.
NickLewanowicz/intervals-ui →