Tex render
Skill LFTPadilla/agent-dev-kit/plugins/dev-skills/skills/tex-render
Replicable agent development system: curated Claude Code/Codex skills + bootstrap for the external tools (GSD, caveman, ponytail) that complete the stack.
npx -y skills add LFTPadilla/agent-dev-kit --skill tex-renderAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Renders LaTeX math to PNG, JPEG, WebP, or AVIF images using MathJax (TeXβSVG) and @svg-fns/svg2img. Invoke whenever the agent needs to output LaTeX as a viewable image (equations, formulas, notation).
SKILL.md
5.2 KB, as published. Nobody here has run it
TeX Render π
Renders LaTeX math to PNG, JPEG, WebP, or AVIF (and SVG). Use when you need a viewable image from LaTeX instead of raw code.
Location
The render script lives in the same skill folder as this SKILL.md:
<skill_folder>/
βββ SKILL.md
βββ package.json
βββ scripts/
βββ render.js
Use the directory containing this SKILL.md as the skill path. The script is at scripts/render.js relative to that folder. Invoke: node <skill_folder>/scripts/render.js. The agent loading this skill has the skill pathβuse it to run the script.
Install
One-time setup. After npm install run npm install` in the skill folder:
cd <skill_folder>
npm install
When to Use
- User or task asks to "render this equation as image" or "show formula as picture"
- Your reply would contain LaTeX β render formulas as images first, then respond with plain text
Workflow: Response Contains LaTeX
Output your reply interleaved: whenever you would output LaTeX, do this instead:
- Send the preceding plain text β call
messagewith the text written so far (no LaTeX). - Render the LaTeX expression with this skill (default PNG; no
--output dataurl). Parse the JSON for the PNG path. - Send the image β call
messagewithaction: "send",pathset to the rendered PNG, andmessageas short caption. - Continue outputting the rest of the message. Repeat the cycle (text β render β send image) for each LaTeX block.
Do not output raw LaTeX. Do not ask the user for permission to render β render and send images immediately when LaTeX would appear in your reply. Do not accumulate everything and send at the end β send text and images in order as you go.
Critical: Output in order: plain text β send β LaTeX β render β send image β plain text β send β LaTeX β render β send image β β¦ The user must receive text and images in the natural reading order.
Example: Explaining Lagrangian:
β Send "The Lagrangian is defined as " β Render L = T - V β Send image with caption "L = T - V" β Send ". The Euler-Lagrange equation is " β Render d/dt(βL/βqΜ) - βL/βq = 0 β Send image β Send " β this yields the equations of motion."
Usage
Run: node <skill_folder>/scripts/render.js (or node scripts/render.js when already in the skill folder).
Escaping: When invoking via shell:
- Single quotes for LaTeX without apostrophe:
node scripts/render.js '\frac{d}{dt}' - Stdin when LaTeX contains apostrophe (e.g.
y'for derivative):printf '%s' "y' = f(t, y), \quad y(t_0)=y_0" | node scripts/render.jsβ use double quotes so'is literal; backslashes like\quadstay intact.
node <skill_folder>/scripts/render.js --help
Default output is PNG to <tmp>/tex-render/. The script prints one JSON line with file paths: {"svg":"...","png":"..."} or {"svg":"...","jpeg":"..."}, etc. Use --output dataurl only when the conversation system explicitly supports Data URL images (otherwise it may show raw base64 text).
Examples (validated by npm test)
Use <skill_folder> = the directory containing this SKILL.md.
Basic (PNG default):
node <skill_folder>/scripts/render.js 'E = mc^2'
node <skill_folder>/scripts/render.js '$$\frac{F}{m}=a$$'
LaTeX with apostrophe (e.g. y'): use stdin to avoid shell quoting issues:
printf '%s' "y' = f(t, y), \quad y(t_0)=y_0" | node <skill_folder>/scripts/render.js
JPEG / WebP / AVIF:
node <skill_folder>/scripts/render.js --format jpeg --quality 80 '\frac{F}{m}=a' ./out/formula
node <skill_folder>/scripts/render.js --format webp 'x^2 + y^2 = z^2'
node <skill_folder>/scripts/render.js --format avif 'E = mc^2'
Data URL (no file):
node <skill_folder>/scripts/render.js --output dataurl 'E = mc^2'
Scale by width:
node <skill_folder>/scripts/render.js --width 800 '\int_0^\infty e^{-x^2} dx'
Inline math (smaller rendering):
node <skill_folder>/scripts/render.js --inline 'a^2 + b^2 = c^2'
Height and zoom: Use --height N or --zoom N as documented in --help.
Automatic Triggering (TOOLS.md)
To make the agent use tex-render without the user explicitly asking, add to your workspace TOOLS.md:
## LaTeX in Responses (tex-render)
**Whenever your reply would contain LaTeX** (equations, formulas, scientific notation), **use the tex-render skill** automatically. Examples: physics, math, chemistry questions with formulas.
**Workflow:** send plain text β render LaTeX β send image via message tool β continue text. Use single quotes when invoking (e.g. `'\frac{a}{b}'`).
### LaTeX / Equations (tex-render)
- When answering scientific or math questions, if your reply would contain LaTeX, use tex-render and send images β do this automatically.
Test: Ask "Explain the Lagrangian formula" without mentioning tex-render. The agent should render and send images.