Build 19 — AI coach

An AI coach comes to Aski. Add your own Claude API key in Settings and a new Coach tab appears — it reads your training history and drafts or revises workouts that you approve before anything enters your library. A companion MCP server lets you drive the same thing from Claude on your Mac. The library also learns routines.

← All changes

AI coach

  • Bring your own key, invisible until you do. Paste an API key under Settings → AI Coach and a Coach tab appears. No key, no tab — the feature stays completely out of the way until you opt in. The key lives in the Keychain; your history and messages go only to the provider you chose, on your own key, and nowhere else.
  • It knows your training. The coach reads your recent sessions, weekly muscle volume, pain readings, and exercise history — so “progress my lower day if pain stayed low” or “build a calf-rehab session based on last week” produce something grounded in what you actually did, not a generic template.
  • Proposals, not surprises. When the coach drafts or revises a workout it shows up as a card you accept or discard. Nothing is written to your library until you say so, and anything it builds is validated against the same schema every imported workout uses.
  • Rehab-aware. The coach respects the Silbernagel loading rule and won’t push load into rising pain — and there is no gamification, no streaks, no PRs-as-trophies.

Drive Aski from Claude on your Mac

  • An MCP server. A small companion server (in the repo under mcp/) lets Claude Desktop or Claude Code list, read, create, and revise your Aski workouts directly — write one from Claude and it lands in the app automatically over iCloud. Opt in to history export in Settings and Claude can read your training context too.

Routines

  • The library groups workouts into routines. Instead of loose days, the built-in library now offers full programs — Push/Pull/Legs, a beginner A/B, GZCLP, bodyweight — and adding a routine imports all of its workouts in one tap. Your existing workouts are untouched.

Fix

  • The workout editor’s reorder carets now follow the text color and dim with the row, so an unmovable block reads as unmovable instead of leaving a stray bright chevron.