Giới thiệu
Một thử nghiệm dùng LLM để dạy bạn, thay vì nghĩ thay bạn.
Lathe generate hands-on multi-part technical tutorial theo yêu cầu, với skills được tune để nội dung dễ tiếp cận. Sau đó bạn tự đi qua tutorial bằng tay trong UI local được build riêng cho việc học. (Đúng kiểu cũ như thời đồ đá.)
Tính năng chính
- Generate hands-on technical tutorial (1 phần hoặc nhiều phần) từ bất kỳ prompt nào
- Tự đi qua tutorial trong UI local chuyên dụng
- Dùng skills để hỏi câu hỏi, verify tutorial, và mở rộng thêm phần mới
- Search, filter, manage tutorial trong library của bạn
- Mỗi tutorial document rõ source, model được dùng, và prompt nào tạo “voice” cho tutorial
Cách dùng
Lathe là combo của LLM skills + Golang CLI để store, manage, và view tutorial được generate. Sau khi cài (xem dưới), bạn có thể generate tutorial trong bất kỳ LLM session nào (Claude Code, Cursor, Codex đều support) bằng prompt kiểu:
/lathe build a 3D Slicer in Erlang
Rồi mở lathe từ terminal bất kỳ:
lathe serve # start web server, mở browser
Click vào tutorial bạn muốn đọc và bắt đầu học!
CLI còn nhiều command khác, nhưng chúng được build để LLM có cách deterministic quản lý tutorial. Bạn dùng được đến đây là đủ cho hàng ngày. Nếu muốn hỏi câu về tutorial, verify nó, hay mở rộng thêm phần, UI có sẵn affordance cho từng cái — sẽ đưa đúng skill/prompt để bạn paste vào LLM.
Cài đặt
Lathe là single self-contained binary. Chỉ cần lathe trên $PATH; skills chạy trong interactive session của Claude Code, Cursor, hoặc Codex.
Homebrew (macOS, recommended):
brew install devenjarvis/tap/lathe
Distributed như cask (pre-built binary), nên chỉ cho macOS — trên Linux dùng install script hoặc go install.
Install script (curl | sh):
curl -sSf https://raw.githubusercontent.com/devenjarvis/lathe/main/install.sh | sh
Go (cần Go 1.25+):
go install github.com/devenjarvis/lathe@latest
Cài skills
Skills được bundle trong binary. Sau khi cài lathe, drop chúng vào project để Claude Code (hoặc Cursor / Codex) discover được:
lathe skills install # ./.claude/skills/<name>/SKILL.md (project này)
lathe skills install --user # ~/.claude/skills/<name>/SKILL.md (mọi project)
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, Codex
lathe skills list # liệt kê skill được bundle
Vì sao có tool này?
Tác giả học programming từ teen những năm 2000 bằng cách build homebrew game cho PSP bằng Lua, rồi C++. Nhiều thứ anh học hồi đó là qua community PSP homebrew nhỏ, nhưng cũng nợ rất nhiều vào tài nguyên miễn phí và tutorial online. Sau này anh thành software engineer chuyên nghiệp và dành cả thập kỷ “upskilling” bằng cách tìm và tiêu thụ technical blog cùng — quan trọng hơn cho style học của anh — hands-on tutorial. Những resource như build-your-own-x, Crafting Interpreters, và 1000 tutorial khác đã dạy anh mọi thứ từ build raytracer, timeseries database, đến linear algebra matrix library.
Hands-on learning là cách anh học tốt nhất. Tutorial cho anh learning curve cần thiết để đi từ zero-to-one trong domain mới, và quan trọng hơn — cho anh footing và confidence để tự đi từ one-to-two-to-ten.
Tua nhanh tới 2026, giờ ta có LLM. Với việc viết phần mềm, LLM productive trong nhiều case. Nhưng chúng làm phần lớn công việc cho bạn — và cùng với công việc đó, chúng lấy đi luôn phần giúp anh học concept hay domain mới. Trong một số case không sao — có sản phẩm phải ship, LLM giúp ship nhanh hơn — nhưng với joy của anh trong field này, anh vẫn thèm những khoảnh khắc “à há!” khi mọi thứ cuối cùng cũng click và anh có confidence để bắt đầu shape nó thành của riêng mình.
Vậy Lathe là thử nghiệm dùng LLM để dạy anh, thay vì nghĩ thay anh. Tạo lại những khoảnh khắc hands-on learning đã dạy anh yêu công việc này, kết hợp với tiềm năng của một LLM “expert” rộng — về lý thuyết có thể dạy bất cứ gì. Anh dùng lathe như catalyst để bắt đầu project mình không biết bắt đầu thế nào, và không tìm được resource viết bởi con người để dạy. Ví dụ anh nghĩ ra lathe vì muốn viết 3D Slicer Software từ đầu (chỉ tìm documentation về g-code đã đau). Hiện tại anh đang dấn thân vào embedded software dev với Zig. Cả hai case lathe đều effective trong việc đưa anh từ zero-to-one ở domain ít hoặc rất mới — nơi resource viết bởi con người chưa tồn tại.
Còn hallucination thì sao?
Tutorial từ lathe có tốt như tutorial viết bởi con người không? Không hề. Nhưng cái thiếu về tâm hồn, cá tính, và architectural soundness, chúng bù lại bằng việc luôn có tutorial writer sẵn sàng trả lời câu hỏi, sẵn sàng fix hoặc update khi tutorial chưa đúng ý bạn, và thực sự hoàn thành cả 6 phần của series họ bắt đầu năm 2018 (ai cũng từng gặp rồi).
Lathe là LLM, và dù tác giả đã build/tune tốt nhất có thể cho task này, nó vẫn fail theo kiểu LLM fail. Anh khuyến nghị dùng “thinking” model lớn nhất bạn có (Opus, GPT-5 Codex, v.v.) vì task này ít về iterative mechanical execution, nhiều hơn về research, design, và giải thích concept tangible từ đầu tới cuối.
Hơn nữa, rủi ro hallucination trong context này theo anh thấp hơn đáng kể. Lathe build để giúp bạn làm việc suy nghĩ, và build quanh kỳ vọng rằng chính bạn type code ra. Bằng cách đọc qua guide và type ra, bạn active engaged và sẽ tự nhiên hỏi “khoan, cái này có lý không?” khi gặp gì đó kỳ. Lúc đó bạn /lathe-ask (đôi khi LLM trả về reasoning tốt mà tôi không có vì đó là domain xa lạ, và tôi học được điều mới) hoặc bảo thẳng LLM update tutorial. Không có credential pedagogy để back up, nhưng anh nghĩ mình thực sự internalize concept tốt hơn nhờ catch và push back vào slip-up nghi vấn của LLM.
Tất cả những điều đó nói rồi, nếu bạn tìm được tutorial viết bởi con người, hãy với tới nó trước. Hy vọng phần lớn trường hợp bạn sẽ làm vậy. Nhưng nếu bạn học cùng style như tác giả và muốn dấn thân vào một domain mà tài liệu giảng dạy còn ít, lathe là một lựa chọn.