What is E2?

An open-source, local-first stack for places, search, routing, and spatial compute over open data.

Documentation navigation

The problem

Location is one of the most locked-down corners of software. Proprietary map APIs meter every request, price by call, and reserve the right to change terms. Their terms of service routinely restrict caching, storage, and redistribution, so every place name, road shape, and routing result you display is rented rather than owned. Migrating means rewriting your app against a different API with different data.

The underlying data is mostly open already. OpenStreetMap and related catalogs describe hundreds of millions of features. E2 exists to make that data as easy to query as a hosted API, without the lock-in.

What E2 is

E2 is an open-source stack for places, search, routing, and spatial compute built on open data. The same operations — search, routes, matrices, isochrones, spatial analysis — run against a local SQLite index on your machine or against hosted APIs. You switch between the two with a mode flag, not a rewrite.

E2 covers the data and query layer: Places-style search, autocomplete, neural search, routes and network analysis, spatial compute, an open data catalog, and map tiles. Bring any rendering library — Leaflet, MapLibre GL, deck.gl, MapKit, or none at all.

The pieces

PieceWhat it does
@embed-earth/sdk-testJavaScript and TypeScript SDK for search, routing, compute, storage, catalogs, and cells.
@embed-earth/cli-testThe e2 CLI for search, routing, compute, cache management, and local indexing from the terminal.
@embed-earth/mcp-testAn MCP server that exposes E2 tools to AI agents over standard input and output.
Hosted platformAPIs for search, routing, tiles, and compute when you want a managed endpoint.
Open data catalogPublished feature and region datasets you can download and index locally.
Map tilesRaster and vector tiles that render with open libraries.

Local-first architecture

The SDK, CLI, and MCP server all read and write the same local SQLite data. Snapshots of published datasets live in a cache directory you control. Queries run in remote mode (fetch published data), offline mode (cached data only), or auto mode (cache first, network when needed). Offline mode works with no network at all.

Your data stays yours. Queries against your local index never leave your machine, and the data files are ordinary SQLite you can copy, back up, inspect, or drop.

Who it is for

You areE2 gives you
A developer replacing Google or Mapbox APIsDrop-in search, routing, and compute with predictable local or hosted pricing and no storage restrictions.
A data teamOpen catalogs, local SQLite indexes, and spatial compute primitives that run next to your pipelines.
Building AI agentsAn MCP server with typed tools for search, routing, compute, and catalogs.

Keep reading