Installation¶
Fledge is a Python 3.11+ command-line tool. Building a paper (check and
prepare) also needs TeX and Poppler; see Tools.
System |
Route |
|---|---|
macOS |
The installer, which also sets up TeX and Poppler, or pipx or uv if you have them |
Linux |
pipx or uv, plus the Linux packages |
Windows |
WSL 2 with the Linux route |
macOS installer¶
From the source checkout or an extracted source distribution, preview the plan and then install:
bash install.sh --dry-run
bash install.sh
The installer reuses tools you already have, shows its plan and asks before
changing anything. It supplies Python 3.11+, latexmk, pdfLaTeX, BibTeX and
Poppler as needed. If TeX is absent, the plan includes MacTeX without GUI apps
(mactex-no-gui), a multi-gigabyte installation that can require administrator
access. A conflicting partial TeX installation stops with advice instead of being
replaced. Homebrew is needed only when tools are missing; the installer does not
install Homebrew itself.
Fledge goes into ~/.local/share/fledge, and the launcher is
~/.local/bin/fledge. The installer refuses an existing prefix or launcher,
including a symlink, and edits no shell files. If ~/.local/bin is not on your
PATH, type ~/.local/bin/fledge wherever these pages show fledge. The
launcher’s own PATH contains only the detected tool directories, fallback
directories and system directories, so a virtual environment active in your shell
does not leak into builds.
Option |
Purpose |
|---|---|
|
Preview; make no changes |
|
Accept the displayed plan without a prompt |
|
Also install missing |
|
Choose installation and launcher directories |
|
Remove the installation directory and launcher; works with |
Upgrade or uninstall¶
bash install.sh --uninstall --dry-run
bash install.sh --uninstall
Use the same --prefix and --bin-dir as for the installation. Uninstalling
removes the prefix and the launcher, and only when the installer wrote that
launcher for that prefix; otherwise nothing is removed. It refuses a symlinked
prefix or one containing your home directory, and it leaves Homebrew, TeX,
Poppler, shell files and your projects untouched. To upgrade, uninstall, then run
the installer from the newer source.
Install with pipx or uv¶
Fledge is published on PyPI as fledge-latex. Install it into its own
environment with either tool:
pipx install fledge-latex
# or
uv tool install fledge-latex
fledge --version
This installs the fledge command, and latex-prep for older scripts. It does
not install TeX or Poppler; add them as described under Tools, and for
Linux and Windows below. The command finds them through
your shell’s PATH, unlike the macOS installer’s launcher, which saves the tool
directories it detected. To upgrade or remove it, use pipx upgrade fledge-latex
or uv tool upgrade fledge-latex, and pipx uninstall fledge-latex or
uv tool uninstall fledge-latex.
Warning
Install fledge-latex, not fledge. The PyPI package named fledge is an
unrelated project, so pip install fledge does not install this tool.
Manual installation from source¶
Use Python 3.11+ and install the external tools yourself:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install .
fledge --help
For a wheel, use python -m pip install /path/to/package.whl. Installation
downloads Click and Rich unless local copies are available. The wheel contains
the CLI; the source archive also includes the installer, docs, examples, tests
and the agent skill.
Builds run in a sandbox: sandbox-exec on macOS, or Bubblewrap with working user
namespaces on Linux. Windows has no build sandbox. See
limitations for what has been tested where.
Linux¶
Fledge’s Linux sandbox has passed controlled-command tests only; it has not yet been validated on a live Linux host. On Debian or Ubuntu, the intended package set, which matches Fledge’s Linux test job, is:
sudo apt-get install bubblewrap latexmk biber poppler-utils \
texlive-latex-base texlive-latex-recommended texlive-fonts-recommended \
texlive-bibtex-extra
Add texlive-xetex or texlive-luatex for those engines, and the TeX Live
packages your paper needs. tex-fmt is not packaged by Ubuntu; to use it, put a
release binary in a system
directory such as /usr/local/bin.
Fledge refuses tools installed in your home directory or in the project, so use
distribution packages or another installation under /usr.
Ubuntu 24.04 can block unprivileged user namespaces with AppArmor
(kernel.apparmor_restrict_unprivileged_userns=1), and Bubblewrap needs them. If
the sandbox cannot start, Fledge blocks the build and never falls back to running
unsandboxed. Allowing user namespaces is a security decision for your host: relax
that setting, or add an AppArmor profile that permits bwrap. Fledge’s own Linux
test job sets it to 0 only on its disposable runner.
Windows¶
Native Windows has no build sandbox, so check and prepare cannot build there;
inspect and bib check need only Python. To build on Windows, use WSL 2 with a
Linux distribution such as Ubuntu and follow the Linux instructions
inside it. The same caveat applies: that route is not yet validated on a live
host.
Tools¶
Operation |
Tools |
|---|---|
|
Python package only |
|
|
PDF analysis and comparison |
|
Formatting and optional PDF checks |
|
A tool is needed only for the checks that use it. When a configured check’s tool is missing, that check is reported as incomplete rather than passed. Fledge never installs tools during a run.
Migrating from latex-prep¶
Fledge was previously named latex-prep. Existing setups keep working:
The
fledge-latexdistribution also installs alatex-prepcommand. The macOS installer exposes onlyfledge.Configuration files named
.latex-prep.tomlandlatex-prep.toml, and the[tool.latex-prep]table inpyproject.toml, are still read. In one directory the order is.fledge.toml,fledge.toml,.latex-prep.toml,latex-prep.tomland thenpyproject.toml, so a leftoverlatex-prep.tomlshadows a[tool.fledge]table beside it (see discovery and precedence). Apyproject.tomlwith both[tool.fledge]and[tool.latex-prep]is an error.Formatter-off markers with the
latex-prepprefix are still accepted.Installations under the former name are left untouched by the installer.
For development,
LATEX_PREP_RUN_INTEGRATION=1andLATEXPREP_RUN_SANDBOX_TESTS=1still enable the live tests.Do not install the former
latex-preparationdistribution next tofledge-latex: both provide thelatexprepmodule. Use a fresh Python environment, or remove it withpython -m pip uninstall latex-preparation.Before this package was published, installations from a source checkout were registered as
fledge. Remove such an installation withpython -m pip uninstall fledgebefore installingfledge-latexinto the same environment. Thefledgepackage on PyPI is an unrelated project.