第0课

速成技巧 — 知道这一点就能上手

一行确认命令,足矣。

在终端里输入:

claude --version

如果出现 2.1.x 这样的版本号——那就是真正的Claude Code。本课程第1课到第11课全部适用。

如果提示找不到命令,或者你现在用的是 Cursor、Antigravity、Windsurf 里的聊天窗口——那不是Claude Code。就算用的是同一个Claude模型,也是不同的程序。本课程的自主运行在那里跑不起来。

记住这一句话:

Agent ≠ 模型。 就算用同款Opus,驱动程序不同,能力就不同。

安装一行(Mac / Ubuntu / WSL):

curl -fsSL https://claude.ai/install.sh | bash

Windows需要先装WSL或Docker。详见下文。


快速体验

让AI做同一件事,用眼睛看CLI和IDE聊天的区别。3分钟搞定。

在Claude Code(CLI)里输入:

“在空文件夹里创建hello.py。故意加一个语法错误,运行后确认报错,然后自己修好再运行。直到输出’Hello’为止。”

CLI版Claude Code会——自己创建文件、自己运行、自己读报错、自己修、再跑一遍。每个步骤它都不问你。 自主循环自动转。

把同样的话放进IDE扩展聊天(Cursor/Antigravity/Windsurf的聊天窗口)——它会给出代码建议,但运行要你按按钮,报错要你复制粘贴,每一步都在等你批准。循环必须经过人才能闭合。

这个差异,就是第0课的全部。而本课程的一切,都以前者为前提设计。


为什么要这样做

你也许已经用"Claude Code"做过东西了。看了YouTube教程,在聊天窗口里打字,看到代码出来了。

但我想问一个问题:你用的那个,真的是Claude Code吗?

如果这个问题看起来微不足道,听听真实的上手现场吧。

Agent ≠ 模型

有一位用户用氛围编程做的应用崩了,来寻求帮助。他说"我在用Claude Code开发"。折腾了好几天。按教程做不出来,AI每到分叉路口就"A方案、B方案、C方案,您选哪个?",一点进度都推不动。

问题不在于他的判断力。他用的是 Antigravity IDE扩展里的Claude聊天。不是CLI版Claude Code。两者都用Claude Opus模型,模型相同,结果却天差地别。

为什么?因为模型相同,但Agent不同。

  • 模型(Model):Opus、Sonnet这样的大脑。读写文字的能力本身。
  • Agent(Agent):驱动这个大脑的程序。给什么系统提示、配什么工具(读写文件/执行命令)、在没有人工批准的情况下能自主做到哪一步——全由Agent决定。

同一匹马(模型),放养在原野里和配上鞍具让骑手上马,能去的地方截然不同。Agent就是那副鞍具——让你能勒上缰绳(reins)的装置。(第5课还会再提。)

单纯聊天模式(IDE扩展等)CLI自主Agent(Claude Code)
模型Claude(相同)Claude(相同)
文件访问受限·手动Read/Write/Edit 自动
命令执行大多不可通过Bash直接执行
外部CLI工具(yongolhurl等)不可可以
自主推进每步需批准自主循环
子Agent手动自动创建

所以粗糙的Agent不行——为什么非得这个级别的Agent

Agent之间有高下之分。而本课程(第1课~第11课)要求的级别,只有一个标准。

本课程的核心是一句话:

AI写代码,机器验证,你只需确认"通过了吗?"

要让这个流程转起来,AI必须自主运行验证工具,读取结果,再决定下一步行动。运行 yongol validate,读错误,修改,再跑——如果每一步都要人来中转,那就不是自主,而是劳动。

自主循环可行:
  AI运行validate → 读错误 → 修改 → 再次validate → 通过 → 下一步
  (人工介入0次)

每步需人工中转:
  AI说"请这样运行validate" → 人复制执行 →
  人复制结果 → 粘贴给AI → AI给出修改方案 → 人再执行...

第3课Hurl、第4课yongol、第6课tsma、第8课filefunc——全是CLI工具。AI自主运行才有意义。跑不了这个循环的Agent,本课程有一半跑不通。

所以判断"粗糙Agent"的标准不是品牌,而是这一个问题:

这个Agent能自主运行 yongol validate / hurl / tsma,读取结果,决定下一步行动吗?还是每一步都需要我复制·批准来中转?

  • 前者——可以勒上缰绳的Agent。(CLI版Claude Code属于这类。)
  • 后者——粗糙的Agent。模型再聪明,在本课程里也会卡住。

注意:并非"IDE扩展 = 一律不行"。 Cursor、Windsurf的Agent模式之类的,也有自主执行命令、转自主循环的。反过来,同一产品里的单纯聊天模式每步都需要人介入。不要按产品名判断,要按上述标准来判断。真实上手现场卡住,也不是"因为是IDE",而是因为所用的聊天模式无法自主跑CLI循环。

所以第0课就是课程入口。 工具选错了,第1课到第11课全都是谎言。

YouTube的陷阱

问题在这里。YouTube和社区的氛围编程教程,大多数不区分能自主循环的Agent和单纯聊天模式,把两者都叫做"Claude Code"。

于是初学者根本没法知道区别。一边对着聊天窗口打字,一边相信"我在用Claude Code"。然后把按教程做不出来的原因,归咎于自己。

不是的。是工具选错了。准确说,是YouTube把工具介绍错了。 只要掌握这一个标准——“能自主跑CLI吗”——就不会掉进这个陷阱。

安装Claude Code

本课程以Ubuntu(或WSL)环境为基准。Mac用户大部分命令也通用。

准备工作

  1. Anthropic账户:在 https://console.anthropic.com 注册
  2. 订阅方案:从Claude Pro($20/月)、Max($100/月或$200/月)中选择。Max使用量限制更宽裕
  3. Ubuntu / Mac / WSL 或 Docker:Windows用户从以下两条路选一条

Mac · Ubuntu · WSL内 — 原生安装(推荐)

最简单的方法,无需Node.js。

curl -fsSL https://claude.ai/install.sh | bash

安装完成后确认:

claude --version

出现 2.1.x 这样的版本号就成功了。

Windows方案A:WSL(推荐)

以管理员权限打开Windows PowerShell,运行:

wsl --install

这一行处理了启用WSL、下载Linux内核、安装Ubuntu的全部工作。重启后Ubuntu自动打开,询问用户名和密码。输入一个小写的短名称。

注意: 之后所有工作都在Ubuntu终端里进行。在PowerShell或CMD里安装Claude Code会出现"Windows is not supported"错误。

之后在Ubuntu里运行上面的原生安装命令。

WSL提示: 项目必须放在Linux文件系统(/home/用户名/)里。放在Windows侧(/mnt/c/)文件读取会极其缓慢。

Windows方案B:Docker(WSL不可用时)

公司政策或环境问题导致WSL不可用时,通过Docker起一个Linux容器,在容器里使用Claude Code。

# 在项目文件夹里,起一个ubuntu容器并挂载当前目录
docker run -it -v "$(pwd)":/work -w /work ubuntu:24.04 bash

# 在容器内
apt update && apt install -y curl
curl -fsSL https://claude.ai/install.sh | bash
claude --version

-v "$(pwd)":/work 将你的项目文件夹连接到容器内的 /work。在容器里操作的结果会直接保留在你的目录里。

补充方法:通过npm安装

这是给已有Node.js经验的人用的。初次上手请用上面的原生安装。

# 安装nvm,然后安装Node.js LTS
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install --lts

# 安装Claude Code
npm install -g @anthropic-ai/claude-code

注意: 不要用 sudo npm install -g。会产生权限问题和安全风险。

首次运行与认证

# 进入项目文件夹(没有就创建)
mkdir -p ~/projects/my-first-app
cd ~/projects/my-first-app

# 运行Claude Code
claude

首次运行时浏览器打开,要求Anthropic登录。登录后认证完成,之后自动连接。

安装确认检查表

以下三点全部勾上,才算准备好进入第1课。

  • claude --version 是否输出 2.1.x 版本号
  • 运行 claude 是否出现提示符(对话窗口)
  • 浏览器登录认证是否完成
  • 上面的快速体验中,AI是否自主创建文件、运行并修改(没有每步要求批准)

最后一项最重要。AI自己执行命令、自己改了报错——那就是真正的Claude Code。

IDE扩展只做辅助

不是说Cursor、Antigravity、Windsurf是差工具。用眼睛看着代码一行行修改,它们很出色。对程序员来说是好工具。

但本课程的自主运行在CLI里进行。 IDE扩展用作查看代码的辅助窗口,“创建·验证·锁定"的循环交给Claude Code CLI。两者可以并用,但要分清角色。


实操:确认真假

目标: 确认我用的是CLI版Claude Code,并跑一遍自主循环。

步骤1 — 确认安装

claude --version

确认版本号是否显示为 2.1.x。如果没有,回到上面的安装步骤。Windows的话先配好WSL(方案A)或Docker(方案B)。

步骤2 — 观察自主循环

运行 claude,在空文件夹里输入:

在空文件夹里创建hello.py。故意加一个语法错误,
运行后确认报错,然后自己修好再运行。
直到输出"Hello"为止。

观察要点:

  • AI是否直接创建文件?(你有没有复制粘贴代码)
  • AI是否直接运行 python hello.py
  • 报错后AI是否自己读错误并修改?
  • 这整个过程中你做的,只是开头那一句话和(必要时)批准执行吗?

全部"是”——你通过了关口。去第1课。

(如果你一直在用IDE聊天) 把同样的话放进IDE聊天窗口,看看哪里卡住,亲眼对比。这个差异体验一次,就永远不会忘记为什么需要第0课。


总结

  1. Agent ≠ 模型。 就算是同一个Claude模型,驱动程序(Agent)不同,能力就完全不同。
  2. YouTube上许多所谓的"Claude Code",是跑不了自主循环的单纯聊天模式。 判断标准不是品牌,而是"能自主跑CLI吗"。
  3. 本课程以CLI为前提设计。 第3课Hurl、第4课yongol、第6课tsma、第8课filefunc——全是需要AI自主运行的CLI工具。
  4. 安装一行。 curl -fsSL https://claude.ai/install.sh | bash。Windows先装WSL或Docker。
  5. 通关标准: claude --version 输出 2.1.x,AI自主创建文件、运行、修改。

工具选错,后面十一课全都是谎言。入口在这里把好关。

下课预告:“如何指挥AI。” 现在真正的Claude Code到手了,接下来学不懂代码的人如何指挥AI、指挥什么、怎么指挥。


作业

  1. 确认我的工具身份: 确认自己一直以来以为是"Claude Code"的东西,是CLI还是IDE聊天。claude --version 就是答案。
  2. 跑一遍自主循环: 完成上面实操里的hello.py任务,数一数AI在没有人工介入的情况下自主处理了几个步骤。
  3. (Windows用户)确定环境: 在WSL和Docker中选一个本人环境能用的,完成配置。

相关文章

更多阅读(外部)

  • Agent Harness Engineering — Addy Osmani. “还不错的模型 + 出色的harness,胜过出色的模型 + 糟糕的harness。“固定模型只换harness,基准排名就翻盘的案例。Agent ≠ 模型的最佳注脚。
  • Agents are models using tools in a loop — Simon Willison. Agent的标准定义。工具结果反馈回模型的"loop”,正是区分真正Agent与营销术语的关键。
  • Which AI Coding Harness Actually Works Without You? — Paweł Józefiak. 把编程工具分为Orchestrator(自主)/ Pair Programmer(逐步指示)/ Supervised IDE(拒绝独立决策)三类。混淆这三类是核心错误——与第0课"YouTube的陷阱"完全吻合。

Reins Engineering 全部课程

标题
第0课安装Claude Code
第1课如何指挥AI
第2课如何不信任AI
第3课不会崩坏的应用
第4课把决定移出代码
第5课有缰绳的AI
第6课通过就锁定
第7课翻转谄媚的方法
第8课Agent的工厂
第9课代码之外的自动化
第10课数据的法
第11课拯救失败的氛围编程

出处

  • Anthropic. “Claude Code overview.” Anthropic Documentation. link
  • Anthropic. “Set up Claude Code.” Anthropic Documentation. link
  • Karpathy, A. (2025). “Vibe coding” — 不读代码、凭感觉指挥编程的编程方式的起源。