第一次运行
装好、登录好之后,这一节我们进真实项目跑一次。目标是让你亲眼看见 Claude Code 是怎么工作的,理解它每一步在做什么。
准备一个练手项目
如果手头没有合适项目,我们从零建一个最小的 Node.js Express 服务:
mkdir claude-first-run && cd claude-first-run
npm init -y
npm install express
git init新建一个 server.js,写最少的代码:
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Hello Claude Code')
})
app.listen(3000, () => {
console.log('listening on 3000')
})提交一个初始版本,方便后面观察 Claude 的改动:
git add . && git commit -m "init: minimal express server"启动 Claude Code
在项目根目录里直接运行:
claude第一次进入某个项目时,Claude Code 会问你要不要信任这个目录。信任之后它就可以读写这个目录里的文件、以你的身份执行命令。选 Yes 之后进入对话界面,等着你输入第一句话。
项目信任
信任是按目录记录的。同一个项目下一次运行就不会再问。如果你把 Claude Code 指向陌生目录,一定要先看一眼再点信任,特别是那种带自动化脚本的开源项目。
让 Claude Code 加一个 /health 端点
在输入框里敲这句:
帮我在 server.js 里加一个 GET /health 端点,返回 JSON { status: 'ok', uptime: 秒数 },
然后写一个 supertest 单测跑通,最后把改动 commit 上去。按回车,Claude Code 会开始工作。观察终端里发生了什么,你会看到它按下面顺序动作。
第一步,Read 工具读现有代码
Claude Code 首先会调用 Read 工具,把 server.js、package.json 读出来,看你已经有什么。这一步在对话里会显示成一行小小的工具调用记录,比如:
Read(server.js)
Read 12 lines它读文件是为了确认代码风格、依赖情况,避免生成的代码和现有风格冲突。
第二步,Edit 或 Write 工具改代码
读完之后 Claude Code 会想清楚要改什么,然后调用 Edit 工具做局部替换。它会先给你看 diff,等你确认后才真正落盘。默认情况下每次写文件都会问一次,习惯之后可以按 Shift+Tab 切换到自动放行模式。
Edit(server.js)
Updated server.js with 6 additions如果需要新增文件,比如新写一个 server.test.js,它会用 Write 工具从零创建。
第三步,Bash 工具装依赖并跑测试
写完代码之后,Claude Code 需要装 supertest 和 jest。它会调用 Bash 工具执行 npm install --save-dev supertest jest,等命令返回。Bash 工具第一次跑的时候也会问你是否放行,命令内容会完整显示给你看。
装完依赖再执行 npx jest,看到全绿之后它会告诉你测试通过了。如果测试失败,它会读错误输出,改代码,再跑一次,直到过为止。
第四步,再次 Bash 提交 git
最后 Claude Code 会用 Bash 工具跑一串 git 命令,把改动提交上去:
git add server.js server.test.js package.json package-lock.json
git commit -m "feat: add /health endpoint with tests"commit 完成后它会用一句话总结这次做了什么,等你的下一条指令。
理解四个基础工具
这一次对话里出现的四个工具,是 Claude Code 最核心的能力:
- Read,读取本地文件内容进上下文,纯读,无副作用。
- Edit,对已存在的文件做精确字符串替换,改一个函数、加一段代码都靠它。
- Write,创建新文件或者整文件重写,粒度比 Edit 大。
- Bash,在你机器上跑 shell 命令,装依赖、跑测试、跑 git、启动服务都通过它。
Claude Code 的运行本质就是循环调用这四个工具外加几个更高阶的(比如 Grep、Glob、WebFetch),直到任务完成。之后章节讲的 MCP、Skill、Subagent 都是围绕这套核心工具做扩展。
退出与恢复对话
当前会话干完事儿了,退出方式有三种:
- 输入
/exit或者/quit。 - 连按两次
Ctrl+C。第一次 Claude Code 会问是不是要退出,第二次确认。 - 直接关掉终端窗口,但这样会话不会被优雅保存。
想接着刚才的会话继续聊:
claude --continue
# 或者简写
claude -c-c 会自动恢复当前目录下最近一次会话的完整上下文,包括之前读过的文件、你和 Claude 的所有对话。想选一个稍早的会话恢复:
claude --resume
# 或者简写
claude -r它会列出历史会话让你选。
Ctrl+C 的两次含义
第一次 Ctrl+C 是打断当前正在执行的任务,比如 Claude 正在读一大堆文件、你想让它停下来重新给指令,按一次就够。第二次 Ctrl+C 才是退出程序。这样设计是为了防止误按丢会话。
复盘一下发生了什么
到这里你已经完成了 Claude Code 的第一次真实使用。回想整个过程,你实际上给它下达了一句人话指令,然后它自己规划步骤、读代码、写代码、装依赖、跑测试、提交 git,全程你只做了几次放行确认。这就是 Claude Code 和普通 chat 界面的核心区别,它不只是回答你的问题,它是在你的电脑上真的动手做事。
下一节我们把新手最容易踩的那些安装、配置、代理坑集中列出来,做成一个可查的排错手册。