getting-started
Skill0 starsChanged 5 days agoMITView on GitHub
Set up and check the Lathe MCP bundle (images, PDF, audio and video, OCR, batch runs, metadata removal). Use when the user installs Lathe, asks what Lathe can do, gets a "lathe." error from a tool, sees a "missing" or "approval_unavailable" result, or wants to turn a module on or off.
- Installs packages
We split this skill into the rules it gives an agent
4 rules. 0 are common, 0 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 30 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 11
Call lathe_modules first. It returns each module with enabled, available and missing.
- Very specific: line 56
Every other writing tool creates one new file per call and never overwrites one unless the call passes overwrite=true.
- Very specific: line 58
Every batch request, approval and refusal goes to a local log at ~/.local/state/lathe/approvals.jsonl.
- Very specific: line 68
Every error reads lathe.<module>.<code>: <message> Fix: <hint>.
“Common” is measured: kept by at least 6 in 10 of the 30 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Getting started with Lathe
Call lathe_modules first. It returns each module with enabled, available and missing. A missing piece comes with the install command for it. Report the missing pieces by name and run the install command the tool gives.
What each module needs
| Module | On by default | Python extra | System programs | Tools |
images | yes | none (Pillow is always installed) | none | image_info, image_resize, image_convert, image_optimize, image_crop, image_thumbnail |
pdf | yes | pdf (pypdf) | ghostscript, for pdf_to_images | pdf_info, pdf_extract_text, pdf_merge, pdf_to_images, pdf_split, pdf_compress |
media | yes | none | ffmpeg and ffprobe | audio_info, audio_convert, video_info, video_thumbnail, video_trim, video_to_gif |
ocr | yes | ocr (pytesseract) | tesseract | ocr_image |
batch | no | none | depends on the operation: ghostscript for pdf_to_images, ffmpeg for audio_convert | batch_process |
privacy | no | pdf (pypdf), for PDFs | none | scrub_metadata |
pdf_extract_text reads scanned pages with OCR when the ocr extra, tesseract and ghostscript are all installed.
Install the pieces
Python extras go in the same command that starts the server. With uv, use uvx --from "lathe-mcp[pdf,ocr]" lathe. With pip, use pip install "lathe-mcp[pdf,ocr]".
System programs:
| Program | macOS | Debian or Ubuntu |
| ffmpeg (includes ffprobe) | brew install ffmpeg | sudo apt install ffmpeg |
| tesseract | brew install tesseract | sudo apt install tesseract-ocr |
| ghostscript | brew install ghostscript | sudo apt install ghostscript |
Check the setup
Run lathe --doctor in a terminal, using the same command the MCP app runs (uvx --from "lathe-mcp[pdf,ocr]" lathe --doctor). It prints ok or FIX for each piece, names the install command for each FIX, and exits with status 1 when something needs fixing. Run the fixes, then restart the MCP app so it starts the server again.
Turn a module on or off
Set LATHE_<MODULE>_ENABLED to true or false in the MCP app's env block, for example LATHE_MEDIA_ENABLED=false. The same setting can go in ~/.config/lathe/config.toml as enabled = false under the module's table. Environment variables win over the file.
The batch and privacy modules are off after an update. Switch them on only when the user asks for batch runs or metadata removal.
Set the working folder
Set LATHE_WORKING_DIR to the folder that holds the user's files. Every input and output path is relative to it and must stay inside it. Symlinks that point outside are refused. Without this setting, the working folder is the folder the MCP app starts in. Confirm with the user that it is the folder that holds their files.
Approvals
Only batch_process asks the person to approve, and only for a run of two or more files. The MCP client shows the plan once. Claude Code and other clients that support approval prompts show the prompt. If a client cannot show one, the tool returns approval_unavailable and names the setting, LATHE_BATCH_PREAPPROVED=true. Explain that setting and its effect to the user. Do not set it yourself.
Every other writing tool creates one new file per call and never overwrites one unless the call passes overwrite=true. It does not ask.
Every batch request, approval and refusal goes to a local log at ~/.local/state/lathe/approvals.jsonl. File contents and file names are not logged. Set LATHE_APPROVAL_LOG to move the log.
First checks
health: returns the version and whether each external program is installed.image_infoon one image in the working folder: returns width, height and format.pdf_infoon one PDF, when thepdfmodule is available.
Errors
Every error reads lathe.<module>.<code>: <message> Fix: <hint>. Pass the Fix: text to the user as written.
Other versions30 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 30
- NVIDIA-NeMo/Curator★ 1.8ksame name
- davekilleen/Dex★ 509same name
- aivrar/portable-hermes-agent★ 239same name
- GoogleCloudPlatform/race-condition★ 232same name
- taskade/mcp★ 170same name
- claude-world/director-mode-lite★ 80same name
- dylantarre/design-system-skills★ 50same name
- crewAIInc/skills★ 45same name
- aks129/HealthClawGuardrails★ 31same name
- ayrshare/ayrshare-social-media-api-claude-plugin★ 19same name
20 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- pdf-formsSkill
- pdfSkill
- web-image-prepSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

