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.
- Beautiful typography with full Unicode support
- 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
On macOS you can install and upgrade via Homebrew:
brew install --cask lagrange
On openSUSE Tumbleweed:
sudo zypper install lagrange
On other platforms (e.g., *BSD), you'll need to compile the source tarball (CMake).
- Bidirectional text, complex scripts, and right-to-left paragraph layout.
- Improved TOFU: error pages if untrusted/expired, public key fingerprints, server port.
- Uploads with the Titan protocol.
- Customizable UI color palette.
- Caching page layout and inline media in memory for faster backward navigation.
- Reorganized Preferences dialog.
- Input settings: keyboard/mouse scroll speed, Return key modifiers.
- Setting for adjusting line spacing.
- Gopher: improved content conversion, handling of preformatted blocks.
- macOS: keyboard shortcut for the system Emoji/symbol picker.
- (v1.6.1) Fixed a potential crash and incorrect behavior when entering and copying text in an input field; URL field contents not being selected after opening a new tab.
- (v1.6.2) Fixed crash when Titan response is a redirect. Fixed issues with buffered graphics and non-HarfBuzz text. Added --tab-url option. Input field improvements: expand Upload to full height; Home/End behavior; scroll with mouse wheel/trackpad; visual tweaks; incorrect behavior when holding down Shift while typing and deleting. macOS: Update UI when toggling dark mode while app is in the background.
If you have questions, comments or improvement ideas, you can reach me via:
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.