AI-powered fitness coaching app for macOS 14+ and watchOS 10+, backed by a local MCP server that can call OpenAI, Anthropic Claude, or a deterministic mock provider.
mcp-server: Implemented with all required endpoints, schema validation, provider switching, tests, and CI.FitApp-macOS: SwiftUI + SwiftData app with local Sign in with Apple gate, onboarding, dashboard, generator, insights, history analytics, settings, offline fallback, and service layer.FitApp-watchOS: SwiftUI companion scaffold implemented for active workout flow, quick stats, local cache, and WatchConnectivity sync.Xcode project: wired targets are committed with watchOS HealthKit entitlements and HealthKit privacy usage strings; set signing team if needed.
Placeholder images are committed; replace them with real captures under docs/screenshots/ when available.
- High-level architecture:
docs/architecture.md - API payload examples:
docs/api.md - OpenAPI contract:
docs/openapi.yaml
fitapp/
├── FitApp-macOS/
│ ├── Views/
│ ├── Models/
│ ├── Services/
│ └── FitApp_macOS.xcodeproj/
├── FitApp-watchOS/
│ ├── Views/
│ ├── Services/
│ └── Models/
├── mcp-server/
│ ├── src/
│ ├── .env.example
│ ├── package.json
│ └── README.md
├── docs/
├── .github/workflows/
├── LICENSE
├── README.md
└── .gitignore
-
Clone repo:
git clone https://github.com/Rohan5commit/fitapp.git cd fitapp -
Install Node 20+.
-
Copy env template.
cd mcp-server cp .env.example .env -
Configure provider + API key in
.env. -
Install dependencies and run:
npm install npm run dev
Optional smoke test (in another terminal):
./mcp-server/scripts/smoke_test.sh
Optional deterministic mode for UI development:
AI_PROVIDER=mock
MOCK_SCENARIO=balanced
The server exposes:
POST /analyze-trendsPOST /generate-planPOST /recommend-adjustmentsGET /health
Optional request headers (x-fitmind-provider, x-fitmind-openai-key, x-fitmind-anthropic-key) let the macOS app choose provider/keys per request without changing .env.
- Open
FitApp-macOS/FitApp_macOS.xcodeprojin Xcode. - Confirm bundle identifiers, signing team, and deployment settings for both app targets.
- Run macOS app target first, then watchOS target.
- Sign in locally with Apple when prompted.
- In app Settings, set MCP URL, choose provider (
OpenAI/Claude/Mock), save API keys in Keychain, and optionally enable HealthKit sync for manual logs.
GitHub Actions workflows:
-
.github/workflows/mcp-server-ci.yml -
.github/workflows/apple-targets-ci.yml -
mcp-server-ci.ymlruns install, typecheck, tests, and build formcp-server. -
apple-targets-ci.ymlbuilds macOS and watchOS app targets withxcodebuildon GitHub-hosted macOS runners.
After wiring/building in Xcode locally, reclaim space with:
./scripts/cleanup_xcode_artifacts.shOptional full simulator cleanup:
./scripts/cleanup_xcode_artifacts.sh --full-simMIT (LICENSE)