文章目录
- [我如何使用Claude Code](#我如何使用Claude Code)
-
- [⭐ 开始新的对话](#⭐ 开始新的对话)
- [📝 创建精确的提示](#📝 创建精确的提示)
- [🔄 让Claude Code使用Claude Code](#🔄 让Claude Code使用Claude Code)
- [🧠 告诉Claude思考](#🧠 告诉Claude思考)
- [✏️ 编辑以前的消息](#✏️ 编辑以前的消息)
- [🚀 Yolo模式](#🚀 Yolo模式)
- [🔌 MCP服务器](#🔌 MCP服务器)
- [🛠️ Claude SDK](#🛠️ Claude SDK)
- 规划模式
- [📚 让Claude RTFM(阅读文档)](#📚 让Claude RTFM(阅读文档))
- 语音输入
- [💾 早暂存,常暂存](#💾 早暂存,常暂存)
- [🌳 Git Worktrees](#🌳 Git Worktrees)
- [🧪 一次性工作实验](#🧪 一次性工作实验)
- 如果可能,不要尝试一次性完成
- 自主反馈还是人在回路中?
- 早中断,常中断
- 配置你的终端
- 连接你的IDE
- 自定义命令
- 向Claude粘贴图像
- [📋 核心技巧总结](#📋 核心技巧总结)
- [🎯 结论](#🎯 结论)
- [👨💻 关于作者](#👨💻 关于作者)
我如何使用Claude Code
作者:Philipp Spiess
发布时间:2025年6月11日 • 14分钟阅读
一个月前,我订阅了Claude Max 。之前我已经使用包括Claude Code 在内的AI代理一段时间了,但有了固定价格 后,我的使用量激增 ,它已经成为我许多任务的日常驱动工具 。我发现自己现在去VS Code的次数少了很多。
由于AI代理 对每个人来说都是全新的,我想分享一些我最近注意到的一些模式可能会很有趣。以下是我使用Claude Code的方式。
⭐ 开始新的对话
如果有一件事我希望你从中学到,那就是你绝对应该更频繁地调用 /clear
。
关键要点:
- AI代理在对话时间越长 时往往变得更不可预测
- 当你问不同的问题时尤其如此
- 即使这意味着重复一些指令 ,创建一个新的提示通常更有效
- 一旦我开始更积极地这样做,我的结果显著改善了
📝 创建精确的提示
我觉得这不言而喻,但当你与一个健忘的新毕业生 一起工作时(我喜欢这样想Claude),重要的是你要写出你脑中拥有的所有上下文。
提示编写要点:
- 这很困难,坦率地说,我认为我自己还不是很擅长
- 你能给Claude提供的上下文越多 ,它就会越有效
- 如果你想到一些边缘情况,绝对要告诉Claude
- 如果你记得"在这个代码库中我们过去为这类问题使用过类似的模式",写下来!
- 提示越精确 ,Claude做得就越好
- 读心术技术还没有到那里
隐含上下文的重要性:
- 考虑任何隐含的上下文
- 例如:如果你要求Claude创建一个现代设计,它可能完全不知道你指的现代是什么
- 最好给出例子 :创建一个Linear风格的应用UI设计
🔄 让Claude Code使用Claude Code
你知道吗,你可以将Claude Code的工具 用作MCP服务器 (claude mcp serve
)?
Task工具的强大功能:
- 当我发现这一点时,我查看了它暴露的工具,并注意到一个叫做
Task
的工具 - 这个工具的前提是启动一个子代理
- 子代理将拥有与你的主代理相同的工具访问权限(除了它不能生成另一个子任务)
- 子代理会报告结果
使用场景:
-
知道这个功能可用在你有一个需要监督的更复杂问题时非常方便
-
以下是我最近如何使用此功能对同一问题进行四种不同角色深入分析的例子:
读取当前目录中的文件以推断构建Tailwind Plus组件的模式。你应该生成4个具有略微不同优先级的子任务(例如设计颜色导出、可访问性导出、移动/响应式专家、整体样式专家)并比较他们的结果。
✻ 思考中...
现在我将生成4个专门的子任务,具有不同的优先级来分析组件的各个方面。
⏺ Task(设计颜色专家分析)
⎿ 完成 (24个工具使用 · 41.5k tokens · 3分4.4秒)⏺ Task(可访问性专家分析)
⎿ 完成 (15个工具使用 · 38.0k tokens · 2分0.0秒)⏺ Task(移动/响应式专家分析)
⎿ 完成 (14个工具使用 · 45.5k tokens · 2分1.2秒)⏺ Task(整体样式专家分析)
⎿ 完成 (23个工具使用 · 58.7k tokens · 2分22.0秒)
这很壮观 而且可以并行完成 。这是保持主任务上下文窗口有序 并让Claude保持专注的绝佳方式。
🧠 告诉Claude思考
就像我们这些血肉之躯的老人类一样,Claude默认是懒惰的。
Claude的懒惰特性:
- 当你告诉Claude做某事时,它会选择阻力最小的路径
- 如果你告诉它做至少 三件事,我敢打赌它不会多做一件事
解决方案:
- 同样的道理也适用于使用扩展思维能力
- 为了获得更好的结果 ,特别是在规划过程中
- 我建议告诉Claude进行超级思考
✏️ 编辑以前的消息
使用技巧:
- 每当你太急于点击发送 或只是觉得之前的消息可以更精确以获得更好的结果时
- 你可以按两次Escape 跳转到之前的消息并分叉对话
- 我一直使用这个功能来优化提示 或简单地让Claude重试
恢复功能:
- 如果你想以某种方式回到之前的状态
- 你可以使用
--resume
标志启动Claude来列出所有先前的线程
🚀 Yolo模式
这对我来说可能是极其不负责任的 ,但我现在主要使用--dangerously-skip-permissions
运行Claude(感谢Peter成为坏影响)。
使用场景:
- 这不是所有事情都必要的
- 但如果我让Claude处理一些长期运行的任务
- 我真的不想每分钟都必须切换焦点回到它,因为它使用新的终端命令
配置方法:
我在我的zsh配置文件中设置了这个:
bash
alias yolo="claude --dangerously-skip-permissions"
副作用:
有趣的是,现在Claude可以做任何它想做的事,我也更频繁地遇到速率限制配额警告。
🔌 MCP服务器
个人观点:
我个人对MCP服务器不是很兴奋,因为没有一个真正为我带来任何价值。
问题分析:
- 在大多数情况下,我发现它们只是用我大部分时间不需要的东西消耗宝贵的tokens
- Claude Code中的内置工具对我来说足够了(特别是当按照我这里概述的方式使用时)
Playwright MCP经验:
- 过去,我使用过Playwright MCP
- 虽然看到Claude启动浏览器、点击按钮和截图非常迷人
- 但我发现它主要是很快填满上下文窗口而没有真正带来更好的结果
🛠️ Claude SDK
SDK特性:
- Claude有一个SDK
- 它非常强大 ,特别是如果你乐意处理
stream-json
输出格式 - 但即使对于小事情,能够直接向
claude
传递提示并让它打印回复也为创建快捷方式提供了很好的机会
实用示例 - 自动Git提交:
例如,我在我的路径中有一个gcauto
可执行文件,它执行以下操作:
bash
#!/bin/bash
git commit -m "$(claude -p "查看暂存的git更改并创建总结性的git提交标题。只回应标题,不要确认。")"
使用方法:
所以每当我现在提交东西时,我只是暂存它们 并运行gcauto
。
规划模式
Claude Code有一个内置的规划模式,当你按两次Shift+Tab时触发。在这种模式下,Claude不会写入你的文件系统。
不过我个人喜欢用另一个模型进行规划,只是为了增加一些变化。在过去几周里,我一直在Google AI Studio中直接使用Gemini 2.5 Pro。我真的不知道这怎么可能,但我不认为我甚至需要为此付费?
📚 让Claude RTFM(阅读文档)
新手错误:
我在开始时犯的一个新手错误 是告诉Claude用框架x建立一个新项目。
问题分析:
- 当然,这是可行的
- 但我注意到Claude经常使用过时的设置和项目结构
- 特别是对于快速发展的前端框架!
解决方案:
我现在做的是要求Claude先阅读手册。这可以通过不同的方式完成:
方法 | 描述 |
---|---|
文档链接 | 粘贴文档链接并要求Claude先阅读它 |
技术调研 | 要求Claude找出最先进的技术 |
深入研究 | 使用Task 工具并让Claude对特定主题进行深入研究 |
深入研究任务的例子可能看起来像这样:
> 创建一个深入研究任务,找出如何将网站从tailwind 3迁移到4,然后向我展示结果的简短摘要
⏺ 我将创建一个研究任务来调查从Tailwind CSS v3到v4的迁移,重点关注你的Tailwind UI代码库的具体上下文。
⏺ Task(Tailwind v3到v4迁移研究)
⎿ 完成 (4个工具使用 · 29.9k tokens · 5分47.6秒)
⏺ 摘要
从Tailwind CSS v3迁移到v4涉及重大变化,但带来了主要的性能改进(3.5倍更快的构建)和更好的开发者体验。
要点:
- 使用自动升级工具:npx @tailwindcss/upgrade@next
- 配置从JavaScript移动到使用@theme指令的CSS优先
- 破坏性更改包括放弃的浏览器支持、新的导入语法和移除的弃用实用程序
- 性能提升:构建现在以微秒计算
- 容器查询现在是内置的(不需要插件)
使用升级工具迁移很直接,但计划测试时间以确保所有组件正确渲染。
语音输入
像Superwhisper这样的应用程序使得口述提示变得非常容易。我发现当我想写一个更长的提示时这非常有效,因为它会更快地将想法从我的脑袋中取出。
这对任何LLM输入字段都非常有效,因为LLM通常可以弄清楚你的意思,即使转录很差并且充满错误。
💾 早暂存,常暂存
遇到的问题:
- 我在Claude Code中缺少的一个功能是能够制作自动文件系统快照
- 我经常遇到Claude变得有点太激进 并开始在我不想要的时候进行大量更改的情况
- 如果这发生在我得到一些好的更改之后,这可能会严重搞乱工作目录
解决策略:
为了规避这个问题,我开始早期和经常暂存 (即git add
)更改。
具体做法:
- 如果我在一轮后很满意,我通常会暂存所有内容
- 这样我知道我可以稍后轻松恢复到它
🌳 Git Worktrees
为什么使用Worktrees:
- 我对Claude Code如此着迷,以至于我现在在我的机器上为我工作的每个主要项目至少有两个工作树
- 这允许我让Claude在同一个仓库 中处理两个不同的问题
设置方法:
设置也很容易!这就像创建一个分支 ,但代码将在不同的目录中。
具体步骤:
在你的git仓库内,运行:
bash
git worktree add ../tailwindcss.com-2 chore/upgrade-next
结果:
瞧,你现在有另一个工作目录供Claude Code在其中完全放飞自我。
🧪 一次性工作实验
AI时代的新机遇:
有了AI,代码变得真的很便宜 。这意味着你现在可以构建你只使用一次 的东西而不会感到内疚。任何你希望能让你当前任务更容易的东西都可以凭空创建。
实际案例展示:
以下是我最近构建的一些在编码代理之前永远不值得我花时间的例子:
工具类型 | 具体项目 | 用途 |
---|---|---|
仪表板 | 迁移进度可视化 | 可视化我在工作中大规模迁移期间的当前进度 |
浏览器扩展 | Tailwind版本检测器 | 显示网站使用的是哪个版本的Tailwind CSS |
CLI工具 | 转录分享系统 | 上传Claude Code转录以供公开分享 |
成本分析 | API费用统计 | 汇总我的Claude Code API成本,看看我从Max计划中获得了多少价值 |
桌面应用 | Git GUI集成 | 在git GUI内实验Claude Code的Electron应用程序 |
如果可能,不要尝试一次性完成
我目前专注于一个大规模的变更,需要我在过程中触及许多Tailwind Plus组件。我天真的第一个想法是创建一个令人惊叹的、深思熟虑的提示,包含大量细节,肯定可以让AI一次性完成所有这些工作...这肯定是可能的,对吧?
嗯,剧透警告,但我在这种方法上惨败了。它不仅没有首先做我想要的事情,还让我无法审查更改或进行任何有意义的更改。我必须重新开始。
这次我首先向Claude Code询问了有关问题的问题。我们在编写任何代码之前讨论了可能的更改。只有当我确信它知道我想要什么时,我才让它更改一个组件。经过一些测试和反馈后,我让它再做两个。然后再做五个,直到我最终让它扇出并完成剩余的工作。
虽然这显然不如创建完美提示那么壮观,但它让我更快地达到最终结果,并且有更紧密的反馈循环和监督。与手工在数百个不同组件中进行这种更改相比,我仍然能够节省大量时间。
这很可能是我使用方法错误 的问题。我看到很多其他人声称在大型一次性任务上很成功(其中一些说Claude连续工作数小时)。然而,根据我自己的经验,错误很快复合,LLM经常在上下文窗口增长时失去线索(即使有广泛的子代理调用,甚至尝试Gemini 2.5 Pro)。我很希望有人能与我分享他们的秘密!
自主反馈还是人在回路中?
与上述问题相关,这也是我仍在努力解决的一个领域。每当我看到人们赞扬AI代理时,他们都提到一些自主反馈循环的重要性,这样LLM可以自己改进结果。
然而,我还没有能够有效地做到这一点。当我尝试设置单元测试或linter反馈时,Claude会阅读它,然后建议一切都正常工作,而实际上仍有许多问题/警告。当我设置它可以导航到页面并截图时,上下文窗口很快就充满了tokens。可以肯定地说,对我来说体验并不好。
我喜欢做的是自己运行开发服务器。每当Claude回到我这里时,我自己看一看,要么原样复制粘贴任何最终的堆栈跟踪,要么给出一些关于我想要不同做法的提示。我个人发现这种方法更可能让我得到我想要的。
早中断,常中断
每当我看到出现问题时,我通常立即按Escape中断Claude,并要求它撤销最新的更改,然后引导它更多地朝我想要的方向前进。当然,这只有在你保持关注时才有效,而我坦率地说经常没有做到这一点。
配置你的终端
Claude Code有一个隐藏的/terminal-setup
命令,它会查看你当前的终端设置并进行一些更改,比如使得可以使用Shift+Enter添加换行符或注册正确的铃声类型。虽然我无法在Warp中弄清楚换行符的事情,但我的终端现在在Claude再次需要人工输入时会发出哔哔声。
连接你的IDE
另一个相对较新的功能是你可以连接Claude来查看你在IDE中打开的文件并读取linter警告等。这是通过从IDE的终端内运行claude
或运行/ide
命令来设置的。如果你想告诉Claude"修复我的linter问题",这很方便。
自定义命令
你可以在Claude Code中创建自定义斜杠命令。如果你发现自己不止一次写类似的提示,这可能是你节省更多时间的机会。
我设置了一些东西来清理Claude非常热衷于创建的临时脚本或辅助文件,无论好坏。
向Claude粘贴图像
你可以向Claude Code粘贴图像。只需直接复制图像或将文件拖到你的终端中,它就会作为附件添加到你的下一条消息中。当我想进行小的视觉更改时,我有时会使用这个功能。
📋 核心技巧总结
技巧类别 | 关键要点 | 实用性评级 |
---|---|---|
对话管理 | 频繁使用/clear 开始新对话 |
⭐⭐⭐⭐⭐ |
提示工程 | 提供充分上下文和具体指令 | ⭐⭐⭐⭐⭐ |
并行处理 | 使用Task工具进行子任务分析 | ⭐⭐⭐⭐ |
迭代开发 | 避免一次性完成大任务 | ⭐⭐⭐⭐⭐ |
版本控制 | 早暂存、常暂存,使用worktrees | ⭐⭐⭐⭐ |
工具集成 | 利用SDK创建自动化脚本 | ⭐⭐⭐ |
🎯 结论
根本性改变:
Claude Code从根本上改变了我处理许多编程任务的方式。
现实评估:
- 虽然它并不完美 ,需要调整你的工作流程
- 但生产力的提升是真实的
- 关键是在自动化和人工监督之间找到正确的平衡
- 并愿意尝试不同的方法
未来展望:
- 随着AI编码助手的继续发展,我期望这些模式中的许多会发生变化
- 但现在,这些技术使我的日常编码生活显著更有生产力 ,我敢说,更有趣
👨💻 关于作者
Philipp Spiess
当前职位: Tailwind Labs的工程师
工作经历:
- Sourcegraph和Meta的工程师
- This Week in React的策展人
- React DOM团队成员
- PSPDFKit的团队负责人
原文链接: https://spiess.dev/blog/how-i-use-claude-code
翻译说明: 本文翻译自Philipp Spiess的博客文章,展示了他使用Claude Code的实践经验和技巧总结。