
Quick Tip — Know This and You Can Command It
One check is all it takes.
Open a terminal and type:
claude --version
If a version number like 2.1.x appears — that is the real Claude Code. Classes 1 through 11 of this course will all run.
If the command is not found, or you are currently using a chat window inside Cursor, Antigravity, or Windsurf — that is not Claude Code. Even if it uses the same Claude model, it is a different program. The autonomous loop this course relies on does not run there.
The one sentence to remember:
Agent ≠ Model. Even with the same Opus, a different program means different capabilities.
Installation in one line (Mac / Ubuntu / WSL):
curl -fsSL https://claude.ai/install.sh | bash
Windows users need WSL or Docker first. Covered below.
Hands-On Trial
Run the same task in both environments and see the difference between the CLI and an IDE chat with your own eyes. Three minutes.
In Claude Code (CLI):
“Create hello.py in an empty folder. Deliberately introduce one syntax error, run it to see the error, then fix it yourself and run it again. Until ‘Hello’ is printed.”
The CLI Claude Code — creates the file, runs it directly, reads the error, fixes it, and runs it again. It does not ask you at every step. The autonomous loop runs.
Put the same sentence into an IDE extension chat (the chat window in Cursor/Antigravity/Windsurf) — it suggests code, but you have to press the button to run it, copy the error back in, and approve each step. The loop has to pass through you to close.
This difference is all of Class 0. And the entire course is designed with the former as its premise.
Why You Must Command It This Way
You have probably already built something with “Claude Code.” You watched a YouTube tutorial, talked to the chat window, and saw code come out.
But there is one thing I want to ask. Was what you used actually Claude Code?
If that question seems trivial, hear a story from a real onboarding session.
Agent ≠ Model
A user asked for help after an app they built with vibe coding broke. They said they were “developing with Claude Code.” They spent days stuck. It would not do what they told it to, and AI kept asking “Should I go with option A, B, or C?” at every fork, making no progress.
The cause was not their judgment. What they were using was the Claude chat in an Antigravity IDE extension. Not the CLI Claude Code. Both use the Claude Opus model. The model is the same. But the results were completely different.
Why? Because even with the same model, the agent is different.
- Model: The brain — Opus, Sonnet, etc. The raw ability to read and write.
- Agent: The program that drives that brain. What system prompt it receives, what tools (file read/write/command execution) it is given, and how far it can go on its own without human approval — all of this is determined by the agent.
Even the same horse runs differently depending on whether it is let loose in an open field or saddled with a rider. The agent is that saddle and harness — the device that lets you attach reins. (You will meet this again in Class 5.)
| Simple chat mode (IDE extensions, etc.) | CLI autonomous agent (Claude Code) | |
|---|---|---|
| Model | Claude (same) | Claude (same) |
| File access | Limited / manual | Read/Write/Edit automatic |
| Command execution | Mostly not possible | Direct execution via Bash |
External CLI tools (yongol, hurl, etc.) | Not possible | Possible |
| Autonomous progress | Human approval at every step | Self-loop |
| Sub-agents | Manual | Spawned automatically |
Why a Weak Agent Won’t Do — Why This Class of Agent
Agents have tiers. And the tier this course (Classes 1–11) demands comes down to a single criterion.
The heart of this course is one sentence:
AI writes the code, machines verify it, and you only check “did it pass?”
For this to work, AI must autonomously run the verification tools, read the results, and decide its next action. The loop of running yongol validate, reading errors, fixing them, and running again — if a human has to intermediate every step, that is not autonomy, it is labor.
Autonomous loop possible:
AI runs validate → reads error → fixes → runs validate again → passes → next
(0 human interventions)
Human mediation at every step:
AI says "run validate like this" → human copies and runs →
human copies result → pastes to AI → AI proposes fix → human runs again...
Class 3 Hurl, Class 4 yongol, Class 6 tsma, Class 8 filefunc — all are CLI tools. They only make sense when AI runs them autonomously. An agent that cannot run this loop makes half of this course non-functional.
So the criterion for a “weak agent” is not the brand — it is this one question:
Does this agent autonomously run
yongol validate/hurl/tsma, read the results, and decide its next action? Or do I have to copy, approve, and mediate at every step?
- If the former — it is an agent that can take reins. (CLI Claude Code falls here.)
- If the latter — it is a weak agent. No matter how smart the model, it hits a wall in this course.
Note: “IDE extension = always no” is not the claim. Some agent modes in Cursor and Windsurf do autonomously execute commands and run loops. Conversely, the simple chat mode inside those same products passes through a human at every step. Judge by the criterion above, not the product name. What blocked people in real onboarding sessions was not “because it’s an IDE” — it was because the chat mode they were using could not run the CLI loop autonomously.
That is why Class 0 is the gate. Choose the wrong tool and the next eleven classes become fiction.
The YouTube Trap
Here is the problem. Most vibe coding tutorials on YouTube and in communities do not distinguish between an agent that runs an autonomous loop and simple chat mode — and call both “Claude Code.”
So beginners have no way to know the difference. They talk to a chat window and believe they are “using Claude Code.” Then they blame themselves when the tutorial does not work.
Wrong. They chose the wrong tool. More precisely, YouTube taught them the wrong tool. Hold onto the one criterion — “does it run the CLI autonomously” — and you will not fall into this trap.
Installing Claude Code
This course assumes an Ubuntu (or WSL) environment. Most of it also applies to Mac users.
Prerequisites
- Anthropic Account: Sign up at https://console.anthropic.com
- Subscription Plan: Choose from Claude Pro ($20/month), Max ($100/month or $200/month). Max has more generous usage limits
- Ubuntu / Mac / WSL or Docker: Windows users choose one of the two paths below
Mac · Ubuntu · Inside WSL — Native Installation (Recommended)
The simplest method — no Node.js required.
curl -fsSL https://claude.ai/install.sh | bash
After installation, verify:
claude --version
If a version number like 2.1.x appears, it succeeded.
Windows Option A: WSL (Recommended)
Open Windows PowerShell as administrator and run:
wsl --install
This one line handles enabling WSL, downloading the Linux kernel, and installing Ubuntu. After reboot, Ubuntu opens and asks for a username and password. Enter a short name in lowercase.
Note: All subsequent work is done inside the Ubuntu terminal. Installing Claude Code from PowerShell or CMD will produce a “Windows is not supported” error.
Then run the native installation line above from inside Ubuntu.
WSL Tip: Always keep projects in the Linux filesystem (
/home/username/). Placing them on the Windows side (/mnt/c/) makes file reads extremely slow.
Windows Option B: Docker (When WSL Is Blocked)
If WSL is unavailable due to company policy or environment issues, spin up a Linux container with Docker and use Claude Code inside it.
# From your project folder, launch an ubuntu container and mount the current folder
docker run -it -v "$(pwd)":/work -w /work ubuntu:24.04 bash
# Inside the container
apt update && apt install -y curl
curl -fsSL https://claude.ai/install.sh | bash
claude --version
-v "$(pwd)":/work connects your project folder to /work inside the container. Work done inside the container stays in your folder.
Alternative Method: Install via npm
This method is for people who already have Node.js experience. If you’re new, use the native installation above.
# Install nvm then Node.js LTS
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install --lts
# Install Claude Code
npm install -g @anthropic-ai/claude-code
Note: Do not use
sudo npm install -g. It creates permission issues and security risks.
First Run and Authentication
# Navigate to project folder (create if needed)
mkdir -p ~/projects/my-first-app
cd ~/projects/my-first-app
# Run Claude Code
claude
On first run, a browser opens requesting Anthropic login. After logging in, authentication is complete, and subsequent runs connect automatically.
Installation Verification Checklist
When all three are checked, you are ready to move to Class 1.
- Does
claude --versionoutput a2.1.xversion number - Does running
claudeshow a prompt (conversation window) - Is authentication complete via browser login
- In the hands-on trial above, did AI autonomously create the file, run it, and fix it (without asking for approval at each step)
The last item is the most important. If AI ran commands and fixed errors on its own — you are using the real Claude Code.
IDE Extensions Are Supplements Only
This is not saying Cursor, Antigravity, or Windsurf are bad tools. They are excellent for inspecting code line by line. Great tools for programmers.
But the autonomous loop in this course runs in the CLI. Use IDE extensions as a secondary window for reading code, and delegate the “build, verify, and lock” loop to the Claude Code CLI. Use both, but keep the roles separate.
Lab: Confirm You Have the Real Thing
Goal: Confirm that what you are using is the CLI Claude Code and run the autonomous loop once.
Step 1 — Verify Installation
claude --version
Confirm the version shows as 2.1.x. If not, return to the installation steps above. Windows users should set up WSL (Option A) or Docker (Option B) first.
Step 2 — Observe the Autonomous Loop
Run claude and from an empty folder, give it this prompt:
Create hello.py in an empty folder. Deliberately introduce one syntax error,
run it to see the error, then fix it yourself and run it again.
Until "Hello" is printed.
What to observe:
- Does AI directly create the file? (Are you copying and pasting code yourself?)
- Does AI directly run
python hello.py? - When an error occurs, does AI read it and fix it on its own?
- Was the only thing you did in this entire process the first sentence (and approval when needed)?
If all “yes” — you have passed the gate. Go to Class 1.
(If you were using IDE chat) Put the same sentence into the IDE chat window too, and compare directly where it gets stuck. Experience this difference once and you will never forget why Class 0 exists.
Summary
- Agent ≠ Model. Even with the same Claude model, different programs (agents) produce completely different capabilities.
- Much of what YouTube calls “Claude Code” is simple chat mode that cannot run an autonomous loop. The criterion is not the brand — it is “does it run the CLI autonomously.”
- This course is designed around the CLI as a prerequisite. Class 3 Hurl, Class 4 yongol, Class 6 tsma, Class 8 filefunc — all are CLI tools that only make sense when AI runs them autonomously.
- Installation is one line.
curl -fsSL https://claude.ai/install.sh | bash. Windows needs WSL or Docker first. - Gate criterion:
claude --versionoutputs2.1.x, and AI autonomously creates files, runs them, and fixes errors.
Choose the wrong tool and the next eleven classes become fiction. The gate closes here.
Next class preview: “How to command AI.” Now that you hold the real Claude Code, you will learn what to give AI and how — for someone who does not read code.
Assignment
- Verify your tool’s identity: Check whether what you have been calling “Claude Code” is the CLI or an IDE chat.
claude --versionis the answer. - Run the autonomous loop once: Complete the hello.py lab above all the way through and count how many steps AI handled on its own without human intervention.
- (Windows users) Choose your environment: Pick whichever of WSL and Docker works in your setup and finish the configuration.
Related Posts
- Why Coding Agents Work and Why They Break — The conditions under which an agent’s autonomous verification loop works and when it collapses. The theoretical background for Class 0’s “why the CLI autonomous loop.”
- Reins Engineering — AI with Reins — The difference between a harness and reins, and the full frame for viewing the agent as the substrate for reins.
Further Reading (External)
- Agent Harness Engineering — Addy Osmani. “A decent model + a great harness beats a great model + a bad harness.” Cases where only the harness was changed and benchmark rankings reversed. The definitive statement of agent ≠ model.
- Agents are models using tools in a loop — Simon Willison. The standard definition of an agent. The “loop” where tool results feed back into the model is what separates real agents from marketing language.
- Which AI Coding Harness Actually Works Without You? — Paweł Józefiak. Categorizes coding tools as Orchestrator (autonomous) / Pair Programmer (step-by-step direction) / Supervised IDE (refuses to decide alone). Confusing these three is the core mistake — exactly matching Class 0’s “YouTube trap.”
Reins Engineering Full Course
| Class | Title |
|---|---|
| Class 0 | Install Claude Code |
| Class 1 | How to Command AI |
| Class 2 | How to Distrust AI |
| Class 3 | Apps That Don’t Break |
| Class 4 | Decisions Outside Code |
| Class 5 | AI with Reins |
| Class 6 | Pass Then Lock |
| Class 7 | Flipping Sycophancy |
| Class 8 | The Agent’s Factory |
| Class 9 | Automation Beyond Code |
| Class 10 | The Law of Data |
| Class 11 | How to Rescue Failed Vibe Coding |