메뉴
HN
Hacker News 52일 전

Lathe: LLM이 대신 생각하게 두지 말고 배움의 도구로 쓰세요

IMP
6/10
핵심 요약

Lathe는 AI가 코드를 대신 짜주는 것을 넘어, 사용자가 직접 새로운 기술을 체득하도록 돕는 오픈소스 로컬 튜토리얼 생성기입니다. 사용자가 프롬프트를 입력하면 다중 파트 실습형 튜토리얼을 만들어주며, 특화된 로컬 UI를 통해 학습, 질문, 내용 검증 등을 지원합니다. 현재 Go 기반 CLI와 웹 인터페이스를 통해 제공되며 Claude Code, Cursor, Codex 환경과 연동됩니다.

번역된 본문

Lathe(선반)는 LLM이 사용자를 대신해 생각하도록 두는 대신, 가르치기 위해 활용하는 실험적 프로젝트입니다. Lathe는 요청 즉시 실습형 다중 파트 기술 튜토리얼을 생성하며, 내용을 더 쉽게 접근할 수 있도록 스킬(Skills) 기능을 조정합니다. 그런 다음 처음부터 즐거운 학습을 위해 구축된 로컬 UI를 통해 직접 실습하며 학습하게 됩니다. (마치 석기 시대에 우리가 하던 방식처럼 😎)

어떤 프로젝트인가요?

  • 임의의 프롬프트로 실습형 기술 튜토리얼(단일 파트 또는 다중 파트 시리즈) 생성
  • 전용으로 구축된 로컬 UI에서 직접 튜토리얼 실습 진행
  • 스킬(Skills)을 활용해 질문하기, 튜토리얼 검증, 새로운 파트로 확장하기
  • 라이브러리에서 튜토리얼 검색, 필터링 및 관리
  • 모든 튜토리얼은 출처, 사용된 모델, 튜토리얼의 "분위기(voice)"를 결정한 프롬프트를 문서화함

빠른 시작 Lathe는 LLM 스킬(Skills)과 생성된 튜토리얼을 저장, 관리 및 보기 위한 Golang CLI의 조합입니다. 아래 설치 후, 다음과 같이 프롬프트를 입력하여 LLM 세션(Claude Code, Cursor, Codex 지원) 내에서 튜토리얼을 생성할 수 있습니다:

/lathe build a 3D Slicer in Erlang (역자 주: "Erlang으로 3D 슬라이서 만들기"와 같은 형식)

그런 다음 아무 터미널에서나 lathe를 엽니다: lathe serve # 웹 서버를 시작하고 브라우저를 엽니다

걱정하지 마세요, 다크 모드도 있습니다: 원하는 튜토리얼을 클릭하고 학습을 시작하세요!

CLI에는 다른 명령어도 많이 있지만, 솔직히 말하면 이 명령어들은 LLM이 결정론적인 방식으로 튜토리얼을 관리할 수 있도록 구축된 것들입니다. 저는 일상적으로 위에서 언급한 기능이면 충분할 것이라고 생각합니다 (제가 실제로 사용하는 전부이기도 합니다). 튜토리얼에 대해 질문을 하거나, LLM이 이를 검증하게 하거나, 추가 파트로 확장하고 싶다면 UI에 각 작업을 위한 버튼이 준비되어 있으며, 해당 작업을 트리거하기 위해 LLM에게 제공해야 할 정확한 스킬 및 프롬프트를 보여줍니다.

설치 방법 Lathe는 단일 자체 포함 바이너리입니다. 필요한 것은 경로($PATH)에 lathe가 있는 것뿐입니다. 스킬은 대화형 Claude Code, Cursor 또는 Codex 세션에서 실행됩니다.

  • Homebrew (macOS, 권장): brew install devenjarvis/tap/lathe 사전 빌드된 바이너리로 배포되므로 macOS 전용입니다. Linux에서는 아래 설치 스크립트나 go install을 사용하세요.

  • 설치 스크립트 (curl | sh): curl -sSf https://raw.githubusercontent.com/devenjarvis/lathe/main/install.sh | sh

  • Go (Go 1.25 이상 필요): go install github.com/devenjarvis/lathe@latest

  • 소스에서 빌드: git clone https://github.com/devenjarvis/lathe cd lathe go build -o lathe

스킬(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 에이전트 스킬)
  • lathe skills install --agent all # Claude Code, Cursor, Codex 모두
  • lathe skills list # 내장된 스킬 표시

Codex는 Claude Code와 동일한 SKILL.md 형식을 사용하므로 해당 스킬이 원본 그대로 제공되며(--user는 ~/.agents/skills/...에 설치), Cursor 명령어는 /<slug>(예: /lathe)로 호출됩니다. 대화형 인계(Handoff) 모델은 Claude Code를 위해 문서화되어 있으므로 Cursor 및 Codex에서는 몇 가지 런타임 세부 사항이 다릅니다.

왜 이 프로젝트를 만들었나요? 저는 2000년대에 10대 시절 Lua, 그다음에는 C++로 PSP(PlayStation Portable)용 홈브류 게임을 만들면서 프로그래밍을 배웠습니다. 당시 제가 배운 것의 상당 부분은 제가 함께할 수 있어서 무척 감사했던 작은 PSP 홈브류 커뮤니티를 통한 것이었지만, 그 형성기 학습의 많은 부분은 인터넷에서 사용할 수 있는 무료 온라인 리소스와 튜토리얼에 빚을 지고 있습니다 (2007년 cplusplus.com에 박수를 보냅니다. 그때보다 지금 그 사이트에 광고가 훨씬 많아졌네요 😅).

결국 저는 프로페셔널 소프트웨어 엔지니어가 되었고, 이후 10년 동안 수많은 기술 블로그를 찾아 읽으며 '기술 향상(upskilling)'을 해왔습니다 (보통 필요한 것보다 더 흥미로운 주제를 배우기 위해서였지만요). 제 학습 방식에는 무엇보다 직접 실습해보는 튜토리얼이 가장 중요했습니다. 직접 만들어보는(build-your-own) 프로젝트 같은 리소스 말입니다.

원문 보기
원문 보기 (영어)
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 😎) 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 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 is a combination of LLM skills and a Golang CLI used to store, manage, and view generated tutorials. After install (below), you can generate a tutorial inside any LLM session (Claude Code, Cursor, and Codex supported) by prompting something like: /lathe build a 3D Slicer in Erlang Then open lathe from any terminal: lathe serve # starts the web server, opens the browser Don't worry, we also have dark mode: Click the tutorial you want to read and start learning! The CLI has a bunch of other commands, but honestly those were built to give the LLM a deterministic way to manage tutorials. I expect the above to be all you need (it's all I ever use) for day-to-day. If you want to ask a question about a tutorial, have the LLM verify it, or extend it with an additional part, the UI has affordances for each of these which will give you the exact skill/prompt to give your LLM in order to trigger the action. Install Lathe is a single self-contained binary. All you need is lathe on your $PATH ; the skills run in an interactive Claude Code, Cursor, or Codex session. Homebrew (macOS, recommended): brew install devenjarvis/tap/lathe Distributed as a cask (a pre-built binary), so it's macOS-only — on Linux use the install script or go install below. 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 The skills are bundled into the binary. After installing lathe , drop them into a project so Claude Code (or Cursor / Codex) can discover them: lathe skills install # ./.claude/skills/<name>/SKILL.md (this project) lathe skills install --user # ~/.claude/skills/<name>/SKILL.md (all projects) lathe skills install --agent cursor # ./.cursor/commands/<slug>.md (Cursor slash commands) lathe skills install --agent codex # ./.agents/skills/<name>/SKILL.md (Codex Agent Skills) lathe skills install --agent all # Claude Code, Cursor, and Codex lathe skills list # show the bundled skills Codex uses the same SKILL.md format as Claude Code, so its skills ship verbatim (and --user installs to ~/.agents/skills/... ). Cursor commands are slash-invoked as /<slug> (e.g. /lathe ); the interactive handoff model is documented for Claude Code, so a few runtime details differ on Cursor and Codex. Why does this exist? I learned how to program as a teen in the 2000s by building homebrew games for my PSP (PlayStation Portable) in Lua, and then in C++. Lots of what I learned at the time was through the small PSP homebrew community I'm incredibly grateful I got to be a part of, but I also owe much of that formative learning to free online resources and tutorials available on the internet (shoutout to 2007 cplusplus.com - man does that site have a lot more ads now than it used to 😅). Eventually I became a professional software engineer and I spent the next decade "upskilling" (though usually to learn more interesting topics than needed for ) by finding and consuming a wealth of technical blogs, and more importantly for my learning style - hands on tutorials. Resources like the build-your-own-x repo , and Crafting Interpreters , and the 1,000 other one-off tutorials that taught me everything from building a raytracer , to a timeseries database , to a linear algebra matrix library and everything in between (seriously, I couldn't even begin to list all the amazing hands-on tutorials out there that have influenced me). Hands on learning is how I've always learned best. These tutorials gave me the learning curve I needed to go from zero-to-one in a brand new domain, but even more importantly they gave me footing and confidence to take it from one-to-two-to-ten on my own. Fast forward to 2026, and now we've got LLMs. I'm not going to go off topic about my complicated relationship with LLMs, but for writing software they are interesting and in many cases they can be really productive! But they do most of the work for you, and with that work gone they also take away the part that helped me learn a new concept or domain. In some cases, that doesn't matter - we've got a product to ship and LLMs help us ship it faster - but for me and my joy in this field and hobby I still crave those "ah ha!" moments where something finally clicks and I have the confidence I need to begin shaping it into my own. So lathe is an experiment in using LLMs to teach me, rather than think for me. To recreate those moments of hands-on learning that taught me to love this work, and marry it with the potential of a broad "expert" LLM who can, in theory, teach me anything. I use lathe as a catalyst to get me started on projects I wouldn't know how to start in, and can't find any existing human written resources to teach . For example I first came up with lathe because I wanted to write a 3D Slicer Software from scratch (just finding documentation on g-code was a pain, shoutout to reprap ). At the time of writing I'm diving into the world of embedded software development with Zig. Both of these cases lathe has been an effective tool in getting me from zero-to-one in obscure or extremely young domains where the human written resources just don't exist yet (and I wonder for how long humans will still bother writing tutorials if only the LLMs read them...). But what about hallucinations? Are lathe tutorials as good as ones written by humans? Not in the slightest. But what they lack in heart, personality, and architectural soundness, they make up for by having the tutorial writer ready and waiting to answer all of your questions, always willing to fix or update their tutorial when it isn't exactly what you wanted, and they actually complete writing all 6 parts to that series they started in 2018 (we've ALL been there 😁). Lathe is an LLM, and while I've built and tuned it to be as good as I know how to make it for this particular task, it's still going to fail in the ways LLMs fail. I recommend using the biggest "thinking" model you have access to (Opus, GPT-5 Codex, etc) as these tasks are less about iterative mechanical execution you might optimize for when programming, and more about researching, designing, and explaining a tangible concept from start to finish. Additionally, the risk for hallucinations in this context is, in my opinion, significantly lower. Lathe is built to help you do the thinking, and is built around the expectation that you're the one typing this code out yourself. By reading through the guide and typing it out, you are actively engaged in the work and should be well positioned to naturally ask "wait, does that make sense?" when you come across something weird. At which point you can /lathe-ask (and sometimes the LLM comes back with good reasoning I didn't have because it's a foreign domain, and I learn something) or just straight tell your LLM to update the tutorial. While I have no pedagogical credentials to back this up, I think I may be actually internalizing concepts better by catching and pushing back on perceived slip-ups of the LLM. YMMV. All of that said, if you can find a tutorial written by a human, I'd always reach