Show HN: Lathe – Use LLMs to learn a new domain, not skip past it
Show HN: Lathe – 使用 LLM 来学习新领域,而不是跳过它
Lathe: An experiment in using LLMs to teach you, rather than think for you. Lathe generates hands-on, multi-part technical tutorials on demand, with skills tuned to make content approachable. Then you work through them yourself, by hand, in a local UI built from the ground up for pleasant learning. (Just like we did it in the stone age 😎)
Lathe 是一个实验性项目,旨在利用大语言模型(LLM)来教你知识,而不是替你思考。Lathe 可以按需生成多部分的实操技术教程,并针对性地调整技能点,使内容更易于理解。随后,你可以在一个专为舒适学习而构建的本地 UI 中,亲自动手完成这些教程。(就像我们在石器时代所做的那样 😎)
What is it?
它是什么?
- Generate hands-on technical tutorials (single-part or a multi-part series) from any prompt 根据任何提示词生成实操技术教程(单篇或多篇系列)。
- Work through the tutorial yourself in a purpose-built local UI 在专用的本地 UI 中亲自动手完成教程。
- Use skills to ask questions, verify the tutorial, and extend it with a new part 使用技能来提问、验证教程,并扩展新的章节。
- Search, filter, and manage tutorials from your library 搜索、筛选并管理你库中的教程。
- Every tutorial documents its sources, which model was used, and what prompt drove the “voice” for the tutorial 每篇教程都会记录其来源、所使用的模型,以及驱动教程“语调”的提示词。
Quick start
快速开始
Lathe 是 LLM 技能与 Golang CLI 的结合体,用于存储、管理和查看生成的教程。安装完成后(见下文),你可以在任何 LLM 会话(支持 Claude Code、Cursor 和 Codex)中通过类似以下的提示词来生成教程:
/lathe build a 3D Slicer in Erlang
然后从任何终端打开 lathe:
lathe serve # 启动 Web 服务器,打开浏览器
别担心,我们也有深色模式:点击你想阅读的教程,开始学习吧!CLI 还有许多其他命令,但老实说,那些主要是为了给 LLM 提供一种确定性的方式来管理教程。我预计上述内容就是你日常使用所需的全部(这也是我唯一会用的功能)。如果你想针对教程提问、让 LLM 进行验证,或者扩展新的章节,UI 中提供了相应的操作入口,它们会给出你需要提供给 LLM 的确切技能/提示词,以触发相应动作。
Install
安装
Lathe 是一个单一的自包含二进制文件。你只需要将 lathe 放入 $PATH 中;技能会在交互式的 Claude Code、Cursor 或 Codex 会话中运行。
Homebrew (macOS, recommended):
brew install devenjarvis/tap/lathe
以 cask(预构建二进制文件)形式分发,因此仅限 macOS —— 在 Linux 上请使用安装脚本或下方的 go install。
Install script (curl | sh):
curl -sSf https://raw.githubusercontent.com/devenjarvis/lathe/main/install.sh | sh
Go (needs Go 1.25+):
go install github.com/devenjarvis/lathe@latest
From source:
git clone https://github.com/devenjarvis/lathe
cd lathe
go build -o lathe
Install the skills
安装技能
技能已打包在二进制文件中。安装 lathe 后,将其放入项目中,以便 Claude Code(或 Cursor / Codex)能够发现它们:
lathe skills install # ./.claude/skills/<name>/SKILL.md (当前项目)
lathe skills install --user # ~/.claude/skills/<name>/SKILL.md (所有项目)
lathe skills install --agent cursor # ./.cursor/commands/<slug>.md (Cursor 斜杠命令)
lathe skills install --agent codex # ./.agents/skills/<name>/SKILL.md (Codex Agent 技能)
lathe skills install --agent all # Claude Code, Cursor, 和 Codex
lathe skills list # 显示已打包的技能
Codex 使用与 Claude Code 相同的 SKILL.md 格式,因此其技能可以直接使用(--user 会安装到 ~/.agents/skills/...)。Cursor 命令通过斜杠调用(例如 /lathe);交互式移交模型已针对 Claude Code 进行了文档记录,因此 Cursor 和 Codex 上的部分运行时细节有所不同。
Why does this exist?
为什么会有这个项目?
我在 2000 年代十几岁时,通过为我的 PSP(PlayStation Portable)编写 Lua 和 C++ 自制游戏学会了编程。当时我学到的很多东西都归功于我非常有幸参与的那个小型 PSP 自制社区,但我也将大部分启蒙学习归功于互联网上免费的在线资源和教程(向 2007 年的 cplusplus.com 致敬——天哪,那个网站现在的广告比以前多多了 😅)。
最终我成为了一名职业软件工程师,在接下来的十年里,我通过寻找和消费大量的技术博客,以及对我学习风格更重要的——实操教程,来不断“提升技能”(尽管通常是为了学习比工作所需更有趣的主题)。像 build-your-own-x 仓库、《Crafting Interpreters》以及其他成千上万个教会我从构建光线追踪器、时序数据库到线性代数矩阵库等一切知识的教程(说真的,我甚至无法列出所有影响过我的精彩实操教程)。
实操学习一直是我最擅长的学习方式。这些教程为我提供了从零到一进入全新领域所需的学习曲线,更重要的是,它们给了我立足点和信心,让我能够独立地从一到二再到十。
快进到 2026 年,现在我们有了 LLM。我不想偏离主题去谈论我与 LLM 之间复杂的关系,但在编写软件方面,它们确实很有趣,而且在许多情况下效率极高!但它们为你完成了大部分工作,而随着工作的消失,它们也带走了那些曾帮助我学习新概念或新领域的过程。在某些情况下,这无关紧要——我们有产品要发布,LLM 帮助我们更快地交付——但对于我和我在这个领域及爱好中的乐趣而言,我仍然渴望那些“啊哈!”时刻,即事情终于豁然开朗,让我有信心开始将其塑造成我自己的东西。
因此,Lathe 是一个实验,旨在利用 LLM 来教我,而不是替我思考。它试图重现那些教会我热爱这份工作的实操学习时刻,并将其与一个广博的“专家”LLM 的潜力结合起来,理论上,它可以教我任何东西。我使用 Lathe 作为催化剂,开启那些我不知道如何入手、也找不到任何人类编写的现有资源来教授的项目。例如,我最初想到 Lathe 是因为我想从零开始编写一个 3D 切片软件(仅仅是找到 G-code 的文档就很痛苦,向 reprap 致敬)。在撰写本文时,我正在深入研究 Zig 的嵌入式软件开发世界。在这两种情况下,Lathe 都成为了帮助我从零到一进入晦涩或极其新兴领域的有效工具。