Lathe 소개
Lathe는 LLM이 사용자를 대신해 생각해 주는 것이 아니라, 사용자가 스스로 익히도록 돕는 것을 목표로 하는 학습 도구입니다. 어떤 주제든 프롬프트를 주면 여러 파트로 구성된 실습형 기술 튜토리얼을 생성하고, 사용자는 그 튜토리얼을 로컬 UI에서 직접 손으로 따라 가며 배웁니다. LLM이 코드를 대신 작성해 주면 학습에 도움이 되던 부분까지 사라진다는 문제의식에서 출발해, 코드를 직접 타이핑하며 개념을 체득하는 예전 방식의 학습 경험을 되살리려는 시도입니다.
Lathe의 특징은 생성한 튜토리얼을 읽고 다루기 좋은 전용 로컬 UI를 함께 제공한다는 점입니다. 튜토리얼은 단일 파트 또는 여러 파트의 시리즈로 만들 수 있고, 읽는 도중 질문을 던지거나(ask), 튜토리얼이 실제로 동작하는지 검증하거나(verify), 다음 파트를 이어 붙이는(extend) 기능을 스킬로 사용할 수 있습니다. 각 튜토리얼에는 어떤 자료를 참고했는지, 어떤 모델로 생성했는지, 어떤 프롬프트가 글의 목소리를 결정했는지가 함께 기록됩니다.
구조적으로 Lathe는 LLM 스킬과 Go로 작성된 CLI의 조합입니다. 중요한 설계 결정은 Go 바이너리가 직접 모델을 호출하지 않는다는 점으로, 모든 모델 작업은 사용자의 대화형 코딩 에이전트 세션 안에서 실행됩니다. 본 게시물에서는 Lathe의 동작 방식과 튜토리얼을 만들고 학습하는 흐름, 설치 방법을 정리합니다.
Lathe의 동작 방식
Lathe는 모델을 직접 구동하지 않고, 사용자가 이미 쓰고 있는 코딩 에이전트 세션에 얹혀서 동작합니다. Claude Code, Cursor, Codex, Gemini CLI, opencode, Cline, Windsurf를 지원하며, 튜토리얼 생성과 질문, 검증, 확장 같은 모델 작업은 모두 그 에이전트 세션에서 이루어집니다. Go로 작성된 lathe CLI는 튜토리얼을 ~/.lathe/tutorials/ 에 저장하고, 렌더링된 결과를 로컬 웹 서버로 제공하며, 모든 지속 상태를 관리합니다. CLI 자체는 LLM을 호출하지 않습니다.
에이전트 세션에서 실행되는 스킬은 역할별로 나뉩니다. /lathe 는 첫 파트를 작성하고, /lathe-extend 는 다음 파트를 이어 붙이며, /lathe-verify 는 튜토리얼의 각 단계를 실제로 수행해 컴파일과 실행을 확인합니다. /lathe-ask 는 읽고 있는 파트에 대한 질문에 답하고, /lathe-work 는 워커 루프를 띄워 웹 UI의 버튼이 작업을 직접 구동하게 합니다. lathe serve 가 실행 중일 때 /lathe-work 를 한 번 실행하면, 리더 화면의 Ask, Verify, Add a part 버튼이 그 세션에서 곧바로 동작하는 라이브 모드가 됩니다. 워커가 연결되어 있지 않으면 각 버튼은 붙여 넣을 수 있는 /lathe-* 명령을 대신 알려 주는 방식으로 폴백합니다.
Lathe로 튜토리얼 만들고 학습하기
튜토리얼 생성은 코딩 에이전트 안에서 /lathe 스킬을 프롬프트로 호출하는 것에서 시작합니다. 예를 들어 다음과 같이 주제를 던지면 됩니다.
/lathe build a 3D Slicer in Erlang
그런 다음 터미널에서 lathe serve 를 실행하면 웹 서버가 뜨고 브라우저가 열립니다. 기본 포트는 4242 이며 --port 로 바꿀 수 있습니다.
lathe serve
라이브러리 목록에서는 제목, 주제, 태그, 저장소, 도구 버전으로 검색하고 상태와 유형(단일 또는 시리즈), 태그, 버전으로 필터링할 수 있으며, 모든 처리가 클라이언트 측에서 이루어져 오프라인에서도 빠르게 동작합니다. 튜토리얼은 목소리(voice)를 지정해 문체를 고를 수 있는데, 목소리는 산문의 어조만 바꿀 뿐 정확성, 조사, 인용, 검증, 구조에는 영향을 주지 않습니다. 기본 목소리인 plainspoken 은 꾸며낸 인격 없이 정직하고 정확하게 서술하며, companion 은 좀 더 친근한 1인칭 어조입니다. 모든 튜토리얼 상단에는 어떤 모델과 목소리로 생성되었는지를 밝히는 서명이 붙습니다.
검증은 선택 사항이며 대화형 LLM 세션에서 실행됩니다. /lathe-verify 스킬은 튜토리얼의 모든 단계를 새로운 mktemp -d 임시 디렉토리에서 수행하고(사용자의 저장소 안이 아니라), 명령을 실행하며 각 ## Checkpoint 블록을 확인한 뒤 결과를 기록합니다. 필요한 도구가 설치되어 있지 않으면 그 실행은 실패가 아니라 건너뜀(skipped)으로 처리됩니다. 또한 각 튜토리얼은 생성 과정에서 실제로 참고한 URL을 조사 기록으로 남겨, 내용을 그대로 믿는 대신 어디서 온 자료인지 확인할 수 있게 합니다.
저자는 Lathe가 LLM인 만큼 LLM이 실패하는 방식으로 실패할 수 있다는 점을 분명히 밝히고 있으며, 이 작업은 기계적인 수정보다 조사와 설계, 설명에 가까우므로 접근할 수 있는 가장 큰 추론 모델(예: Opus, GPT-5 Codex)을 사용할 것을 권장합니다. 사람이 쓴 튜토리얼을 찾을 수 있다면 그쪽을 먼저 보는 편이 낫고, Lathe는 사람이 쓴 자료가 드문 영역에서 처음 발을 딛는 데 유용한 도구라는 것이 저자의 설명입니다.
Lathe 설치
Lathe는 하나의 독립 실행 바이너리입니다. macOS에서는 Homebrew로 설치하는 것이 권장되며, 설치 스크립트나 Go로도 설치할 수 있습니다.
# Homebrew (macOS)
brew install devenjarvis/tap/lathe
# 설치 스크립트
curl -sSf https://raw.githubusercontent.com/devenjarvis/lathe/main/install.sh | sh
# Go (Go 1.25 이상 필요)
go install github.com/devenjarvis/lathe@latest
스킬은 바이너리에 번들되어 있으므로, 설치 후 lathe skills install 로 프로젝트에 내려놓으면 코딩 에이전트가 스킬을 인식합니다. --user 로 모든 프로젝트에 설치하거나 --agent 로 대상 에이전트를 지정할 수 있습니다. SKILL.md 형식은 여러 도구가 공유하는 표준이라 Claude Code, Codex, Gemini CLI, opencode, Cline, Windsurf가 이를 그대로 읽습니다. 또한 Lathe는 모델을 직접 호출하지 않으므로, 코딩 에이전트를 Ollama 같은 로컬 OpenAI 호환 엔드포인트에 연결하면 별도 설정 없이 로컬 모델로도 사용할 수 있습니다.
Lathe의 라이선스
Lathe는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
Lathe 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()


