Unit 0. Welcome to the course

Give the course to your assistant

Four ways, and they all use the same retriever. None of them needs a key.

Use the phone on the bus, the notebook while you work, the terminal when you are not in one, and add the MCP server once so your assistant stops guessing about this course.

On your phone

Open @gecko_coach_bot in Telegram and ask it something:

where do I submit my work
what is a bounded tool
how do I run a model on my laptop

Every answer names the page it came from and links to it, so you can go and read the rest. When the course does not cover something, it says NOT IN THESE PAGES rather than inventing an answer — try asking it about Kubernetes.

What it is, exactly. The same retriever as the other three, running on a free serverless function, reading the published pages straight from GitHub. There is no model behind it: it finds the passage and quotes it. That is why it costs nothing, needs no key, and cannot hallucinate — the words in the reply are the words on the page.

It answers 8 questions an hour per chat, so one person cannot use it up, and it only knows the weeks that have been published.

It is also an open project you can improve: when it misses, that is a real issue with your name on it.

In the notebook

In a terminal

The coach is its own small program, and uvx runs it straight from GitHub — nothing to install, nothing to clone, no PyPI.

uvx --from "git+https://github.com/Gecko-Academy/gecko-ai-coach" \
  ai-coach ask "which sessions need a coding assistant" --pages ./units/en

With a local model, for prose

Without a model you get passages. With one you also get a sentence, and the citation stays attached:

uvx --from "git+https://github.com/Gecko-Academy/gecko-ai-coach" \
  ai-coach ask "do I need an API key" --pages ./units/en --provider ollama
No API key is needed for this course; every scored notebook runs offline
against a deterministic model. [unit0/introduction]

The other two commands

ai-coach providers                  # every lane it knows, and which key each needs
ai-coach measure --cases <file>     # the hit rate against a labelled set

measure is the one the bonus unit is built around: change one thing, run it again, report both numbers.

In your assistant

One command, no clone and nothing to install first:

uvx --from "git+https://github.com/Gecko-Academy/gecko-ai-coach" \
  gecko-ai-coach-course --pages /path/to/dev3pack-cohort-2026-09/units/en

Point --pages at the units/en folder inside your own clone, so it answers about the weeks you actually have.

Claude Code

Claude Desktop or Cursor

{
  "mcpServers": {
    "course": {
      "command": "uvx",
      "args": [
        "--from", "git+https://github.com/Gecko-Academy/gecko-ai-coach",
        "gecko-ai-coach-course",
        "--pages", "/absolute/path/to/dev3pack-cohort-2026-09/units/en"
      ]
    }
  }
}

What your assistant gets

The rules it follows, and why they are the point

It is not very good yet, on purpose

Ask it "how do I hand my work in?" and it answers from the final-assignment page instead of how to submit. That is a retrieval defect, it is measurable with measure_retrieval, and fixing it is a real pull request against a real repository that a real course runs.

That is the bonus unit, and it is the one piece of this course that ends in somebody else's review thread rather than a submissions folder.