// the find
let-def/texpresso
TeXpresso: live rendering and error reporting for LaTeX
TeXpresso is a live-preview daemon for LaTeX that patches XeTeX to support incremental re-rendering — change a line, the PDF viewer updates in under a second. It targets developers and academics who write LaTeX in Emacs, Neovim, or VS Code and are tired of the compile-wait-reload loop on large documents.
The incremental rollback model is the real technical achievement here: rather than re-running the full TeX pipeline on every keystroke, the driver maintains state and reruns only from the point of change, which is why it stays fast on 200-page documents. SyncTeX integration in both directions (click PDF → jump to source line, move cursor → scroll PDF) is well-implemented and works across all three supported editors. The architecture is cleanly separated — driver, engine, renderer, and viewer are distinct processes communicating over a documented protocol (EDITOR-PROTOCOL.md, SERVER-PROTOCOL.md), so adding a new editor integration doesn't require touching the C core. CI is present and the CHANGELOG is actively maintained, which is more than most niche C projects bother with.
Linux and macOS only — no Windows support, and the README doesn't apologize for it. Build setup requires compiling a patched XeTeX from source alongside MuPDF and libSDL, which means the first-run experience is a dependency-hunting exercise; there's no prebuilt binary distribution. The project is explicitly in 'early development' and the driver is a single large C codebase with no test coverage beyond a handful of shell scripts — if you hit a crash, you're debugging C. PDFLaTeX and LuaLaTeX are not supported; you're locked into XeTeX, which is a dealbreaker for documents with engine-specific packages.