What Is GeoLibre? The Free Cloud-Native GIS, Explained
What GeoLibre is, what it runs on, and what it can actually do. The free open-source cloud-native GIS explained, including what it does not do yet.
Summary
- GeoLibre is a free, MIT-licensed GIS application, not a library. It’s built on Tauri v2, React, MapLibre GL JS, DuckDB-WASM Spatial and deck.gl, and it runs in a browser tab, as a desktop app on Windows, macOS and Linux, as native iOS and Android apps, and inside Jupyter
- It comes from the opengeos project, led by Qiusheng Wu at the University of Tennessee, Knoxville. First release 28 May 2026, v1.0.0 thirteen days later, v2.6.0 by 14 August 2026
- 1,066 geoprocessing tools run locally through WebAssembly, including 154 remote sensing tools, so analysis happens on your machine with no server and no upload
- One
.geolibre.jsonproject file opens in every runtime. It also imports QGIS.qgs/.qgzand ArcGIS Pro.aprx/.mapxprojects, rebuilding layers, groups, styling and the saved view - It is not finished. Real-time collaboration is labelled MVP by its own authors, several tools are desktop only because they need a local Python process, and the Mac App Store build trades away more still
Search for GeoLibre and one of the first things you’ll read is that it’s a Python library.
It isn’t. GeoLibre ships a Python package, which is a different claim entirely, and the distance between those two sentences turns out to be most of what’s interesting about the project. If you’re trying to work out what this thing actually is before you spend an afternoon on it, start there.
What GeoLibre Actually Is
GeoLibre is a full desktop-class GIS that happens to run in a web browser. Layers panel, style rail, attribute tables, expression builder, print composer, processing toolbox: the furniture a GIS analyst expects, all of it, in a tab.
It’s built with Tauri v2, React and TypeScript, with MapLibre GL JS doing the 2D rendering, deck.gl handling 3D and large point data, DuckDB-WASM Spatial running the SQL, and CesiumJS available for a true 3D globe. The Tauri wrapper is why the same codebase installs as a native application on Windows, macOS, Linux, Android and iOS. It’s MIT licensed, so free in both senses.
The project moves fast enough that any version number in this post will be stale before long.
-
28 May 2026
v0.1.0
First public release. The repository was created the day before.
-
10 June 2026
v1.0.0
Thirteen days after the first release.
-
11 July 2026
v2.0.0
Mobile builds, expanded processing, plugin system.
-
14 August 2026
v2.6.0
27 releases in 78 days. 6,500+ GitHub stars, 640+ forks.
The Python Library Confusion, Cleared Up
This matters because it changes what you’d go and do next.
There is a geolibre package on PyPI, and you can pip install geolibre. But the package doesn’t reimplement GIS operations in Python the way GeoPandas or Rasterio do. It’s an anywidget bridge. GeoLibre’s own documentation describes it plainly: the widget “loads the complete GeoLibre app (menus, panels, processing tools) in an iframe”, and state syncs both ways through a single .geolibre.json project.
So data you add from Python appears in the interface, and pans, zooms and layer edits you make in the interface read back into Python. It’s the application, embedded, with a scripting handle attached. There’s an R package that does the same job for RStudio, Quarto and Shiny, and an MCP server (geolibre-mcp) that authors project files headlessly with “no browser, no running app, and no bundled web build.”
Five Surfaces, One Project File
The unusual part isn’t that GeoLibre runs in several places. Plenty of software does. It’s that one .geolibre.json file is genuinely portable across all of them: build a map in a notebook, save it, reopen it on a phone.
What you give up varies by surface, and the differences are honest ones rather than marketing tiers.
| Surface | How you get it | WASM toolbox | Notable limits |
|---|---|---|---|
| Browser | web.geolibre.app, nothing to install | Yes | No local file dialogs, MBTiles or filesystem save |
| Desktop | Installers, winget, Homebrew Cask | Yes | The fullest build, including the Python sidecar |
| Mac App Store | Sandboxed macOS build | Yes | No Python sidecar, local Jupyter, Earth Engine or plugins |
| iOS and Android | App Store, Google Play | Yes | Sidecar tools hidden; “the iOS sandbox forbids spawning one” |
| Jupyter, R | pip, conda, CRAN | Yes | Embeds the app; needs a kernel to host it |
The browser build is a progressive web app with a Download Offline Area tool that pre-caches the current view’s basemap tiles, and it service-worker caches Pyodide and PGlite so SQL and Python keep working offline after first use. That’s a genuinely odd sentence to be able to write about a web page.
What’s Actually Inside It
The processing toolbox is the part most people underestimate. GeoLibre bundles the Whitebox suite compiled to WebAssembly and runs it locally, which means no Python environment, no server round-trip, and nothing uploaded.
Conversion (49), network (26) and projection (4) bring the total to 1,066. The remote sensing set is the one worth knowing about if you work with imagery: a dedicated spectral index toolbox covering NDVI, GNDVI, NDWI, NDMI, NDBI, NBR, EVI and SAVI, with band layouts preset for Sentinel-2, Landsat 8-9 and NAIP. We’ve written separately about what those vegetation indices actually measure.
Beyond processing, the feature list runs long: rule-based renderers, a data-driven label engine, virtual fields, an expression builder shared across filters and styling, a SQL workspace running DuckDB Spatial with PGlite and Apache Sedona as alternative engines, story maps, dashboards with cross-filtering widgets, a print composer with atlas generation, field collection that reads an external NMEA GPS receiver over Web Serial or Web Bluetooth, and 18 translation catalogues including right-to-left Arabic and Persian.
There’s also a plugin system, with browsers for STAC catalogues, OpenAerialMap, Overture Maps, USGS LiDAR and NASA’s Earthdata GIS portal.
How It Sits Next to QGIS and ArcGIS
Not as a replacement, at least not yet, and the project doesn’t really claim otherwise.
QGIS has two decades of plugins, a vast body of documentation, and the accumulated trust that comes from being the thing everyone already knows. Anything unusual you need to do, someone has probably written a QGIS plugin for it. That’s very hard to compete with, and GeoLibre isn’t trying to on those terms.
What GeoLibre has instead is zero install, a project you can share as a URL, cloud-native formats treated as first-class rather than bolted on, and analysis that runs client-side on a phone. The migration path is unusually considerate too: it imports QGIS .qgs and .qgz projects, rebuilding layers, nested groups, group visibility, layer order, styling and the saved map view, and reports per-layer why anything was skipped. ArcGIS Pro .aprx and .mapx projects import as well, read straight from CIM JSON without ArcPy.
Most people who try it will end up running it alongside what they already have. That’s the honest answer, and it’s fine. If you want the desktop version of the same imagery question, our QGIS imagery guide covers that canvas.
What It Doesn’t Do
Any explainer that skips this section is selling you something.
Real-time collaboration is an MVP. The project labels it that way itself. Per-participant permissions, chat and a session roster exist, and snapshots are portable, but treat it as early.
Several tools need a local Python process, so they vanish on mobile. Raster tools, conversion, AI segmentation and the PostgreSQL/Martin tools all depend on the desktop sidecar. The docs are blunt about why on iOS: the sandbox forbids spawning one.
The Mac App Store build gives up more. No Python sidecar, no server-backed PostGIS, no local Jupyter server, no Earth Engine sign-in, and no external plugin installs. The in-browser SQL engines survive. If you want everything, take the signed installer rather than the Store version.
Big local files come with warnings, not magic. Large vector layers render through client-side vector tiling with a warning before loading very large files, and Apache Iceberg tables load capped by a row limit so something bigger than the browser can hold still opens as a usable subset. Sensible engineering, but it’s a ceiling.
A few features need a remote host. GDAL export, ONNX object detection, story map HTML export and Pyodide reach outside. There’s a GEOLIBRE_NO_EXTERNAL_CDN=1 build for locked-down deployments that reports this up front instead of failing mid-run. The Cesium 3D globe needs your own Ion token.
Where Geopera Fits
We don’t build GIS software. We sell the pixels that go in it, so our interest here is narrow and worth stating plainly: a cloud-native GIS only pays off if the imagery is written to match.
GeoLibre reads range requests for the tile covering your view rather than the whole scene. That saving evaporates if a provider hands you a flat GeoTIFF, because the entire file has to come down first. Every Geopera order is delivered as a Cloud Optimized GeoTIFF, orthorectified, pansharpened and atmospherically corrected at no extra cost, with a STAC 1.0 catalogue and WMTS tiles behind an API key. Paste a URL, and it streams.
We’ve written the full version of that argument, with the byte arithmetic, in our guide to adding satellite imagery to GeoLibre. If free data will do the job, our roundup of the best free sources of satellite data is the better starting point, and we’d rather you use it than overspend.
An open-source GIS that runs anywhere is worth paying attention to. What you point it at is still your call.
Frequently Asked Questions
What is GeoLibre?
GeoLibre is a free, open-source, cloud-native GIS application built on MapLibre GL JS and Tauri v2. It runs in a web browser, as a desktop app on Windows, macOS and Linux, as native iOS and Android apps, and inside Jupyter notebooks.
Is GeoLibre free?
Yes, and it’s MIT licensed. There’s no account, no subscription and no paid tier. Data and basemaps you load carry their own separate licences, which is usually where the actual restrictions live rather than in the software.
Is GeoLibre a Python library?
No. There’s a geolibre package on PyPI, but it’s an anywidget bridge that embeds the full application inside Jupyter and syncs state through a project file. The GIS itself is a Tauri and React application, not a Python library.
Can GeoLibre open QGIS projects?
Yes. It imports .qgs and .qgz files, rebuilding layers, nested groups, visibility, layer order, styling and the saved map view, and it reports per layer why anything was skipped. ArcGIS Pro .aprx and .mapx projects import too.
Can GeoLibre replace QGIS?
For many jobs, yes, and it’s genuinely faster to reach. QGIS still wins on plugin depth and on the unusual workflows people have built over twenty years. Most people will run both rather than choosing, especially while GeoLibre is this young.

