Skip to main content

TexOpsα
Move TeX Live to the Cloud. Keep Everything Else.

Abstract

Run tx build and turn your LaTeX document into a PDF in seconds. TexOps only handles compilation — your editor, repository, workflows, and habits stay the same.

Build your first document in minutes.

TexOps is in alpha. The service is free during this period.

$ tx init
Scanning for .tex files...
Found: paper.tex, appendix.tex
✓ .texops.yaml created
 
$ tx build
Syncing files... 23 new, 0 changed
Building paper.tex (pdflatex)
This is pdfTeX, Version 3.141592653
Output written on paper.pdf (24 pages)
✓ paper.pdf downloaded — 1.8 MB
A typical workflow: initializing a project and compiling a document.

The Problem

TeX Live is a burden

A full TeX Live installation is 8+ GB. It breaks across OS upgrades, requires a fresh install for each yearly release, and turns every new machine into a setup project. You just want to write — not maintain a typesetting toolchain.

Builds drift across machines

Your paper compiles on your laptop but fails on your co-author's. A package version differs, a font is missing, a compiler behaves slightly differently. A 2024 study found that only 42% of LaTeX documents produced identical output across TeX Live 2020–20231.

It gets worse across venues. As of 2025, major submission systems run TeX Live versions years apart — arXiv defaults to 2025, Elsevier uses 2022, and some Springer Nature journals still use 2017. Pinning an environment locally is painful, and keeping a team in sync is worse.

CI/CD for LaTeX is a mess

Building LaTeX in GitHub Actions or GitLab CI means pulling a multi-GB Docker image, writing fragile workflow files, and debugging environment differences between local and CI builds.

Legacy documents are stuck in time

That thesis from 2019, the conference paper that only compiles with TeX Live 2017 — reproducing old builds means resurrecting old environments. Running multiple TeX Live versions side by side locally is a project in itself.

Who It's For

Researchers targeting multiple venues. You submit to arXiv, Springer, and Elsevier — each expecting a different TeX Live version. Pin the version per document and test against any of them.

Teams building LaTeX in CI/CD. Your GitHub Actions workflow pulls a 4+ GB Docker image on every run. Replace it with a single tx build command.

Individual writers. You write in VS Code, Vim, or Emacs and don't want to install or maintain TeX Live. TexOps compiles in the cloud with live reload — edit, save, and your PDF updates automatically.

How TexOps Works

TexOps is a remote build service controlled by tx — a single static binary. You keep your editor, your repo, your folder structure. TexOps handles compilation, environment management, and version pinning.

Pin Your TeX Live Version

Pin a specific TeX Live version per document. Versions 2012 through 2025 are available. Reproduce a conference build from years ago or test against the latest release. Different documents in the same project can use different versions. The version is declared in .texops.yaml and committed to your repo, so every machine and every CI run uses the same environment.

Supports pdflatex (default), xelatex, lualatex, latex, platex, and uplatex. The compiler is declared per document in .texops.yaml.

Live Reload

Run tx build --live and TexOps watches your project for changes. Every time you save, it syncs, rebuilds, and downloads the updated PDF. The output file is rewritten in place, so PDF viewers like Skim and Preview.app refresh automatically.

$ tx build --live
✓ Project ready
✓ Found 23 files (1.2 MB)
 
Build complete: 1 succeeded, 0 failed (3.2s)
paper => paper.pdf
 
Watching for changes... (Ctrl+C to stop)
 
✓ Found 23 files (1.2 MB)
[14:23:17] Built paper.pdf

CI/CD Ready

Create API tokens with tx token create for use in GitHub Actions, GitLab CI, or any automation pipeline. Set the TX_API_TOKEN environment variable and tx build works headlessly.

GitHub Actions
- name: Install tx
run: curl -fsSL https://raw.githubusercontent.com/texops/tx/main/scripts/install.sh | sh

- name: Build paper
env:
TX_API_TOKEN: ${{ secrets.TEXOPS_TOKEN }}
run: tx build

Incremental Sync

Only changed files are uploaded on each build. Files are SHA256-hashed locally; unchanged images, bibliographies, and style files are never re-transferred. Second and subsequent builds sync in milliseconds.

$ tx build
Syncing files... 0 new, 1 changed
Building paper.tex (pdflatex)
Output written on paper.pdf (24 pages)
✓ paper.pdf downloaded — 1.8 MB (1.4s)

Multi-Document Projects

A single project can contain multiple documents, each with its own compiler and TeX Live version. Run tx build to compile everything, or tx build paper to target just one.

$ tx build
Syncing files... 0 new, 2 changed
 
Building paper (pdflatex)
✓ paper.pdf downloaded — 1.8 MB
 
Building supplement (xelatex)
✓ supplement.pdf downloaded — 340 KB
 
2 succeeded, 0 failed

No Lock-In

The tx CLI is MIT-licensed and open source. Build configuration is a YAML file committed alongside your source.

Builds run on a full, unmodified TeX Live installation with all packages and features available. Each build runs in an isolated gVisor container with network disabled and privileges dropped. Projects live in your repo and on your machine, not locked inside a platform.

Footnotes

  1. Tan & Rigger, Inconsistencies in TeX-Produced Documents, ISSTA 2024.