Lathe 场景教程:用 1527⭐ 开源的 CLI + LLM Skill 方案,让 AI 教你写代码而不是替你写
你有没有这种感觉:用 AI 编程助手写代码确实快,但半年过去,自己的技术能力似乎并没有增长?
GitHub Copilot、Claude Code、Cursor 让我们从零搭建一个 Web 应用只需几分钟,但当你离开编辑器面对白板面试、或者需要在某个不熟悉的技术栈上独立调试时,突然发现自己对 AI 生成了什么、怎么工作的知之甚少。这不仅是个人焦虑——2026 年 6 月的 HN 讨论中,大量开发者坦承「AI 替我写的代码越多,我自己的技能就越生疏」。
问题不在 AI,而在于我们使用 AI 的方式:我们让 AI 替我们思考,而不是教我们思考。
Lathe 的解法:让 AI 生成教程,你亲手敲代码
Lathe 是一个 MIT 许可的 Go 语言 CLI 工具(1527⭐),它的核心哲学是一句话:
Use LLMs to teach you, rather than think for you.
它的工作方式很简单:你告诉 Lathe 想学什么(比如「用 Zig 写一个数字合成器」「从零构建时序数据库」),Lathe 让 LLM 生成一份多篇连载的动手教程,然后你在一个本地运行的 Web UI 中一边阅读教程,一边亲手敲代码完成每个步骤——教程末尾还有练习题。
关键是,Lathe 全程不替你做:它生成的是指导性的文档,不是可粘贴的代码。你需要自己思考、动手实现,就像 2000 年代你在网站上找教程自学编程一样。
| 问题 | 传统做法 | Lathe 做法 |
|---|---|---|
| 想学一个新领域 | 搜教程 → 要么找不到,要么太浅或太旧 | LLM 在数秒内生成定制教程,含完整结构 |
| 教程半途而废 | 作者弃坑,系列永远停在 “Part 3 of 12” | 随时 /lathe-extend 续写,LLM 永不弃坑 |
| AI 让我变懒 | AI 直接给答案,不动脑 | 教程让你亲手敲代码、自己思考 |
| 没有学习材料 | 小众领域(3D 切片、嵌入式 Zig)基本没人写教程 | LLM 结合现有文档为你私人定制 |
快速上手:5 分钟跑通第一个教程
安装
brew install devenjarvis/tap/lathe curl -sSf https://raw.githubusercontent.com/devenjarvis/lathe/main/install.sh | sh go install github.com/devenjarvis/lathe@latest
安装 Agent Skill
Lathe 的核心交互通过 LLM 技能(slash command)进行。安装后让 AI Agent 能识别 /lathe 命令:
lathe skills install --user lathe skills install --agent cursor lathe skills install --agent opencode lathe skills install --agent all
生成第一个教程
在 Claude Code 或 Cursor 中,输入:
/lathe build a 3D Slicer in Erlang
LLM 会开始研究、规划、生成多篇连载教程。完成后:
lathe serve # 启动 Web UI,打开浏览器
浏览器中会看到教程的阅读界面,支持分篇导航、侧边栏目录、暗色模式。
核心功能拆解
1. LLM Skill 系统:5 个 slash command
Lathe 的所有模型工作都在 Agent 会话中运行(CLI 从不直接调用模型),由一组 Skill 驱动:
| 命令 | 功能 |
|---|---|
/lathe | 生成新教程(单篇或连载);自动记录到本地库 |
/lathe-extend | 给已有教程续写下一篇 |
/lathe-verify | 按教程步骤执行,验证代码能否编译/运行 |
/lathe-ask | 针对当前章节提问(「这一段为什么用 Map 而非 List?」) |
/lathe-tag | 给教程加搜索标签 |
Skill 通过跨 Agent 的 SKILL.md 标准分发——Claude Code、Codex、Gemini CLI、opencode、Cline 都能直接识别,只有 Cursor 需要翻译为 slash 命令格式。
2. CLI 与 Web UI:专注于阅读体验的本地服务器
lathe serve 在 http://localhost:4242 启动一个阅读界面,特色包括:
- 全文目录导航:右侧悬停查看所有章节结构
- 旁注(Side Notes):教程中插入了「停下来思考一下」的提示点
- 每章末尾练习:不提供答案——你要自己写
- 搜索与过滤:按标题、标签、状态、工具版本过滤
- 离线可用:所有内容在本地,断网也能学
教程存储在 ~/.lathe/tutorials/,每个教程一个目录:
~/.lathe/tutorials/
digital-synth-zig/
metadata.json # 标题、标签、来源、模型、voice
part-01.md
part-02.md
database-from-scratch-go/
metadata.json
index.md
3. Voices:定制教程的「写作语气」
每篇教程都有一个 Voice 控制行文风格。预装两个:
- plainspoken(默认):诚实精确,不扮演人格,不自称「我」
- companion:温暖、略带幽默的「键盘前的朋友」
也可以自定义:
/lathe-voice # LLM 会采访你,生成一份 voice spec lathe voice add my-style --file - # 保存自定义风格 lathe voice set-default companion # 设为全局默认
Voice 信息会记录在教程的 byline 中(Generated by Claude Opus 4.8 · voice companion),确保读者始终知道这是 AI 生成的。
4. 来源追踪与验证
Lathe 记录每个教程的研究来源 URL——不是内联引用,而是教程级别的来源追踪:
~/.lathe/tutorials/digital-synth-zig/metadata.json
{
"slug": "digital-synth-zig",
"title": "Build a Digital Synth in Zig",
"sources": [
"https://ziglang.org/documentation/0.13.0/",
"https://en.wikipedia.org/wiki/Digital_synthesizer"
],
"voice": "plainspoken",
"model": "Claude Opus 4.8"
}
Web UI 中会显示「Researched against N sources」面板,可直接点击查看原文。
验证功能(/lathe-verify)更为独特:它让 LLM 在临时目录中按教程步骤执行每个 Checkpoint——如果能编译运行,标记为 verified;否则标记为 failed 并记录失败步骤和错误输出。依赖工具缺失时标记为 skipped(不是失败)。
何时用 Lathe?何时不用?
| 场景 | 推荐方案 |
|---|---|
| 想学一个人类教程匮乏的新领域(嵌入式 Zig、3D 建模算法) | Lathe — LLM 为你定制,人根本没人写 |
| 已有完整的人类教程(Crafting Interpreters、build-your-own-x) | 先读人类教程 — 质量更高、更有灵魂 |
| 急于交付产品,需要快速了解 API | 直接问 LLM / 读官方文档更快 |
| 想真正掌握而不只是会用 | Lathe — 亲手敲、动手做、做练习 |
| 需要生成分发给他人的培训材料 | 不要用 Lathe — 作者明确表示 Lathe 仅供个人学习 |
注意事项
- 教程质量不如人类:Lathe 作者坦言,Lathe 教程在「人格、架构严谨性」上不如人类写的。但 LLM 不会弃坑、永远愿意修改补充。
- 推荐使用大模型:生成高质量教程需要强大的推理能力,建议使用 Opus、GPT-5 Codex 等顶级模型。
- macOS 优先:作者主要测试 macOS + Claude Code 环境。Linux 和其他 Agent 应该能用,但作者只验证了自己的设置。
- Go 版本要求:需要 Go 1.25+ 编译;使用 Homebrew 安装可跳过此限制。
- 不要用来生成公开内容:Lathe 的 voice 系统明确禁止冒充真人或伪装身份,用于个人学习而非对外发布。
总结
Lathe 不是又一个 AI 编程工具——它是对 AI 时代「被动消费代码」现象的一次有意识的纠正。它的核心洞察是:AI 最擅长的是当老师,而不是当打字员。
如果你也在担心 AI 让你的技能生锈,Lathe 提供了一个实验性的、低成本的解决方案:让 AI 出题,你来解题。GitHub 仓库 1527 个 Star 已经说明,有这个担忧的开发者在增多——而 Lathe 是目前回答这个问题的一个值得一试的开源答案。
📦 GitHub: github.com/devenjarvis/lathe 📖 许可: MIT ⚙️ 语言: Go 🏷️ 安装:
brew install devenjarvis/tap/lathe或go install github.com/devenjarvis/lathe@latest