# Edge FDE

> Edge Forward Deployed Engineers. Lessons, tips, and tricks from the Edge for people who train locally, bake a model, and run it on-device.

Edge FDE teaches on-device and edge AI in plain English. Start at [the course index](https://edgefde.dev/). Read the human HTML lessons. Use each course `SKILL.md` as the agent recipe, then the matching `*.llms.md` briefs for lesson steps and acceptance checks. Do not scrape the DOM when a brief or a WebMCP tool will do.

## Catalog

- [Home](https://edgefde.dev/): Human course index
- [Waitlist](https://edgefde.dev/waitlist): Paid Advanced and All-Access launch notice (no paywall)
- [courses.json](https://edgefde.dev/courses.json): Machine catalog (slug, title, summary, level, order, updated)

## Courses

- [Model architectures in plain English](https://edgefde.dev/courses/model-architectures-plain/): Beginner. A simple look at language and image model shapes, tied to the clothing-classifier course and From the metal to the model. [SKILL.md](https://edgefde.dev/courses/model-architectures-plain/SKILL.md)
- [Core AI models, typed](https://edgefde.dev/courses/coreai-models-typed/): Beginner. A simple, typed look at Apple's official coreai-models catalog: LLMs, diffusion, SAM, ASR, detectors, and more. [SKILL.md](https://edgefde.dev/courses/coreai-models-typed/SKILL.md)
- [Core AI vs Core ML vs MLX](https://edgefde.dev/courses/core-ai-vs-core-ml-vs-mlx/): Beginner. Choose the Apple AI stack that matches your OS, model, and job: Core ML, Core AI, or MLX. [SKILL.md](https://edgefde.dev/courses/core-ai-vs-core-ml-vs-mlx/SKILL.md)
- [Reuse answers that are almost the same](https://edgefde.dev/courses/on-device-semantic-cache/): Beginner. Build a small on-device cache that embeds the question, checks nearby past answers, and records hit rate. iOS 27 and macOS 27 only. [SKILL.md](https://edgefde.dev/courses/on-device-semantic-cache/SKILL.md)
- [Version prompts like product copy](https://edgefde.dev/courses/on-device-prompt-registry/): Beginner. Roll back a bad prompt in minutes instead of hunting through app builds. Version prompts like product copy, then route and roll them back with Dynamic Profiles and Dynamic Instructions. [SKILL.md](https://edgefde.dev/courses/on-device-prompt-registry/SKILL.md)
- [PyTorch to Core AI in Xcode](https://edgefde.dev/courses/pytorch-core-ai-xcode/): Intermediate. Train a clothing classifier on a Mac with MPS or CPU. Convert it with coreai-torch. Then show labels on the device in a SwiftUI Core AI app. [SKILL.md](https://edgefde.dev/courses/pytorch-core-ai-xcode/SKILL.md)
- [PyTorch to Android with LiteRT](https://edgefde.dev/courses/pytorch-android-litert/): Intermediate. Train the same clothing classifier on a Mac (MPS or CPU). Export it, convert it to LiteRT/TFLite, and show labels on the device in a Kotlin Android app. [SKILL.md](https://edgefde.dev/courses/pytorch-android-litert/SKILL.md)
- [From the metal to the model](https://edgefde.dev/courses/core-ai-from-metal-back/): Intermediate. Start at Metal shaders. Walk the clothing-classifier stack backwards until you return to the original pipeline lesson. [SKILL.md](https://edgefde.dev/courses/core-ai-from-metal-back/SKILL.md)
- [Build a context packer for on-device AI](https://edgefde.dev/courses/on-device-context-assembler/): Intermediate. Rank memory, search hits, and tools into a token budget, then hand that pack to a LanguageModelSession through Dynamic Profiles. iOS 27 and macOS 27 only. [SKILL.md](https://edgefde.dev/courses/on-device-context-assembler/SKILL.md)
- [Search private files on the phone](https://edgefde.dev/courses/on-device-retrieval-stack/): Intermediate. Index private notes on the device. Combine word search, Core AI embeddings, and a rerank step. Be honest about Spotlight versus a stack you own. iOS 27 and macOS 27 only. [SKILL.md](https://edgefde.dev/courses/on-device-retrieval-stack/SKILL.md)
- [Route work to the right Apple model](https://edgefde.dev/courses/on-device-model-router/): Intermediate. Write rules that pick SystemLanguageModel, PrivateCloudComputeLanguageModel, or CoreAILanguageModel, then apply them with Dynamic Profile modifiers. iOS 27 and macOS 27 only. [SKILL.md](https://edgefde.dev/courses/on-device-model-router/SKILL.md)
- [Run an agent with a state machine](https://edgefde.dev/courses/on-device-agent-orchestrator/): Intermediate. Own the loop yourself. One Dynamic Profile is active at a time. Tools change state. The app decides the next step. iOS 27 and macOS 27 only. [SKILL.md](https://edgefde.dev/courses/on-device-agent-orchestrator/SKILL.md)
- [Stream tokens and measure speed](https://edgefde.dev/courses/on-device-streaming-metrics/): Intermediate. Users feel the app is faster when the first token arrives sooner. You can prove it with numbers. Learn the streaming path plus time to first token and inter-token latency for on-device and Private Cloud Compute sessions. [SKILL.md](https://edgefde.dev/courses/on-device-streaming-metrics/SKILL.md)
- [Trace every step of an AI call](https://edgefde.dev/courses/on-device-llm-tracer/): Intermediate. Debug a slow or wrong answer by seeing each hop: context pack, tool call, model, and guardrail. Learn OpenTelemetry-style spans for on-device AI pipelines. [SKILL.md](https://edgefde.dev/courses/on-device-llm-tracer/SKILL.md)
- [Test AI behavior before you ship](https://edgefde.dev/courses/on-device-eval-harness/): Intermediate. Catch regressions in CI so a prompt change does not quietly break the product. Build an eval harness with trajectory grading and CI gates using Apple's Evaluations framework. [SKILL.md](https://edgefde.dev/courses/on-device-eval-harness/SKILL.md)
- [Talk to tools with MCP](https://edgefde.dev/courses/on-device-mcp-server-client/): Intermediate. Plug new tools into your Apple AI app without rewriting the chat loop. You will build a raw JSON-RPC MCP server and client, then map those tools into Foundation Models. [SKILL.md](https://edgefde.dev/courses/on-device-mcp-server-client/SKILL.md)
- [Run tools in a safe box](https://edgefde.dev/courses/on-device-sandboxed-tools/): Intermediate. Protect user data and device resources when the model calls tools. You will build an isolated tool executor with resource limits, and you will hear what Apple sandbox options actually do on iOS 27 and macOS 27. [SKILL.md](https://edgefde.dev/courses/on-device-sandboxed-tools/SKILL.md)
- [Stop prompt attacks and leaks](https://edgefde.dev/courses/on-device-guardrails/): Intermediate. Keep private data private and block common prompt-injection tricks before they reach the model or leave the device. You will add guardrails middleware with injection checks and PII redaction for on-device pipelines. [SKILL.md](https://edgefde.dev/courses/on-device-guardrails/SKILL.md)
- [Diffusion LoRA to Core AI on device](https://edgefde.dev/courses/diffusion-lora-coreai/): Advanced. Train a subject or style LoRA on a Mac. Merge it into a catalog diffusion base. Export a baked .aimodel and generate on the phone. There is no documented hot-swap LoRA. [SKILL.md](https://edgefde.dev/courses/diffusion-lora-coreai/SKILL.md)
- [LLM LoRA for your writing style](https://edgefde.dev/courses/llm-lora-writing-style/): Advanced. Prepare your own writing. Train a LoRA on a Mac. Merge it into a small instruct LLM. Export a baked .aimodel plus tokenizer, and chat on the phone. There is no documented hot-swap LoRA. [SKILL.md](https://edgefde.dev/courses/llm-lora-writing-style/SKILL.md)
- [Turn feedback into a better local model](https://edgefde.dev/courses/on-device-data-flywheel/): Advanced. Improve quality from real use without sending raw user text to a public trainer by default. Close the loop from feedback to synthetic data to LoRA to a Core AI export, with honest privacy limits. [SKILL.md](https://edgefde.dev/courses/on-device-data-flywheel/SKILL.md)
- [Make several agents agree first](https://edgefde.dev/courses/on-device-multi-agent-consensus/): Advanced. Reduce costly mistakes by requiring agreement, or a judge, before the app acts. You will build weighted voting, a judge session, and escalation with Dynamic Profiles and multiple sessions. [SKILL.md](https://edgefde.dev/courses/on-device-multi-agent-consensus/SKILL.md)
- [Pause and resume long AI jobs](https://edgefde.dev/courses/on-device-durable-workflows/): Advanced. Survive app backgrounding and retries so long tasks finish without starting over. You will build a checkpoint and resume mini workflow engine for on-device agent work. [SKILL.md](https://edgefde.dev/courses/on-device-durable-workflows/SKILL.md)

Every course directory also has one `*.llms.md` agent brief per lesson, next to the human `.html` page.

## Ratings API

- [GET /api/ratings](https://edgefde.dev/api/ratings): `{ slug, average, count, rated }` for every course
- [GET /api/ratings/{slug}](https://edgefde.dev/api/ratings/pytorch-core-ai-xcode): One course summary. `rated` is true if this browser already rated it
- POST `/api/ratings/{slug}` with `{ "stars": 1-5 }`. One rating per browser (`edgefde_rater` cookie). `409` if already rated
- [GET /api/courses/{slug}](https://edgefde.dev/api/courses/pytorch-core-ai-xcode): Course metadata plus lesson list

## WebMCP

Home and course pages register tools when the browser supports `document.modelContext` or `navigator.modelContext` (Chrome/Edge early preview). Unsupported browsers no-op.

- `list_courses`: Catalog plus optional averages
- `get_course`: One course and its lessons
- `get_agent_brief`: `SKILL.md` or a lesson `*.llms.md`
- `rate_course`: POST a 1-5 star rating (cookie one-rate rule)
- `search_courses`: Filter by text and/or level
