universelabSCI · CLI · BIO
ESEspañol

TeXForge

Installation

Last updated

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/UniverLab/texforge/main/scripts/install.sh | sh

Windows (PowerShell):

irm https://raw.githubusercontent.com/UniverLab/texforge/main/scripts/install.ps1 | iex

This downloads a precompiled binary — no Rust toolchain required. Tectonic (the LaTeX engine) is installed automatically on first build.

The installer accepts environment variables:

# Pin a specific version
VERSION=0.1.0 curl -fsSL https://raw.githubusercontent.com/UniverLab/texforge/main/scripts/install.sh | sh

# Install to a custom directory
INSTALL_DIR=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/UniverLab/texforge/main/scripts/install.sh | sh
# Pin a specific version (PowerShell)
$env:VERSION="0.1.0"; irm https://raw.githubusercontent.com/UniverLab/texforge/main/scripts/install.ps1 | iex

Via cargo

cargo install texforge

Available on crates.io.

Updating texforge

The explicit command is the primary path:

texforge update            # shows the newer version and asks (default answer: NO)
texforge update --check    # exit 1 if an update is available, 0 if up to date, 2 if the check could not be completed
texforge update --yes      # install without asking

texforge update downloads the release asset for your platform, verifies its SHA256 checksum when the release ships one, and replaces the binary that is running (typically ~/.local/bin/texforge for installer installs) atomically and in place. It never updates silently: you are always asked first, and declining leaves everything untouched. If the network or the GitHub API is unavailable, the command exits 2 with the cause on stderr — a failed check never reads as “you are up to date” and never reads as an update being available.

texforge init still shows a passive notice (at most once a day) when a newer release exists; that notice never downloads unless you answer yes.

If you installed via cargo install:

Self-update is deliberately disabled — cargo owns that installation path and tracks its own versions. texforge update refuses and tells you to run:

cargo install --force texforge

Why it matters: Mixing install methods leaves two binaries on your system. The one on your PATH may not be the one that updated, leading to confusing version mismatches. Choose one method and stick with it.

From source

git clone https://github.com/UniverLab/texforge.git
cd texforge
cargo build --release
# Binary at target/release/texforge

GitHub Releases

Precompiled binaries for Linux x86_64, macOS x86_64/ARM64 and Windows x86_64 are published on the Releases page.

Platform support

Platform Architecture Status
Linux x86_64 ✅
macOS x86_64 ✅
macOS ARM64 (Apple Silicon) ✅
Windows x86_64 ✅

Uninstall

To remove everything texforge manages (Tectonic engine, template cache, dictionary cache, configuration):

texforge uninstall

This shows what it would remove and asks for confirmation. The personal spell dictionary (~/.texforge/spell-words) is preserved by default — it contains your own writing. To remove it as well:

texforge uninstall --include-spell-words

The texforge binary itself is not removed by this command. To remove it:

  • If installed via the quick installer or a direct download: rm -f ~/.local/bin/texforge (or the path shown by texforge uninstall).
  • If installed via cargo: cargo uninstall texforge.