universelabSCI · CLI · BIO
ESEspañol

UniverLab · open laboratoryEXP-002

TeXForge

Movable type once took a workshop. Now it takes one binary.

A single Rust binary that scaffolds, lints, formats, proofreads and compiles your document, then lets you inspect what came out — the text a reader sees, the fonts, the metadata, and which section opens each page. The LaTeX engine arrives by itself on first build, and Mermaid, Graphviz or D2 diagrams render inside your .tex files with no browser and no Node.js. Code blocks come out highlighted the same way: the highlighter is compiled into the binary, so no Pygments and no shell-escape.

LaTeX → one self-contained toolchain → reproducible documents

Install
curl -fsSL https://install.univerlab.org/texforge | sh

EXP-002 · active · · release v0.10.1 · 3 weeks ago · Built with Canopy · Repository set up with ghScaff · Demo recorded with DemoStage · Commits checked by GitKit

Genesis ·

Born from a thesis.

A master’s thesis, written with AI in the loop. Overleaf charged, TeXstudio was too heavy, VSCode wanted an extension for everything. All I wanted was Mermaid diagrams in my LaTeX — which of course meant Node and a pile of .mmd files. I duct-taped a latexmake to render the missing ones. It held the way duct tape holds. And every error sent the model scrolling a thousand-line build log to find one bad line. TeXForge condenses all of that into a binary and a skill.

Writing LaTeX should not require installing four gigabytes of toolchain.

The whole press

\begin{mermaid}
flowchart LR
  tex[.tex] --> lint --> typeset
  typeset --> pdf[(PDF)]
  lint -.->|error| log
\end{mermaid}
Fig. 1 · build pipeline · mermaid
  • 01Compose — templates with placeholders that already know your name.
  • 02Proof — a linter that catches broken refs, missing files and unclosed environments before the press runs.
  • 03Proofread — spell-checking that reads the language from the document — Babel, polyglossia, or your configured default — and checks prose against the right dictionary.
  • 04Set — one canonical format, like rustfmt for .tex. Clean diffs forever.
  • 05Illustrate — Mermaid, Graphviz and D2 blocks become figures at build time, rendered in pure Rust.
  • 06Highlight — code blocks become framed listings with line numbers and captions, coloured at build time — light, dark or mono for print.
  • 07Inspect — the compiled PDF — text, fonts, metadata, page diffs and whether every source word survived.
  • 08Print — Tectonic compiles deterministically; watch mode reprints as you write.
A Python code block typeset by texforge: a light frame, line numbers in the margin, keywords, strings and numbers in colour.
Fig. 5 · listing as printed · python
Templates

13 templates in the open registry

namedescriptionversion
apa-generalAcademic report or thesis with chapters, and APA 7 tables, figures and references0.3.0
apa-unisalleAPA 7 thesis proposal for Universidad de La Salle0.3.0
apa7-studentAPA 7 student paper with student title page, double spacing, headings, tables and references0.1.0
articleSingle-column academic article with running heads and author affiliations0.3.0
bookLong-form book layout with epigraphs and front matter0.2.0
cvClean, ATS-friendly curriculum vitae0.1.0
generalEditorial foundation for essays and other documents, with serif type and spaced paragraphs0.3.0
ieeeIEEE journal format for technical papers0.2.0
letterFormal letter template for professional correspondence0.2.0
reportStructured university report with front matter, contents and appendices0.3.0
slides16:9 presentation slides with code and diagrams0.1.0
technical-briefConcise technical update with callouts, diagrams, code and results0.2.0
workshopWorkshop handout with a cover page, workflow, code and test table0.3.0

Every row copies the command; my-doc is your project name: texforge new my-doc -t apa-general

The general template ships embedded in the binary so creating a document works even offline.

texforge-templates ↗

FAQ

FAQ

What problem does TeXForge solve?
Compiling LaTeX normally requires installing TeX Live (4+ GB), then separate tools for Mermaid, Graphviz, and D2 diagrams — each with its own setup. TeXForge is a single ~15 MB binary that handles everything: scaffolding, linting, formatting, diagrams, and compilation.
Can AI agents use TeXForge to work with LaTeX?
Yes. An agent can run texforge build without installing anything — the LaTeX engine downloads on first use. Errors are concise (not 1000-line logs), and diagrams render inside .tex files without Node.js or external tools.
Does TeXForge support Mermaid and D2 diagrams in LaTeX?
Yes. Write a Mermaid, Graphviz, or D2 block directly in your .tex file. TeXForge renders it to a figure at build time, in pure Rust, with no browser or Node.js required.
How does spell-checking work in languages other than English?
The language comes from the document itself — \usepackage[spanish]{babel} or polyglossia — and falls back to your configured default when nothing is declared. Spanish is checked against a Hunspell dictionary with affix rules, so soluciones is recognised from the stem solución without being stored as its own entry. Dictionaries download on first use into ~/.texforge/dicts/.
Field notes