Skip to content

Install

Libera Suite runs on macOS (Apple Silicon) and Linux (x86_64 and arm64). Windows is planned; see What works today.

Not published yet

libera is not on PyPI, so every pipx install libera on this page fails today. The message comes from uv and is about resolving the package, so it reads like a broken environment when it is a missing upload. The name is registered to nobody, so the first release takes it.

Until then there are two working routes: the Flatpak, below, which is a file you install; and a checkout, in the developer overview.

1. The application

On macOS:

uv tool install libera      # or: pipx install libera

On Linux, the flag is not optional:

pipx install --system-site-packages libera

Libera Suite's window is GTK and WebKit, and the Python half of those (PyGObject) is not a wheel. It is a package your distribution installs, at /usr/lib/python3/dist-packages/gi, and an isolated virtualenv never has it on sys.path however thoroughly you have installed it. Measured on a Debian box carrying every package below:

pipx install libera no window
pipx install --system-site-packages libera works
uv tool install libera no window

uv tool has no equivalent flag, so on Linux there is no spelling of it that opens a window. Use pipx, or the Flatpak, which brings its own GTK and WebKit and sidesteps the whole question.

You also need the system packages themselves. libera checks before it does anything else and prints the line for your distribution (apt, dnf, pacman or zypper), so if you are unsure, just run it.

This gives you the libera command, which is small and cannot edit anything until it has the payload.

Or, on Linux, the Flatpak

The bundle carries GTK, WebKit and their Python bindings in the GNOME runtime, so none of the above applies. There are no system packages to install and nothing to get wrong:

flatpak install --user libera-0.1.0-amd64.flatpak     # or -arm64, for your machine
flatpak run eu.liberasuite.Libera

Skip step 2. The editors are inside the bundle, so there is nothing to fetch, nothing to verify and nothing that needs the network. The download is about 77 MB and it installs offline.

Updates do not re-download the editors, because Flatpak stores files by content hash: a release that only changes the application moves the application. There are two bundles, one per architecture, because a Flatpak cannot be cross-built.

A hosted .flatpakref, so that installing takes one URL, is on the roadmap.

2. The payload

Not needed if you installed the Flatpak, which carries its own. This is for the pipx install, which is the one channel that cannot: a 120 MB wheel per platform is not something to put on PyPI.

The payload holds the editors, the document engine and the fonts. Ask for it explicitly:

libera --payload-install

The public payload origin is not up yet

Until it is, that command will tell you it cannot reach the origin and point you at the alternative. If you have built the artifacts yourself, or been given them, install from the directory instead:

libera --payload-install --from /path/to/artifacts

Building them yourself is documented in Build the payload.

The install unpacks the files and then runs a font indexer locally, because some of the payload's files record absolute paths and have to be generated on your machine. This is why the payload cannot simply be a zip file someone else made.

Check what you have

libera --payload-status

Where things live

macOS ~/Library/Application Support/Libera Suite/
Linux $XDG_DATA_HOME/libera/, or ~/.local/share/libera/

The payload sits under payload/<version>/ there; nothing else on your system is touched.

To point Libera Suite at a payload somewhere else (a local build, say), set LIBERA_PAYLOAD to its directory. That overrides everything else, so you can develop against a payload you have not installed.

A double-clickable application

For a Dock icon, Open With, and opening a document by double-clicking it:

build/macos-app.sh          # builds build/out/Libera.app
open build/out/Libera.app

The bundle is unsigned, unnotarised, and launches the interpreter it was built against, so it belongs to your checkout. /Applications is not its home; move the checkout and rebuild it.

Remove it

libera --payload-remove