Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Compile Typst and LaTeX documents to PDF via API. Send source code, get back a PDF.
Compile Typst and LaTeX documents to PDF via API. Send source code, get back a PDF.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Compile Typst (.typ) and LaTeX (.tex) documents to PDF using the TypeTex compilation API.
Base URL: https://studio-intrinsic--typetex-compile-app.modal.run
POST /public/compile/typst Content-Type: application/json Request Body: { "content": "#set page(paper: \"a4\")\n\n= Hello World\n\nThis is a Typst document.", "main_filename": "main.typ", "auxiliary_files": {} } Response (Success): { "success": true, "pdf_base64": "JVBERi0xLjQK..." } Response (Failure): { "success": false, "error": "error: file not found: missing.typ" }
POST /public/compile/latex Content-Type: application/json Request Body: { "content": "\\documentclass{article}\n\\begin{document}\nHello World\n\\end{document}", "main_filename": "main.tex", "auxiliary_files": {} } Response (Success): { "success": true, "pdf_base64": "JVBERi0xLjQK..." } Response (Failure): { "success": false, "error": "! LaTeX Error: Missing \\begin{document}.", "log_output": "This is pdfTeX..." }
GET /public/compile/health Returns {"status": "ok", "service": "public-compile"} if the service is running.
import requests import base64 response = requests.post( "https://studio-intrinsic--typetex-compile-app.modal.run/public/compile/latex", json={ "content": r""" \documentclass[11pt]{article} \usepackage[margin=1in]{geometry} \usepackage{amsmath} \title{My Document} \author{Author Name} \begin{document} \maketitle \section{Introduction} This is a LaTeX document with math: $E = mc^2$ \end{document} """, "main_filename": "main.tex" } ) result = response.json() if result["success"]: pdf_bytes = base64.b64decode(result["pdf_base64"]) with open("output.pdf", "wb") as f: f.write(pdf_bytes) else: print(f"Compilation failed: {result['error']}") if result.get("log_output"): print(f"Log: {result['log_output']}")
import requests import base64 response = requests.post( "https://studio-intrinsic--typetex-compile-app.modal.run/public/compile/typst", json={ "content": """ #import "template.typ": * #show: project.with(title: "My Report") = Introduction #include "chapter1.typ" """, "main_filename": "main.typ", "auxiliary_files": { "template.typ": """ #let project(title: none, body) = { set page(paper: "a4") set text(font: "New Computer Modern") align(center)[ #text(size: 24pt, weight: "bold")[#title] ] body } """, "chapter1.typ": """ == Chapter 1 This is the first chapter. """ } } ) result = response.json() if result["success"]: pdf_bytes = base64.b64decode(result["pdf_base64"]) with open("report.pdf", "wb") as f: f.write(pdf_bytes)
For binary files like images, base64-encode them: import requests import base64 # Read and encode an image with open("figure.png", "rb") as f: image_base64 = base64.b64encode(f.read()).decode("utf-8") response = requests.post( "https://studio-intrinsic--typetex-compile-app.modal.run/public/compile/typst", json={ "content": """ #set page(paper: "a4") = Document with Image #figure( image("figure.png", width: 80%), caption: [A sample figure] ) """, "main_filename": "main.typ", "auxiliary_files": { "figure.png": image_base64 } } )
# Typst compilation curl -X POST https://studio-intrinsic--typetex-compile-app.modal.run/public/compile/typst \ -H "Content-Type: application/json" \ -d '{ "content": "#set page(paper: \"a4\")\n\n= Hello World\n\nThis is Typst.", "main_filename": "main.typ" }' | jq -r '.pdf_base64' | base64 -d > output.pdf # LaTeX compilation curl -X POST https://studio-intrinsic--typetex-compile-app.modal.run/public/compile/latex \ -H "Content-Type: application/json" \ -d '{ "content": "\\documentclass{article}\n\\begin{document}\nHello World\n\\end{document}", "main_filename": "main.tex" }' | jq -r '.pdf_base64' | base64 -d > output.pdf
Full Typst language support Multi-file projects with imports Images (PNG, JPG, SVG) Custom fonts (New Computer Modern, etc.) Math equations Tables and figures Bibliography (using Hayagriva format)
Full TeX Live distribution via Tectonic Multi-file projects (\input, \include) BibTeX/BibLaTeX bibliography Custom style files (.sty, .cls) All standard packages (amsmath, graphicx, etc.) TikZ/PGFPlots graphics Images (PNG, JPG, PDF, EPS)
When compilation fails, the response includes: success: false error: Human-readable error message log_output (LaTeX only): Full compilation log for debugging Common errors: Syntax errors: Check your source code for typos Missing files: Ensure all imported/included files are in auxiliary_files Package not found: Most common packages are available; contact support for additions Timeout: Complex documents may timeout after 60 seconds
No authentication required Please be respectful of shared resources For high-volume usage, contact support
Always check success before accessing pdf_base64 Parse errors to provide helpful feedback to users Use minimal documents when testing - complex documents take longer Cache results if compiling the same content multiple times Include all dependencies in auxiliary_files for multi-file projects
Typst Documentation LaTeX Wikibook TypeTex - Full document editor with AI assistance
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.