Understand the difference between compiling in the browser and the native local agent, and learn how to choose the best option for your project.
127.0.0.1:47474...
NeoLeaf was designed with a Client-First & Privacy by Design philosophy: unlike traditional platforms that send your papers to queues on remote servers, in NeoLeaf compilation happens right in the user's hands.
| Feature | โก WebAssembly (Browser) | ๐ป Local Agent (neoleaf-agent) |
|---|---|---|
| Where compilation runs | In the user's browser tab | Natively on the user's machine |
| Sends TeX code to the server? | Never (100% private) | Never (100% private) |
| Requires prior installation | None (open and use) | Yes (requires a local TeX Live or Tectonic) |
| Supported engines | pdfLaTeX (wasm) | pdfLaTeX, XeLaTeX, LuaLaTeX, Tectonic |
| Operating system fonts | Only bundled packages | Any font installed on the system |
| Automatic package installation | Download via web cache (.tar.gz) | Automatic via the local tlmgr |
| Operating systems | Any OS (Linux, Windows, Mac, mobile) | Linux (x86_64), macOS (Intel and Apple Silicon) and Windows 10/11 |
The neoleaf-agent is a lightweight, secure executable written in Rust. It listens only on 127.0.0.1:47474, accepts only requests coming from NeoLeaf (https://neoleaf.science) and requires a one-time pairing code to authorize access.
Copy and paste into the terminal. The script downloads the agent, checks the SHA-256, installs it in ~/.local/bin and registers your user's service (no sudo). If the machine has no LaTeX, it offers to install TinyTeX.
Linux x86_64 and macOS (Intel and Apple Silicon), no sudo. On macOS the agent becomes a LaunchAgent of your user. The script checks the download's SHA-256. View the script
Windows 10 or 11, no administrator. Installs in %LOCALAPPDATA%\Programs\neoleaf-agent and starts with your session. The script checks the download's SHA-256. View the script
Prefer to download the file and install it by hand? Use the steps below.
After downloading the file to your Downloads folder, open the terminal and run:
The install command registers the agent with systemd --user to start automatically with your session and enables the tray icon (StatusNotifierItem / Tray). On macOS, the file is neoleaf-agent-macos-universal and the service is a LaunchAgent (no tray icon); prefer the one-line command above.
Open your project in NeoLeaf. The ๐ป Local (pdfLaTeX / XeLaTeX / LuaLaTeX / Tectonic) engine will appear in the compilation selector in the top bar. When you click to compile for the first time, the agent:
127.0.0.1:47474 and does not accept external network connections.https://neoleaf.science.--shell-escape option and inside an isolated directory at ~/.cache/neoleaf-agent/work/.~/.config/neoleaf-agent/config.json with 0600 permissions (readable only by your user).