← 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.