diff --git a/.claude/skills/maui-ai-debugging/SKILL.md b/.claude/skills/maui-ai-debugging/SKILL.md
new file mode 100644
index 0000000000..0bbd7f56d2
--- /dev/null
+++ b/.claude/skills/maui-ai-debugging/SKILL.md
@@ -0,0 +1,257 @@
+---
+name: maui-ai-debugging
+description: >
+ End-to-end workflow for building, deploying, inspecting, and debugging .NET MAUI and MAUI Blazor Hybrid apps
+ as an AI agent. Use when: (1) Building or running a MAUI app on iOS simulator, Android emulator, or Mac Catalyst,
+ (2) Deploying a MAUI app to a device/emulator/simulator, (3) Inspecting or interacting with a running MAUI app's
+ UI (visual tree, element tapping, filling text, screenshots, property queries), (4) Debugging Blazor WebView
+ content inside a MAUI app via CDP, (5) Managing iOS simulators or Android emulators (create, boot, list, install),
+ (6) Setting up the MauiDevFlow agent and CLI in a MAUI project, (7) Completing a build-deploy-inspect-fix feedback
+ loop for MAUI app development. Covers: maui-devflow CLI, androidsdk.tool (android), appledev.tools (apple),
+ adb, xcrun simctl, and dotnet build/run for all MAUI target platforms.
+---
+
+# MAUI AI Debugging
+
+Build, deploy, inspect, and debug .NET MAUI apps from the terminal. This skill enables a complete
+feedback loop: **build → deploy → inspect → fix → rebuild**.
+
+## Prerequisites
+
+Install the CLI tool: `dotnet tool install --global Redth.MauiDevFlow.CLI`
+
+For platform-specific tools: `dotnet tool install --global androidsdk.tool` (Android)
+and `dotnet tool install --global appledev.tools` (iOS/Mac).
+
+## Integrating MauiDevFlow into a MAUI App
+
+For complete setup instructions including NuGet packages, MauiProgram.cs registration,
+Blazor script tag, Mac Catalyst entitlements, and Android port forwarding, see
+[references/setup.md](references/setup.md).
+
+**Quick summary:**
+1. Add NuGet packages (`Redth.MauiDevFlow.Agent`, and `Redth.MauiDevFlow.Blazor` for Blazor Hybrid)
+2. Register in `MauiProgram.cs` inside `#if DEBUG`
+3. For Blazor Hybrid: add `` to `wwwroot/index.html`
+4. For Mac Catalyst: ensure `network.server` entitlement
+5. For Android: run `adb reverse` for port forwarding
+
+## Core Workflow
+
+### 1. Ensure a Device/Simulator/Emulator is Running
+
+**iOS Simulator:**
+```bash
+xcrun simctl list devices booted # check booted sims
+xcrun simctl boot # boot if needed
+apple simulator list --booted # alternative
+apple simulator boot # alternative
+```
+
+**Android Emulator:**
+```bash
+android avd list # list AVDs
+android avd start --name # start emulator
+adb devices # verify connected
+```
+
+**Mac Catalyst:** No device setup needed — runs as desktop app.
+
+### 2. Build and Deploy
+
+```bash
+# iOS Simulator
+dotnet build -f net10.0-ios -t:Run -p:_DeviceName=:v2:udid=
+
+# Android Emulator
+dotnet build -f net10.0-android -t:Run
+
+# Mac Catalyst
+dotnet build -f net10.0-maccatalyst -t:Run
+```
+
+Adjust TFM version (net9.0, net10.0) to match project. Check the `.csproj` ``.
+Build + Run can take 30-120+ seconds. Use `initial_wait: 120` or higher for async monitoring.
+The `-t:Run` flag keeps the process alive (--wait-for-exit). Run in background or a separate shell.
+
+For Android emulators, set up port forwarding after deploy:
+```bash
+adb reverse tcp:9223 tcp:9223 # Agent
+adb reverse tcp:9222 tcp:9222 # CDP (Blazor)
+```
+
+### 3. Verify Connectivity
+
+```bash
+maui-devflow MAUI status # Agent connection (native)
+maui-devflow cdp status # CDP connection (Blazor WebView)
+```
+
+### 4. Inspect and Interact
+
+See **Command Reference** below for the full command set.
+
+**Typical inspection flow:**
+1. `maui-devflow MAUI tree` — see the full visual tree with element IDs, types, text, bounds
+2. `maui-devflow MAUI query --automationId "MyButton"` — find specific elements
+3. `maui-devflow MAUI element ` — get full details (type, bounds, visibility, children)
+4. `maui-devflow MAUI property Text` — read any property by name
+5. `maui-devflow MAUI screenshot --output screen.png` — visual verification
+
+**Debugging styling/layout with property inspection:**
+Use `property` to verify runtime values without relying solely on screenshots:
+```bash
+maui-devflow MAUI property BackgroundColor # verify dark mode colors
+maui-devflow MAUI property TextColor # check text visibility
+maui-devflow MAUI property IsVisible # check element visibility
+maui-devflow MAUI property Width # verify layout sizing
+maui-devflow MAUI property Opacity # check transparency
+```
+Combine tree + property for systematic debugging: get element IDs from `tree`, then inspect
+specific properties. This is more reliable than screenshots for verifying exact color values,
+font sizes, and layout metrics.
+
+**Typical interaction flow:**
+1. `maui-devflow MAUI fill "text"` — type into Entry/Editor fields
+2. `maui-devflow MAUI tap ` — tap buttons, checkboxes, list items
+3. `maui-devflow MAUI clear ` — clear text fields
+4. Take screenshot to verify result
+
+**Blazor WebView (if applicable):**
+1. `maui-devflow cdp snapshot` — DOM tree as accessible text (best for AI)
+2. `maui-devflow cdp Input fill "css-selector" "text"` — fill inputs
+3. `maui-devflow cdp Input dispatchClickEvent "css-selector"` — click elements
+4. `maui-devflow cdp Runtime evaluate "js-expression"` — run JS
+
+**Debugging Blazor styling via CDP:**
+Use `Runtime evaluate` to inspect computed styles and verify CSS:
+```bash
+maui-devflow cdp Runtime evaluate "getComputedStyle(document.querySelector('.my-class')).backgroundColor"
+maui-devflow cdp Runtime evaluate "window.matchMedia('(prefers-color-scheme: dark)').matches"
+maui-devflow cdp Runtime evaluate "document.styleSheets.length"
+```
+This enables verifying Blazor dark mode, layout, and styling without relying solely on screenshots.
+
+### 5. Reading Application Logs
+
+MauiDevFlow automatically captures all `Microsoft.Extensions.Logging` (`ILogger`) output
+to rotating log files on the device. This means any `ILogger` calls in the app's code
+(or in libraries) are available for remote retrieval — invaluable for debugging.
+
+```bash
+maui-devflow MAUI logs # fetch 100 most recent log entries
+maui-devflow MAUI logs --limit 50 # fetch 50 entries
+maui-devflow MAUI logs --skip 100 # skip newest 100, get next batch
+```
+
+Output is color-coded by level (red=Critical/Error, yellow=Warning, green=Info, gray=Debug/Trace).
+Each entry includes timestamp, log level, category (logger name), and message.
+
+**Debugging workflow with logs:**
+1. Reproduce the issue (tap a button, navigate, etc.)
+2. `maui-devflow MAUI logs --limit 20` — check recent log entries for errors or warnings
+3. If needed, add temporary `ILogger` calls to the app code for more detail:
+ ```csharp
+ _logger.LogInformation("Button tapped, item count: {Count}", items.Count);
+ _logger.LogWarning("Unexpected state: {State}", currentState);
+ ```
+4. Rebuild, redeploy, reproduce, and fetch logs again
+
+**Log configuration** (in `AddMauiDevFlowAgent` options):
+- `EnableFileLogging` (default: `true`) — toggle file logging
+- `MaxLogFileSize` (default: 1 MB) — max size per log file before rotation
+- `MaxLogFiles` (default: 5) — number of rotated files to keep
+
+The agent also exposes logs via REST: `GET /api/logs?limit=N&skip=N` returns a JSON array.
+
+### 6. Fix and Rebuild
+
+After identifying issues, edit source, rebuild (`dotnet build`), and redeploy.
+The full cycle: edit code → `dotnet build -t:Run ...` → `maui-devflow MAUI status` → inspect.
+
+## Command Reference
+
+### maui-devflow MAUI (Native Agent)
+
+Global options: `--agent-host` (default localhost), `--agent-port` (default 9223), `--platform`.
+
+| Command | Description |
+|---------|-------------|
+| `MAUI status` | Agent connection status, platform, app name |
+| `MAUI tree [--depth N]` | Visual tree (IDs, types, text, bounds). Depth 0=unlimited |
+| `MAUI query --type T --automationId A --text T` | Find elements (any/all filters) |
+| `MAUI tap ` | Tap an element |
+| `MAUI fill ` | Fill text into Entry/Editor |
+| `MAUI clear ` | Clear text from element |
+| `MAUI screenshot [--output path.png]` | PNG screenshot |
+| `MAUI property ` | Read property (Text, IsVisible, FontSize, etc.) |
+| `MAUI element ` | Full element JSON (type, bounds, children, etc.) |
+| `MAUI navigate ` | Shell navigation (e.g. `//native`, `//blazor`) |
+| `MAUI logs [--limit N] [--skip N]` | Fetch application logs (newest first) |
+
+Element IDs come from `MAUI tree` or `MAUI query`. AutomationId-based elements use their
+AutomationId directly. Others use generated hex IDs. When multiple elements share the same
+AutomationId, suffixes are appended: `TodoCheckBox`, `TodoCheckBox_1`, `TodoCheckBox_2`, etc.
+
+### maui-devflow cdp (Blazor WebView CDP)
+
+Global option: `--endpoint` (default `ws://localhost:9222/devtools/browser`).
+
+| Command | Description |
+|---------|-------------|
+| `cdp status` | CDP connection status |
+| `cdp snapshot` | Accessible DOM text (best for AI agents) |
+| `cdp Browser getVersion` | Browser/WebView version info |
+| `cdp Runtime evaluate ` | Evaluate JavaScript |
+| `cdp DOM getDocument` | Full DOM document |
+| `cdp DOM querySelector ` | Find first matching element |
+| `cdp DOM querySelectorAll ` | Find all matching elements |
+| `cdp DOM getOuterHTML ` | Get outer HTML of element |
+| `cdp Page navigate ` | Navigate to URL |
+| `cdp Page reload` | Reload page |
+| `cdp Page captureScreenshot` | Screenshot as base64 |
+| `cdp Input dispatchClickEvent ` | Click element by CSS selector |
+| `cdp Input insertText ` | Insert text at focused element |
+| `cdp Input fill ` | Focus + fill text into element |
+
+### Agent REST API (Direct HTTP)
+
+The agent exposes JSON endpoints on port 9223 (configurable):
+
+| Endpoint | Method | Body |
+|----------|--------|------|
+| `/api/status` | GET | — |
+| `/api/tree?depth=N` | GET | — |
+| `/api/element/{id}` | GET | — |
+| `/api/query?type=&text=&automationId=` | GET | — |
+| `/api/action/tap` | POST | `{"elementId":"..."}` |
+| `/api/action/fill` | POST | `{"elementId":"...","text":"..."}` |
+| `/api/action/clear` | POST | `{"elementId":"..."}` |
+| `/api/action/focus` | POST | `{"elementId":"..."}` |
+| `/api/screenshot` | GET | — (returns PNG) |
+| `/api/property/{id}/{name}` | GET | — |
+| `/api/logs?limit=N&skip=N` | GET | — (returns JSON array of log entries) |
+
+## Platform Details
+
+For detailed platform-specific setup, simulator/emulator management, and troubleshooting:
+
+- **Setup & Installation**: See [references/setup.md](references/setup.md)
+- **iOS / Mac Catalyst**: See [references/ios-and-mac.md](references/ios-and-mac.md)
+- **Android**: See [references/android.md](references/android.md)
+
+## Tips
+
+- Use `AutomationId` on important MAUI controls for stable element references.
+- The visual tree only reflects what's currently rendered. Off-screen items in CollectionView
+ may not appear until scrolled into view.
+- **Shell navigation**: Use `maui-devflow MAUI navigate "//route"` for Shell-based apps.
+ Routes are defined in AppShell.xaml via `Route` property on ShellContent elements.
+- For Blazor Hybrid, `cdp snapshot` is the most AI-friendly way to read page state.
+- Build times: Mac Catalyst ~5-10s, iOS ~30-60s, Android ~30-90s. Set appropriate timeouts.
+- After Android deploy, always run `adb reverse` for port forwarding.
+- **Property inspection** is more reliable than screenshots for verifying exact runtime values
+ (colors, sizes, visibility). Use `tree` → `property` workflow for systematic debugging.
+- **Application logs** are captured automatically from `ILogger`. Use `MAUI logs` to fetch
+ them remotely. Add temporary `ILogger` calls for extra debug output, then fetch logs after
+ reproducing issues. This is often faster than attaching a debugger.
diff --git a/.claude/skills/maui-ai-debugging/references/android.md b/.claude/skills/maui-ai-debugging/references/android.md
new file mode 100644
index 0000000000..834df531a8
--- /dev/null
+++ b/.claude/skills/maui-ai-debugging/references/android.md
@@ -0,0 +1,173 @@
+# Android Reference
+
+## Table of Contents
+- [Emulator Management](#emulator-management)
+- [Building and Deploying](#building-and-deploying)
+- [Android CLI Tool](#android-cli-tool)
+- [ADB Reference](#adb-reference)
+- [SDK Management](#sdk-management)
+- [Troubleshooting](#troubleshooting)
+
+## Emulator Management
+
+### List and start AVDs
+```bash
+android avd list # list available AVDs
+android avd start --name # start emulator
+```
+
+### Create AVD
+```bash
+# List available targets and device profiles
+android avd targets # system images
+android avd devices # device profiles (pixel, etc.)
+
+android avd create --name "Pixel8API35" \
+ --sdk "system-images;android-35;google_apis;arm64-v8a" \
+ --device pixel_8
+```
+
+### Delete AVD
+```bash
+android avd delete --name
+```
+
+### Verify emulator is running
+```bash
+adb devices # should show "emulator-5554 device"
+android device list # formatted list
+```
+
+## Building and Deploying
+
+```bash
+# Build and deploy to running emulator
+dotnet build -f net10.0-android -t:Run
+
+# Build only (no deploy)
+dotnet build -f net10.0-android
+```
+
+**Critical: Port forwarding after deploy** — the Android emulator runs in its own network.
+Forward both the Agent and CDP ports:
+```bash
+adb reverse tcp:9223 tcp:9223 # MauiDevFlow Agent
+adb reverse tcp:9222 tcp:9222 # CDP (Blazor WebView)
+```
+
+Then verify: `maui-devflow MAUI status` and `maui-devflow cdp status`.
+
+### Install APK manually
+```bash
+adb install -r path/to/app.apk # install/reinstall
+android device install --package path/to/app.apk
+```
+
+## Android CLI Tool
+
+The `android` command (from `androidsdk.tool` NuGet) wraps SDK tools.
+
+### SDK management
+```
+android sdk list # all packages
+android sdk list --installed # installed only
+android sdk list --available # available for install
+android sdk install --package "platforms;android-35"
+android sdk install --package "system-images;android-35;google_apis;arm64-v8a"
+android sdk install --package "emulator"
+android sdk uninstall --package
+android sdk info # SDK location, tools versions
+android sdk accept-licenses # accept all SDK licenses
+android sdk download # download cmdline-tools
+```
+
+### AVD management
+```
+android avd list # available AVDs
+android avd targets # available system images
+android avd devices # available device profiles
+android avd create --name --sdk --device
+android avd delete --name
+android avd start --name
+```
+
+### Device/emulator operations
+```
+android device list # connected devices/emulators
+android device info [--device ] # device properties
+android device install --package # install APK
+android device uninstall --package # uninstall by package name
+```
+
+### JDK management
+```
+android jdk list # available JDKs
+android jdk info # current JDK info
+```
+
+## ADB Reference
+
+### Device/emulator basics
+```bash
+adb devices # list connected devices
+adb -s shell # shell into specific device
+adb shell pm list packages | grep # find installed packages
+adb shell am start -n / # launch activity
+adb shell am force-stop # kill app
+```
+
+### Port forwarding (critical for MauiDevFlow)
+```bash
+adb reverse tcp:9223 tcp:9223 # Agent
+adb reverse tcp:9222 tcp:9222 # CDP
+adb reverse --list # verify forwarding
+adb reverse --remove-all # clean up
+```
+
+### File operations
+```bash
+adb push local/file /sdcard/path # push file to device
+adb pull /sdcard/path local/file # pull file from device
+```
+
+### Logs
+```bash
+adb logcat -s "DOTNET" --format brief # .NET runtime logs
+adb logcat -s "MauiDevFlow" # agent logs
+adb logcat --pid=$(adb shell pidof ) # app-specific logs
+adb logcat -c # clear log buffer
+```
+
+### Screenshots and screen recording
+```bash
+adb shell screencap /sdcard/screen.png && adb pull /sdcard/screen.png
+adb shell screenrecord /sdcard/video.mp4 # Ctrl+C to stop
+```
+
+## SDK Management
+
+### Typical setup for MAUI Android development
+```bash
+android sdk accept-licenses
+android sdk install --package "platforms;android-35"
+android sdk install --package "build-tools;35.0.0"
+android sdk install --package "system-images;android-35;google_apis;arm64-v8a"
+android sdk install --package "emulator"
+android sdk install --package "platform-tools"
+```
+
+### Environment variables
+```bash
+export ANDROID_HOME=$HOME/Library/Android/sdk
+export ANDROID_SDK_ROOT=$ANDROID_HOME
+export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator
+```
+
+## Troubleshooting
+
+- **`adb devices` shows "unauthorized"**: Accept the USB debugging prompt on the device/emulator.
+- **Agent not connecting on emulator**: Forgot `adb reverse`. Run port forwarding commands.
+- **Emulator won't start**: Check available system images with `android avd targets`. May need
+ to install with `android sdk install --package "system-images;..."`.
+- **Build error "No Android devices found"**: Ensure emulator is booted (`adb devices`).
+- **Slow emulator**: Use hardware acceleration. Prefer `arm64-v8a` images on Apple Silicon Macs.
diff --git a/.claude/skills/maui-ai-debugging/references/ios-and-mac.md b/.claude/skills/maui-ai-debugging/references/ios-and-mac.md
new file mode 100644
index 0000000000..b5ca449c80
--- /dev/null
+++ b/.claude/skills/maui-ai-debugging/references/ios-and-mac.md
@@ -0,0 +1,177 @@
+# iOS & Mac Catalyst Reference
+
+## Table of Contents
+- [Simulator Management](#simulator-management)
+- [Building and Deploying](#building-and-deploying)
+- [Apple CLI Tool](#apple-cli-tool)
+- [xcrun simctl Reference](#xcrun-simctl-reference)
+- [Troubleshooting](#troubleshooting)
+
+## Simulator Management
+
+### List simulators
+```bash
+xcrun simctl list devices # all devices by runtime
+xcrun simctl list devices booted # only booted
+xcrun simctl list devices available # only available
+apple simulator list # formatted table
+apple simulator list --booted # booted only
+```
+
+### Create simulator
+```bash
+# List available device types and runtimes first
+xcrun simctl list devicetypes # e.g. "iPhone 16 Pro"
+xcrun simctl list runtimes # e.g. "iOS 18.2"
+
+xcrun simctl create "My iPhone" "iPhone 16 Pro" "iOS 18.2"
+apple simulator create "My iPhone" --device-type "iPhone 16 Pro" --runtime "iOS 18.2"
+```
+
+### Boot / shutdown
+```bash
+xcrun simctl boot
+xcrun simctl shutdown
+apple simulator boot
+apple simulator shutdown
+```
+
+### Install and launch app
+```bash
+xcrun simctl install booted /path/to/App.app
+xcrun simctl launch booted com.company.appid
+```
+
+### Screenshots (native simctl)
+```bash
+xcrun simctl io booted screenshot output.png
+apple simulator screenshot --output output.png
+```
+
+### Delete / erase
+```bash
+xcrun simctl erase # factory reset
+xcrun simctl delete # permanently remove
+xcrun simctl delete unavailable # clean up old sims
+```
+
+## Building and Deploying
+
+### Mac Catalyst
+```bash
+dotnet build -f net10.0-maccatalyst # build only
+dotnet build -f net10.0-maccatalyst -t:Run # build + run
+open path/to/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/AppName.app # run existing
+```
+
+### iOS Simulator
+```bash
+# Find UDID of booted simulator
+UDID=$(xcrun simctl list devices booted -j | python3 -c "
+import json,sys
+d=json.load(sys.stdin)
+for r in d['devices'].values():
+ for dev in r:
+ if dev['state']=='Booted': print(dev['udid']); break
+" 2>/dev/null | head -1)
+
+# Build and deploy
+dotnet build -f net10.0-ios -t:Run -p:_DeviceName=:v2:udid=$UDID
+```
+
+The `-t:Run` target uses `--wait-for-exit:true`, keeping the process alive while the app runs.
+Run in background or a separate shell. The app process outputs console logs to stdout.
+
+### Determining the correct TFM
+Check the project file for ``:
+```bash
+grep -i TargetFramework *.csproj
+```
+Common values: `net9.0-ios`, `net9.0-maccatalyst`, `net10.0-ios`, `net10.0-maccatalyst`.
+
+## Apple CLI Tool
+
+The `apple` command (from `appledev.tools` NuGet) provides higher-level wrappers.
+
+### Simulator commands
+```
+apple simulator list [--booted|--available|--unavailable|--name "..."]
+apple simulator create --device-type "..." [--runtime "..."]
+apple simulator boot
+apple simulator shutdown
+apple simulator erase
+apple simulator delete
+apple simulator screenshot [--output path.png]
+apple simulator app install
+apple simulator app launch
+apple simulator app uninstall
+apple simulator open []
+apple simulator open-url
+apple simulator logs [--filter "..."]
+apple simulator push [--payload "..."]
+apple simulator location set --lat --lon
+apple simulator privacy grant
+```
+
+### Device commands
+```
+apple device list
+apple xcode list # installed Xcode versions
+```
+
+## xcrun simctl Reference
+
+Key subcommands beyond the basics:
+
+| Command | Use |
+|---------|-----|
+| `simctl addmedia file.jpg` | Add photos/videos to sim |
+| `simctl openurl "url"` | Open URL / deep link |
+| `simctl push bundle payload.json` | Simulate push notification |
+| `simctl privacy grant location bundle` | Grant permissions |
+| `simctl location set 37.33,-122.03` | Set GPS location |
+| `simctl pbcopy ` | Copy stdin to clipboard |
+| `simctl pbpaste ` | Read clipboard |
+| `simctl get_app_container bundle` | App container path |
+| `simctl listapps ` | Installed apps |
+
+## Troubleshooting
+
+- **Mac Catalyst blank/white screen after crash**: macOS shows a "reopen windows" dialog after
+ a crash, blocking the app from rendering. All MAUI elements appear as `[hidden] [disabled]`
+ with `-1x-1` sizes. Fix: clear saved state before launch:
+ ```bash
+ rm -rf ~/Library/Saved\ Application\ State/.savedState
+ ```
+ Or detect and dismiss via AppleScript:
+ ```bash
+ osascript -e 'tell application "System Events" to tell process "AppName" to click button "Reopen" of window 1'
+ ```
+- **"Unable to lookup in current state: Shutdown"**: Simulator not booted. Run `xcrun simctl boot `.
+- **Build error NETSDK1005 "Assets file doesn't have a target"**: Wrong TFM. Check
+ `` in .csproj and use matching version (e.g. `net10.0-ios` not `net9.0-ios`).
+- **Agent not connecting after deploy**: Ensure app finished launching. Wait 3-5 seconds after
+ `dotnet build -t:Run` starts before checking `maui-devflow MAUI status`.
+- **Mac Catalyst app name vs binary name**: The `.app` bundle name may differ from the project
+ name (e.g. `MauiTodo.app` vs `SampleMauiApp`). Check the `ApplicationTitle` in .csproj.
+ Find the bundle: `find bin/Debug/net10.0-maccatalyst -name "*.app" -maxdepth 3`
+
+## Dark Mode Testing
+
+### Toggle dark mode
+```bash
+# macOS (affects Mac Catalyst apps)
+osascript -e 'tell application "System Events" to tell appearance preferences to set dark mode to true'
+osascript -e 'tell application "System Events" to tell appearance preferences to set dark mode to false'
+
+# iOS Simulator
+xcrun simctl ui appearance dark
+xcrun simctl ui appearance light
+```
+
+### Verify dark mode via inspection
+Use `maui-devflow` to verify colors without relying on screenshots:
+```bash
+maui-devflow MAUI property BackgroundColor # check MAUI element colors
+maui-devflow cdp Runtime evaluate "window.matchMedia('(prefers-color-scheme: dark)').matches" # Blazor
+```
diff --git a/.claude/skills/maui-ai-debugging/references/setup.md b/.claude/skills/maui-ai-debugging/references/setup.md
new file mode 100644
index 0000000000..1d12a8837f
--- /dev/null
+++ b/.claude/skills/maui-ai-debugging/references/setup.md
@@ -0,0 +1,197 @@
+# Setup & Installation
+
+Complete guide for integrating MauiDevFlow into a .NET MAUI app.
+
+## 1. Install CLI Tools
+
+```bash
+dotnet tool install --global Redth.MauiDevFlow.CLI # maui-devflow
+dotnet tool install --global androidsdk.tool # android (Android only)
+dotnet tool install --global appledev.tools # apple (iOS/Mac only)
+```
+
+Verify: `maui-devflow --version`
+
+## 2. Add NuGet Packages
+
+Add to your MAUI app's `.csproj`:
+
+```xml
+
+
+
+
+
+```
+
+- `Redth.MauiDevFlow.Agent` — Required for all MAUI apps. Provides the in-app agent
+ for visual tree inspection, screenshots, tapping, filling text, etc.
+- `Redth.MauiDevFlow.Blazor` — Required for Blazor Hybrid apps. Provides the CDP bridge
+ for DOM inspection, JavaScript evaluation, and Blazor debugging.
+
+## 3. Register in MauiProgram.cs
+
+```csharp
+using MauiDevFlow.Agent;
+using MauiDevFlow.Blazor; // Blazor Hybrid only
+
+var builder = MauiApp.CreateBuilder();
+// ... your existing setup ...
+
+#if DEBUG
+builder.Services.AddBlazorWebViewDeveloperTools(); // Blazor Hybrid only
+builder.AddMauiDevFlowAgent(options => { options.Port = 9223; });
+builder.AddMauiBlazorDevFlowTools(options => { options.Port = 9222; }); // Blazor Hybrid only
+#endif
+```
+
+**Agent options:**
+- `Port` — HTTP port for the agent REST API (default: 9223)
+- `Enabled` — Enable/disable the agent (default: true)
+- `MaxTreeDepth` — Max depth for visual tree queries, 0 = unlimited (default: 0)
+
+**Blazor options:**
+- `Port` — WebSocket port for CDP bridge (default: 9222)
+- `Enabled` — Enable/disable CDP bridge (default: true)
+- `EnableWebViewInspection` — Enable WebView inspection (default: true)
+- `EnableLogging` — Log debug messages (default: true in DEBUG)
+
+## 4. Blazor Hybrid: Add Script Tag to index.html
+
+**This step is required for Blazor Hybrid apps.** The `Redth.MauiDevFlow.Blazor` NuGet package
+delivers `chobitsu.js` automatically as a static web asset — no file copying or manual downloads
+needed. You just need to add one script tag to `wwwroot/index.html`.
+
+Add this line before `
+
+
+
+