-- Leo's gemini proxy

-- Connecting to skyjake.fi:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini


Lagrange is a desktop GUI client for browsing Geminispace. It offers modern conveniences familiar from web browsers, such as smooth scrolling, inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks, history, and page outlines.

Like Gemini, Lagrange has been designed with minimalism in mind. It depends on a small number of essential libraries. It is written in C and uses SDL for hardware-accelerated graphics. OpenSSL is used for secure communications.

Screenshot (showing "skyjake.fi/lagrange/")


Beautiful typography using Unicode fonts

Autogenerated page style and Unicode icon for each Gemini domain

Smart suggestions when typing the URL — search bookmarks, history, identities

Sidebar for page outline, managing bookmarks and identities, and viewing history

Multiple tabs and split view

Identity management — create and use TLS client certificates

Audio playback: MP3, Ogg Vorbis, WAV

And more! Open `about:help` in the app, or see help.gmi

help.gmi (release branch)


Prebuilt binaries for Windows, macOS, and Linux

Lagrange on Flathub (for Linux) — see below for known issues

Source code and resources (.tar.gz, 20 MB)

On macOS you can install via a Homebrew tap:

$ brew tap skyjake/lagrange
$ brew install lagrange

On openSUSE Tumbleweed:

sudo zypper install lagrange

On other platforms (e.g., *BSD), you'll need to compile the source tarball (CMake).

What's new?


Release announcement (on the gemlog)

Added UI language: Polish.

Footer buttons: easy access to the most relevant actions on error pages and inside Gempub books.

Revised New Identity dialog; using an identity instantly after creation.

Usability of the Identities sidebar: URLs where an identity is used can be accessed via context menu, highlight all identities that may be used on the current domain.

Exporting identities: show certificate and private key in PEM format in a new tab.

Multi-line text input and word wrapping. All input fields can expand vertically.

Input query response length indicator.

Animate showing/hiding of sidebars and dialogs.

Added new Emoji/symbols font "Smol Emoji", removed Symbola.

Setting for custom symbol (fallback) font (TrueType only).

Added keybindings for split view modes.

Added --url-or-search command line option.

(v1.5.1) Updated resources: UI translations and Smol Emoji.

(v1.5.2) Bug fixes and tweaks: pasting a certificate/key in Import Identity; set StartupWMClass; NFC normalize page contents; recognize more link icons; updated Smol Emoji.


If you have questions, comments or improvement ideas, you can reach me via:

GitHub: Bug reports, feature requests, PRs

Codeberg: PRs

UI translations (Weblate)

@jk@skyjake.fi on Mastodon


Known issues


Flatpak applications run in a sandbox that limits their access to the rest of the system. At the moment, Lagrange has not been fully adapted to use Flatpak Portal APIs, so the following are known issues:

Unable to open HTTP/HTTPS links via the default browser.

Multiple instances of the application overwrite each other's data.

See also

How to compile

Translation credits 🥇

Emoji test page


-- Response ended

-- Page fetched on Fri Jul 23 16:06:01 2021