AI Course Generator for Coding Agents

Tell your agent what to learn.It writes the lessons.

One skill for the coding agent you already have. Lessons land as plain files on your machine.

one sentence to your agentI want to learn CSS flexbox properly.
reading your learner profileplanning 5 lessonswriting the exercisesciting sources
learn-css-flexboxRenderedSource

Lesson 01: The one line that lines things up

Before Flexbox, boxes just stack. Why?

Drop three <div>s on a page and they stack vertically, each on its own line. That is normal block layout, and for years the only ways to put them side by side were floats and inline-block hacks that leaked spacing bugs everywhere. If Flexbox feels like a pile of properties you paste and pray over, it is usually because nobody showed you the very first thing it does — the thing every other property depends on.

the full lesson continues on your machine

saved to your machine · plain files

Try what it writes.

your agent writes markdown
```agentmentor-check
{
  "id": "css-flexbox-flex-items-scope",
  "label": "which elements are flex items",
  "prompt": "You set display: flex on a container that holds three cards, and each card has a heading and a paragraph inside it. Which elements become flex items and get laid out on the container's main axis?",
  "whyHere": "Beginners often expect display: flex to arrange every descendant. Only the container's direct children become flex items, and that decides what the axis actually moves.",
  "mode": "single",
  "choices": [
    { "id": "all", "text": "Every element inside the container, including the headings and paragraphs.", "correct": false, "feedback": "Flex only reaches one level down. The headings and paragraphs are children of each card, so each card lays them out, not the flex container." },
    { "id": "direct", "text": "Only the container's direct children — the three cards.", "correct": true, "feedback": "Right. display: flex turns the direct children into flex items; a card's own contents are arranged by that card, not by the flex container." },
    { "id": "classed", "text": "Only the elements you also give a special flex class to.", "correct": false, "feedback": "There is no per-item opt-in class. Direct children become flex items automatically once the parent is display: flex." }
  ],
  "copyPurpose": "Copy this question and my answer to an agent so it can check whether I still expect display: flex to arrange every descendant instead of only direct children."
}
```
the local reader renders it, livelesson 01 · which elements are flex items

this block is real · graded locally

What is Agent Mentor?

A skill for your coding agent. It writes lessons; a local Next.js reader renders them.

runs in
Codex, Claude Code, opencode; any agent with web search
files
plain Markdown, under agent-mentor/ on your machine
needs
nothing to install yourself; your agent sets up the reader

The lessons are yours.

They open in any editor, on any machine. Edit them, move them, back them up.

$29.90
one payment · updates for at least 12 months
Get the skill

Reference price $29.90. The platform page has the final price.

what lands on your machine
written by your agent, from this skill and one sentence
agent-mentor/
skills/
export-course/
SKILL.md
generate-course-from-topic/
agentmentor-template.json
lesson-template.md
live-sandbox-example.md
readme-template.md
sources-template.md
course-authoring-guide.md
SKILL.md
showcase/
… 20 lesson sets
lessons/
learn-css-flexbox/
01-display-flex-main-axis.md
# Lesson 01: The one line that lines things up

> Lesson objectives:
> - Say what `display: flex` does to a container and its children.
> - Identify which elements become flex items (and which do not).
> - Predict that flex items sit in a row along the main axis by default.
>
02-two-axes-justify-align.md
# Lesson 02: Two axes, two properties

> Lesson objectives:
> - Name the main axis and the cross axis of a flex container.
> - Match `justify-content` to the main axis and `align-items` to the cross axis.
> - Center an item horizontally and vertically on purpose, not by luck.
>
03-flex-direction.md
# Lesson 03: Turning the main axis with flex-direction

> Lesson objectives:
> - Say what `flex-direction` does and name its four values.
> - Explain why `justify-content` is not "the horizontal property."
> - Predict which property moves items vertically once the main axis is a column.
>
04-flex-grow-shrink-basis.md
# Lesson 04: Sharing the leftover space

> Lesson objectives:
> - Explain what `flex-basis`, `flex-grow`, and `flex-shrink` each control.
> - Predict how `flex-grow` divides the free space (not the total width).
> - Read the `flex` shorthand and know what `flex: 1` expands to.
>
05-wrap-and-build.md
# Lesson 05: Wrapping into real layouts

> Lesson objectives:
> - Use `flex-wrap: wrap` so items flow onto multiple rows instead of overflowing.
> - Space items with `gap` instead of fiddly margins.
> - Build a real, responsive nav and card row using everything from this course.
>
agentmentor.json
{
  "schemaVersion": 2,
  "originalRequest": "I already write basic HTML and CSS — I can set colors, padding, and widths and style a simple page — but Flexbox still feels like guesswork. I never know when to use justify-content versus align-items, I have no intuition for the main axis versus the cross axis, and flex-grow/flex-shrink/flex-basis confuse me. I don't know CSS Grid. Teach me Flexbox so I can confidently build common layouts like centering, nav bars, and card rows.",
  "learnerBrief": "A developer comfortable with basic HTML/CSS but not with Flexbox. The goal is a genuine mental model of the flex container's two axes so the alignment and sizing properties stop being guesswork, ending with the ability to build common real layouts.",
glossary.json
[
  {
    "term": "flex container",
    "def": "An element with display: flex, whose direct children are laid out as flex items along an axis.",
    "source": "[^S1]"
  },
  {
README.md
---
domain: 软件
tags: [CSS, Flexbox, beginner, layout, live-sandbox]
lang: en
---
# CSS Flexbox: axes, alignment, and flexible sizing
sources.md
# Sources

## S1 — MDN: Basic concepts of flexbox
URL: https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Flexible_box_layout/Basic_concepts
- authority: official-docs
- supports: Lessons 01-03 — what `display: flex` does, direct children becoming flex items, the main axis and cross axis, and that `justify-content` aligns on the main axis while `align-items` aligns on the cross axis.
maintain-course/
SKILL.md
review-course/
SKILL.md

The course is written. What else can it do?

Learning takes a model. Publishing takes a public address. Bring your own for either, or use hosted service after you buy Base.

While you learn

In-place answers

Ask right where you're confused. It answers in this course's context, not in generalities.

Web research

When a lesson needs the latest sources, one line sends it out to check and come back.

Course audio

A course becomes something you can listen to. Review with your ears on the way somewhere.

Live review

No flashcards. When it's time, the agent writes fresh questions and finds out what you actually know.

Your own key

Drop in an OpenAI-compatible key. Inference costs go to your own provider; we take nothing.

Hosted

No key needed. Turn it on in your local site after you buy Base.

Publish the course

Publish the course

Once a course is generated, it can be published as a URL. Open it yourself, or send it to colleagues, employees, students.

Self-hosted

A course is just plain files. Put it on any static host or your own server.

Hosted

Publish a URL. Edit the course and the same link updates. No server to run. Available after you buy Base.

Available after you buy Base. Credits and billing show up in your account once set up.

Generating, reading, exporting, and reviewing a course locally is free forever.

Ask in place

Quoted

Stuck mid-lesson? Ask there. Answers stay in this course's context.

You

Why is Ask in place here? Why not just ask my own agent?

Ask in place

You can. For anything outside this lesson, that is the right move. This panel will say so, word for word. Ask in place is for staying in the lesson. It answers against this course and lesson, the passage you quoted, and related glossary terms. Select text while you read, then Ask here. Short answer, then keep reading.

You

So it is not a second agent?

Ask in place

It is a narrow in-reader mentor. Your agent still owns deep work, updates, and everything past this lesson.

Demo dialogue · the real drawer lives in the local reader

Questions.

A chat leaves you a transcript. This leaves you a course: lessons as files, sources you can open, practice graded locally, and review scheduled at spaced intervals. All on your machine.

Entirely on your machine: plain Markdown plus a local site. Put it in git if you like. Publishing a course to a shareable URL is optional, available after you buy Base. The lesson files stay on your machine either way.

It can, and free prompts are everywhere. What you buy is the half a prompt cannot carry: a local runtime that grades practice, live review that writes fresh questions and returns them at spaced intervals, guard checks before a course ships, and the export chain to HTML, PDF, and Anki. That half is software.

For well-covered topics, a curated repo is good. Read it. The difference is elsewhere: here any topic becomes a course, pitched at the background you state, with practice graded on the spot and review that returns when due.

Three gates: a learner brief before writing, mandatory source records while writing, and 20+ course-guard checks before delivery. Every source is there to open and check yourself; a list that is all marketing copy or AI-generated fails guard outright.

Codex, Claude Code, and opencode are all verified out of the box. Any local agent that can read a skill directory and search the web can run it; without search, you can supply the sources.

Not for the core product. Producing, reading, exporting, and reviewing a course all run locally, for free. Three extras run on a model: in-place answers, web research while writing, and course audio. Bring your own key from any provider, at no charge to us, or use official hosted credits after you buy Base, billed per use with no subscription.

Your own agent is right for anything outside this lesson: it still owns deep work, updates, and everything past this lesson. Ask in place stays narrower. It answers against this course, this lesson, and whatever passage you select, so you get a short answer without leaving the page.

Yes. The reader is designed for absolute beginners, and one of the samples has no code at all. Topics follow your request — writing, spreadsheets, any craft; code exercises appear only in programming topics.

The charge appears as “PADDLE.NET* DFDIGITAL” on your bank or credit-card statement, because Paddle is the merchant of record for the purchase.