diff --git a/AGENT_GUIDE.md b/AGENT_GUIDE.md
index ddd2dad..74f9dd5 100644
--- a/AGENT_GUIDE.md
+++ b/AGENT_GUIDE.md
@@ -97,3 +97,31 @@ Use get_context() to see their motivation profile:
understand it, but don't lecture.
- Don't read back integration credentials. You can check status but
never retrieve stored secrets.
+
+## Multi-Device Integration
+
+If you have access to both Diligence tools and a device MCP (like COROS),
+you can bridge data between them:
+
+1. Read the user's recent workouts from the device MCP
+2. Use Diligence's log_activity tool to import them
+3. This earns the user points automatically
+
+Example workflow with COROS MCP connected:
+- Check COROS for today's activities
+- For each unlogged activity, call log_activity with the details
+- Report the points earned
+
+## Strava Data Warning
+
+Strava's API terms prohibit use of their data for AI/ML purposes.
+If the user has Strava connected, you may see synced activities in
+their log, but do not reference Strava-specific data in your coaching
+advice. Treat Strava activities as user-reported workouts only.
+
+## Provider-Agnostic
+
+This guide works regardless of which LLM powers the coaching.
+The same context, tools, and personality apply whether you are
+GPT-4o, Claude, Llama, Gemini, or any other model. The user
+chose you — respect their choice and focus on being helpful.
diff --git a/README.md b/README.md
index f080c3f..37fb408 100644
--- a/README.md
+++ b/README.md
@@ -108,34 +108,65 @@ You should see 4 containers, all healthy: `frontend`, `backend`, `mcp-connector`
- **Program tracking** — 90-day structured programs (StrongLifts, Darebee, etc.) with day-by-day progression.
- **Configurable rewards** — you define what's worth earning. Gaming time, screen time, treats — your rules.
-## Connecting an AI Agent
+## Built-in AI Coach
-Point your agent's MCP config at:
+Diligence includes a built-in AI coaching chat. Configure any LLM provider in **Settings → Integrations**, then open the **Coach** tab.
-| Environment | URL |
-|-------------|-----|
-| Local (development) | `http://localhost:3001/sse` |
-| Behind reverse proxy | `https://your-domain/mcp` |
+Supported providers (one API key, that's it):
-Works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible agent.
+| Provider | Free tier | What you get |
+|----------|-----------|-------------|
+| **OpenRouter** | 26 free models | 300+ models from every major provider, one key |
+| **Hugging Face** | Yes | Thousands of open-source models |
+| **Groq** | Yes | Ultra-fast Llama inference |
+| **Ollama** | Local, free | Run any model on your own machine |
+| **OpenAI** | No | GPT-4o, GPT-4o-mini |
+| **Claude** | No | Claude Sonnet 4.6, Opus 4.8 |
+| **Gemini** | Yes | Gemini 2.0 Flash, 2.5 Pro |
+| **Custom** | — | Any OpenAI-compatible endpoint (vLLM, TGI, LiteLLM) |
-Copy the contents of [AGENT_GUIDE.md](AGENT_GUIDE.md) into your agent's system instructions for motivation-aware coaching.
+The AI coach has access to your profile, points, program schedule, and motivation type. It can log workouts, search food, and create meal plans through the chat.
-### Claude Desktop example
+### Connecting external AI agents (MCP)
-Add to your `claude_desktop_config.json`:
+The MCP connector at port 3001 works with any MCP-compatible agent. The built-in chat and external agents coexist — use whichever fits your workflow.
+**Claude Desktop** — add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
- "diligence": {
- "url": "http://localhost:3001/sse"
- }
+ "diligence": { "url": "http://localhost:3001/sse" }
}
}
```
-Then paste the contents of `AGENT_GUIDE.md` into your Claude Desktop project instructions.
+**Claude Code** (CLI):
+```bash
+claude mcp add diligence --transport sse http://localhost:3001/sse
+```
+
+**Cursor** — add to `.cursor/mcp.json`:
+```json
+{
+ "mcpServers": {
+ "diligence": { "url": "http://localhost:3001/sse" }
+ }
+}
+```
+
+**Windsurf** — add to MCP settings, same format as Cursor.
+
+**COROS watch owners** — add both Diligence and COROS MCP servers to your agent. The agent bridges your watch data with your fitness log:
+```json
+{
+ "mcpServers": {
+ "diligence": { "url": "http://localhost:3001/sse" },
+ "coros": { "url": "https://your-coros-mcp-url/sse" }
+ }
+}
+```
+
+Copy the contents of [AGENT_GUIDE.md](AGENT_GUIDE.md) into your agent's system instructions for motivation-aware coaching.
## Configuring Integrations
diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index 717b218..e69de29 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -1,128 +0,0 @@
-import { Routes, Route, Navigate, NavLink, useNavigate, useLocation } from 'react-router-dom'
-import { useState, useEffect } from 'react'
-import { hasToken, clearToken, api } from './api'
-import Login from './pages/Login'
-import Dashboard from './pages/Dashboard'
-import LogActivity from './pages/LogActivity'
-import LogFood from './pages/LogFood'
-import Nutrition from './pages/Nutrition'
-import Rewards from './pages/Rewards'
-import Settings from './pages/Settings'
-import Onboarding from './pages/Onboarding'
-import WeekView from './pages/WeekView'
-import Welcome from './pages/Welcome'
-import SettingsIntegrations from './pages/SettingsIntegrations'
-import MealPlan from './pages/MealPlan'
-import ProgramSearch from './pages/ProgramSearch'
-import ProgramDetail from './pages/ProgramDetail'
-import CatalogDetail from './pages/CatalogDetail'
-import Support from './pages/Support'
-import SupportAdmin from './pages/SupportAdmin'
-
-function ProtectedRoute({ children }) {
- if (!hasToken()) return
+ Connect OpenAI, OpenRouter, Claude, Ollama, or any other provider to start chatting with your AI fitness coach. +
+ + Configure AI Provider + ++ Ask me anything about your fitness, nutrition, or program. +
+