agentleFS
seayniclabsseayniclabs/lathe/skills/getting-started/SKILL.md

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
  1. Very specific:

    Call lathe_modules first. It returns each module with enabled, available and missing.

    line 11
  2. Very specific:

    Every other writing tool creates one new file per call and never overwrites one unless the call passes overwrite=true.

    line 56
  3. Very specific:

    Every batch request, approval and refusal goes to a local log at ~/.local/state/lathe/approvals.jsonl.

    line 58
  4. Very specific:

    Every error reads lathe.<module>.<code>: <message> Fix: <hint>.

    line 68

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

ModuleOn by defaultPython extraSystem programsTools
imagesyesnone (Pillow is always installed)noneimage_info, image_resize, image_convert, image_optimize, image_crop, image_thumbnail
pdfyespdf (pypdf)ghostscript, for pdf_to_imagespdf_info, pdf_extract_text, pdf_merge, pdf_to_images, pdf_split, pdf_compress
mediayesnoneffmpeg and ffprobeaudio_info, audio_convert, video_info, video_thumbnail, video_trim, video_to_gif
ocryesocr (pytesseract)tesseractocr_image
batchnononedepends on the operation: ghostscript for pdf_to_images, ffmpeg for audio_convertbatch_process
privacynopdf (pypdf), for PDFsnonescrub_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:

ProgrammacOSDebian or Ubuntu
ffmpeg (includes ffprobe)brew install ffmpegsudo apt install ffmpeg
tesseractbrew install tesseractsudo apt install tesseract-ocr
ghostscriptbrew install ghostscriptsudo 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

  1. health: returns the version and whether each external program is installed.
  2. image_info on one image in the working folder: returns width, height and format.
  3. pdf_info on one PDF, when the pdf module is available.

Errors

Every error reads lathe.<module>.<code>: <message> Fix: <hint>. Pass the Fix: text to the user as written.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.