How to study with the tutor
The tutor is Claude acting as a study partner for one lesson of this site. It runs inside your own coding agent and reads the lesson you name, and it gives hints while keeping the answers back. This page gets you from nothing installed to a first session, and reading it doesn’t count toward any course progress.
Install
Section titled “Install”You need one of the two agents the tutor works in, Claude
Code or
opencode, and Node.js, because the install
command runs with npx.
Install the skill into your user directory, so it is found from any folder you start the agent in:
npx skills add lsimons/ai-training --skill ai-tutor -gThe skills command detects which agents you have and installs the skill
for each of them. Then check that it is listed:
npx skills list -gThe output includes a line for ai-tutor. When the site’s instructions need a
newer skill, the tutor tells you to run the same install command again.
First session
Section titled “First session”Open the lesson Your first session with a coding agent in your browser and copy its URL. Start your agent in any folder and give it the lesson.
In Claude Code, the skill has a slash command:
/ai-tutor https://lsimons.github.io/ai-training/coding-with-agents/first-session/opencode has no slash command per skill, so write a plain request that names the skill:
Use the ai-tutor skill on https://lsimons.github.io/ai-training/coding-with-agents/first-session/The tutor first fetches its instructions and the lesson from the site, one
curl command each. Your agent may ask you to approve each command. Say
yes to both.
A correct first reply names the lesson by its title, says it has the page at that URL, and offers the verbs listed below. If you pasted a progress export and a review is due, it asks one recall question before that.
What the tutor does
Section titled “What the tutor does”Every verb works on the lesson you named and on nothing else.
- explain: explains a concept in the lesson’s own words, then gives one example.
- key points: lists the lesson’s main points from its recap.
- explain like I am five: re-explains a concept with an everyday comparison, then ties it back to the definition.
- why it matters: connects what the lesson teaches to your own work.
- quiz me: asks one question at a time, with a hint when you miss.
- test me: asks you to show a behavior from the lesson and grades your attempt.
- critique this: writes an answer with planted faults for you to find, and grades your critique.
The tutor gives hints only. On a wrong checkpoint answer it asks one question. On the next wrong answer it points at the section that teaches the idea, and after that it gives a smaller example of the same idea. After three tries it sends you back to the page. Asking it to “just tell me” gets the same hint ladder.
What the tutor doesn’t do
Section titled “What the tutor doesn’t do”- It can’t read your progress from the browser. Export your progress on the settings page and paste the file into the session if you want the recall question.
- It stays on the lesson you named. For another lesson, start again with that lesson’s URL.
- It never gives the answer to a checkpoint or an exercise, before or after a hint.
- It never edits a file on your machine. Its only file read is a progress export you hand it.
Recommended flags
Section titled “Recommended flags”The tutor runs one curl command per fetch and no other command. When your
agent has no shell tool, it uses the agent’s built-in fetch tool instead
and tells you that the lesson text may be incomplete. These settings
make each fetch one approval you see, and stop anything else. The tutor
works without them too.
For Claude Code, start in the mode that asks before a command, unless your settings already allow that command:
claude --permission-mode manualThe manual value needs Claude Code 2.1.200 or later. On an older
version use --permission-mode default, which is the same mode under its
config name. To also refuse file edits outright, add
--disallowedTools Edit Write.
For opencode, use the built-in plan agent, which asks before every edit and every command:
opencode --agent planYou can also press Tab inside a running opencode session until the status line shows the plan agent.
When it fails
Section titled “When it fails”When a fetch fails, the tutor says so in one sentence, names the URL that failed, and offers to continue from the page you have open as a plain conversation without the verbs. That’s expected behavior and means the tutor couldn’t read the site, so its hints would be from memory rather than from the page. Check two things:
- Your network. Open the failed URL in your browser. If it doesn’t load there either, the site or your connection is down.
- The URL you pasted. Only lesson pages have a bundle for the tutor. Course pages, guides like this one, and reference pages don’t, and the tutor asks you for a lesson URL instead.
If both are fine and it still fails, file an issue in the issue tracker with the failed URL and the tutor’s message.