Theo Browne:我如何用 Claude Code 构建项目

原标题Theo Browne on Building with Claude Code

一场关于并行编码代理、图像工作室和移动端单体仓库的实操分享,也包括演示背后的错误与审阅工作。

TBTheo Browne讲者 · Ping Labs
频道
Theo - t3․gg
发布
2026年1月6日
视频
32:20
阅读
9 分钟
幻灯片
3
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Theo Browne 分享了假期期间密集使用 Claude Code 和 Opus 4.5 的经历:他构建了图像生成工作室、移动应用和防分心扩展。这些例子展示了代理能够承担的工作范围,也说明能够诊断问题、给出更清晰指令的开发者仍然重要。 他还讨论了被遗漏的嵌套仓库、部署阻力、宽松的执行权限和不完善的保护措施。订阅与推理费用数字对应一次临时促销,是他的个人估算,并非当前价格。

  1. 1诊断首次修复的失败代理最初未能修复滚动问题;Theo 说明哪个容器应该滚动后,下一次修改才成功。
  2. 2规划移动端单体仓库他要求代理制定详细改造计划,并展示代理如何处理安装错误和 API 修改。
  3. 3遗漏的应用嵌套仓库导致移动应用没有包含在已合并的改动中,暴露了他的审阅缺口。
  4. 4降低业余项目的成本他构建了一个在没有代理任务运行时屏蔽 Twitter 的扩展,并说开发变快改变了他愿意尝试的想法。
  5. 5安全网的边界插件可以拦截部分破坏性命令,但 Theo 指出脚本和其他工具可能绕过这些检查。
  6. 6特定时期的使用量估算他把临时限额翻倍促销下的订阅用量,与自己粗略估算的 API 等价费用作比较。

要点建议

  1. 并行代理和长会话可以让探索更多想法与界面方案变得可行。
  2. 代理首次尝试失败时,开发者诊断问题并明确期望行为的能力仍然有用。
  3. 成功构建和自动审阅评分不能代替对实际纳入和部署内容的仔细检查。
  4. 宽松的命令执行权限和安全插件都有局限;Theo 的个人风险承受度尤其高。
  5. Theo 关于价格和模型比较的观察,只反映录制时的个人体验。
全文

按章节阅读整理后的全文

只看原始文稿
01

大规模尝试 Claude Code

Theo 分享假期期间的密集实验,以及同时运行多个代理的新工作流程。

假期期间,Anthropic 临时将 Claude Code 的使用限额翻倍,我决定看看自己能用到什么程度。结果,我同时运行了六个实例,完成的开发工作超出预期,也开始重新思考软件开发会如何变化。

我知道 Opus 4.5 有所进步,但没想到它会如此改变我自己的工作流程。假期里,我从零构建了两个项目,其中一个还做了网页和移动端版本;我为 T3 Chat 开发功能,并用 Claude Code 配置了操作系统。

视频开头的多个终端窗口是为了演示而特意准备的,但与我的实际用法相差不远。Anthropic 没有赞助这期视频;我自己支付了每月 200 美元的订阅费。这里省略了另一家赞助商的广告。

02

构建图像工作室

一次现场修复侧栏滚动问题的演示,说明清晰的要求和编码经验仍然重要。他还展示图像生成和界面迭代。

其中一个项目是图像工作室:我用它探索未来 T3 Chat 可能采用的图像生成体验。它最初只是一个样稿,现在已有可运行的网页界面、移动应用和单体仓库。

我发现侧栏在录制时使用的较小屏幕上无法滚动,于是让 Claude Code 修复。我特别说明问题发生在网页应用中,因为这个项目不止一个应用。

新会话需要重新了解代码库,除非我恢复旧会话。对于一个中等规模的项目,我发现维持较长的会话很有用:再次给出任务时,代理保留了足够的上下文,知道从哪里开始。

Claude Code 修复侧栏滚动
幻灯片 1 / 3Claude Code 修复侧栏滚动代码差异展示了 Theo 现场调试时对滚动容器作出的修改。

第一次修复没有成功:滚动仍然试图移动整个页面,而目前只有图像网格的滚动容器能正常工作。我解释了其中的区别,请它换一种方法。

这个例子说明,已经会写代码的人使用这些工具会更有优势。我说明滚动容器的问题后,代理完成了可用的修改:侧栏表单字段独立滚动,生成按钮则固定在底部。

界面修好后,我让三个模型生成图像。后端使用 Convex,前端使用 Vite 和 Tailwind;界面由 Claude 生成。这展示的是我自己的工作流程,不保证同样的提示在所有项目中都能成功。

图像工作室的界面已经过五六次全面改版。我使用的一种方法是在不同 worktree 中运行同一条改版请求,或者为同一功能创建三个路由,再比较结果,让代理合并我喜欢的部分。我也使用了 shadcn 组件。

这个应用可以把生成的图像变成一段对话。我选择模型,让它们把海狮换成柯基,比较输出,再要求修改招牌上的文字。画廊和聊天视图让我能够探索完整的图像生成流程,而不仅是生成一张图。

图像工作室原型
幻灯片 2 / 3图像工作室原型画廊和模型控件展示了 Theo 与代理一起构建和迭代的网页界面。

这个体验仍有一些粗糙之处,但我喜欢测试这两种视图。借助 Convex,数据不仅在网页端同步,也会同步到移动应用。

03

网页与移动端单体仓库

Theo 让代理规划并执行大规模改造,介绍安装问题、手动修复环境配置,以及被遗漏的移动应用。

最让我惊讶的一条提示是:把项目改成单体仓库,保留现有网页应用,并增加一个以 iOS 为主的 React Native 应用。我指定了 Expo、Expo Router、TypeScript、Bun、共享的 Convex 绑定和 Turborepo,还要求它先写出详细计划。

我原本以为这个任务会失败。结果整个运行超过一小时,光计划就花了大约二十分钟。计划列出了工作区配置、新包、网页应用迁移和共享代码拆分。我快速看了一遍,就让它开始执行。

代理遇到安装错误后调整了依赖版本,继续处理直到构建成功。它在 Uniwind 出问题后改用 NativeWind,又修正了移动应用里的 API 调用。我看到的是它逐步处理多次失败,而不是第一次就全部做对。

移动项目仍存在问题:Convex URL 没有正确加载。我同时改用了单体仓库和 JJ 工作区,环境变量因此丢失。我手动移动了一些文件,还遇到了与 NativeWind 有关的服务端错误。

这次单体仓库改造的拉取请求大约新增 2300 行、删除 400 行。Greptile 给出了很高的置信度评分,但我不认为这客观证明代码质量。尽管如此,看到代理把项目拆成多个包并构建移动应用,仍然令人惊讶。

移动端单体仓库拉取请求
幻灯片 3 / 3移动端单体仓库拉取请求拉取请求展示了生成的改造规模;Theo 随后解释移动应用曾被意外遗漏。

其中有一个重要遗漏:Expo 初始化创建了嵌套 Git 仓库,JJ 忽略了它。我合并时没有发现移动应用缺失。后来我请 Claude 帮忙,修复历史记录,并在另一条分支上重新加入应用。这也暴露出我最初的审阅有多不充分。

生成的代码仍有粗糙之处:例如一个很大的 TSX 文件,以及没有完全处理好的键盘避让视图。不过移动应用确实能运行;由于网页和移动端共享 Convex,在移动端发起的生成也会出现在网页界面。

04

从原型到部署

他展示网页和移动端的同步,并解释配置和身份验证中更困难的工作。在面向全部用户之前,他会审计结果。

在我看来,这套配置适合代理操作的一个原因是,Convex 配置就放在代码库的文件夹中。模型可以直接编辑代码,而不必每次都操作独立的设置面板。

最困难的部分是把项目部署到生产环境:设置 Google Cloud 令牌,以及配置 Clerk、Convex 和 Vercel。即便使用成熟工具,移动应用、网页和后端之间的身份验证仍涉及多个层面。

代理在这些层面实现了身份验证,产出了相当大的改动。我合并了它,但在更彻底的审计之前,我不会把这段代码交给所有 T3 Chat 用户。原型是真实工作,不代表其安全性已经达到生产要求。

项目最终约有 11900 行代码,都是我使用每月 200 美元的 Claude Code 套餐时生成的。对我而言,值得注意的变化不只是自动补全或修改几个文件,而是能够委派一整段更大的工作。

05

浏览器扩展与小任务

一个防分心扩展和几个脚本说明,开发成本降低后,他愿意尝试更多想法。

长时间运行的任务也带来新问题:我会分心,任务结束后却没有及时回来。于是我做了一个浏览器扩展,只有 Claude Code 任务正在运行时才允许我访问 Twitter;代理一结束,访问就再次被锁定。

我不会把自己的性命交给这个扩展,也几乎没有检查过它的代码。但我大约半小时就完成了一个原本可能要花一天的业余项目。区别并不是我突然有能力做它,而是成本降低后,这个想法值得尝试了。

我让两个代理实例处理移动应用,第三个处理扩展。这个名为 Claude Blocker 的扩展已经放到 GitHub;录制时,我也已将它提交 Chrome Web Store,但较广的权限可能让审核耗时更长。

同样的变化也适用于个人小任务。我想把每个月的 Notion 日志合并成一个文件,于是将它们放进目录,请 Claude Code 编写并运行脚本。我本来也能自己写,但过去会优先处理其他工作。

我还让它将 JJ 的提交签名配置成与 Git 一致,并创建一段 Z shell 脚本:建立 worktree、切换到对应目录,再复制项目的环境文件。这些例子改变的是我的本地配置,而不只是仓库中的代码。

06

权限、保护措施与其他工具

Theo 讨论自己的风险承受度、安全插件、竞品和 Ralph loop,并明确指出局限及个人偏向。

刚接触编码代理的人,我建议先使用修改前会询问的标准模式,获得信心后再考虑自动接受。我使用跳过权限确认的模式,但我对破坏性错误的容忍度不同寻常:作为内容创作者,即使出了大事,我也能把它做成视频。

我添加了 Claude Code Safety Net 插件,用来拦截部分破坏性的 Git 和文件系统命令。即使在我的宽松配置下,它也能提供一次额外检查,但覆盖并不完整:模型仍可能用脚本或其他工具绕过限制。我把它视作一项防范措施,而不是保证。

当我需要查看代码、在已有代码库中履行工程师职责时,我仍然喜欢 Cursor;我也投资了它,这是值得说明的个人偏向。对于实验、系统配置和长时间后台任务,Claude Code 给我留下了深刻印象。

OpenCode 也很强,尤其适用于不同模型;我认为它搭配 Opus 时可能也差不多。我选择 Claude Code,是为了直接体验更新后的运行环境和订阅服务;这是录制时的评价,不是永久排名。

Ralph loop 是一种脚本:即使代理停下来,也持续重新运行并要求它继续,直到达到更高层次的完成条件。我发现 Claude Code 往往无需这种提示就能连续运行一两个小时,因此还不确定自己是否真的需要这个循环。

07

不足之处与使用量

他最后介绍使用体验中的问题,以及特定时间内订阅用量和 API 等价推理成本的估算。

体验并非没有缺点。我仍觉得 hooks、插件功能、提示编辑、上下文压缩、历史记录管理和图片上传等方面存在问题。我对结果感到兴奋,不代表产品已经完善。

我在限额临时翻倍期间使用每月 200 美元的套餐,大部分时间同时运行多个实例。仪表盘显示我只用了限额的一小部分;我粗略估计,那段时间的推理量按 API 计价约为 1500 美元。这些数字对应当时的促销和我的个人估算,并非当前价格。

作为订阅用户,我喜欢这个看起来很划算的价格;但作为一家按 API 价格购买推理服务的公司,我也质疑这种经济模式。我认为 API 客户实际上补贴了订阅用户,这是我的解释,并非这次实验所证明的财务事实。

经过几周尝试,我对自己愿意开展哪些项目有了不同的看法,也更能理解人们为什么喜欢这种工作方式。它将如何长期影响我的工作,我还在观察。

同频道的其他文章

5 张幻灯片38:47EN → 简体中文
Theo - t3․gg· 2026年10月28日Theo 的长时间 Agent 实验:验证、算力与成本Theo Browne · Ping Labs滑板游戏和两个编译器项目展示了反复检查与弹性算力如何支撑 agent 工作,也揭示了循环可能带来的高昂成本。编程智能体智能体工程AI cost & performance+2
5 张幻灯片36:07EN → 简体中文
Theo - t3․gg· 2026年10月27日Theo 谈 Token 成本、编程智能体与 AI 能力的价格Theo Browne · Ping Labs一则关于 Lauren 的 AI 支出估算广泛传播,引出了对缓存计价、基准测试和编程智能体工作方式的讨论。AI cost & performance编程智能体Inference+1
5 张幻灯片30:37EN → 简体中文
Theo - t3․gg· 2026年10月26日Theo 的三个技能:用编程智能体审查和交付代码Theo Browne · Ping Labssol-loop、full-send 和 full-stop 如何定义审查、验证以及不同程度的合并权限。Agent skills编程智能体Code review & verification+2
2 张幻灯片0:43EN → 简体中文
Theo - t3․gg· 2026年10月23日Theo 区分安全漏洞与实际攻击Theo Browne · Ping Labs一段简短讲解:软件漏洞披露和攻击事件为何属于不同类型的安全新闻。CybersecuritySoftware engineering
6 张幻灯片29:22EN → 简体中文
Theo - t3․gg· 2026年10月22日Theo 谈安全漏洞、被盗 API 密钥与 AITheo Browne · Ping Labs从漏洞披露到补丁部署之间的风险窗口,以及被盗推理密钥为何可能有价值的推测。CybersecurityAI securitySoftware engineering+1
4 张幻灯片31:13EN → 简体中文
Theo - t3․gg· 2026年10月20日Theo:更聪明的模型为何能帮助更多人Theo Browne · Ping Labs从游戏修改到编译器实验,Theo 重新思考谁能从更强大的 AI 中受益。编程智能体Developer productivityHuman-AI Collaboration+1