The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the EmbedEarth (E2) listing page.
EmbedEarth (E2) is an open, programmable geographic engine for the physical world. Search places and real-world features, run spatial computations, build routes, render maps, and work with geographic datasets through one SDK.
E2 is built as an open alternative to Google Maps Platform, bringing together capabilities commonly spread across Maps, Places, Routes, Geocoding, Autocomplete, and Street View — while adding spatial computation, open geographic data, and local execution.
Get started · Documentation · Examples
EmbedEarth is an early developer foundation. The API surface, hosted services, and open-source boundary are still being shaped.
| Package | Install | npm |
|---|---|---|
| SDK | npm install @embedearth/sdk | @embedearth/sdk |
| CLI | npm install -g @embedearth/cli | @embedearth/cli |
| MCP | npx -y @embedearth/mcp | @embedearth/mcp |
E2 can run locally or in the cloud. Local datasets are downloaded once per region and reused for future requests, so the same data does not need to be fetched again.
| Mode | Purpose |
|---|---|
auto | Use local data when available, otherwise cloud. |
offline | Download once, then reuse locally. |
cloud | Cloud execution with unlimited use using an API key. |
Traditional mapping APIs are built primarily around maps, places, and directions. E2 makes the broader physical world programmable.
For developers coming from Google Maps Platform, E2 can replace many common workflows built around Maps, Places, Routes, Geocoding, Autocomplete, and street-level imagery while giving applications direct access to broader geographic datasets and spatial computation.
The repository includes a TypeScript SDK, CLI, MCP server, Stratum local-data workflows, and spatial compute primitives.
From TypeScript:
Search the physical world by feature, place, region, or coordinates. Query places, infrastructure, observations, natural features, civic data, and other geographic datasets through one interface. Results are returned as GeoJSON and can be passed directly into Compute, Map, or Route.
Run spatial analysis directly against geographic features. Find what is nearest, measure distance, count features, calculate density and coverage, detect gaps, or cluster nearby objects — turning geographic data into answers without a separate GIS stack.
Render E2 data using MapLibre-compatible maps and PMTiles. Load the global basemap alongside feature layers, Search results, routes, and your own geographic data, while your application keeps control over styling and interaction.
Calculate movement through the physical world. Build routes, travel-time matrices, isochrones, map matches, elevation queries, and network-aware searches from coordinates or E2 features — so applications can route to things rather than only fixed coordinates.
E2's portable data layer for geographic datasets. Discover, download, cache, query, and upload geographic data for local, offline, and cloud workflows without maintaining a traditional spatial database. Supports GeoJSON, CSV, Parquet, and SQLite.
EmbedEarth processes billions of street-level images to connect visual observations with geographic features and places. Imagery adds visual context to locations and can surface physical-world features that may not appear in conventional place databases. Street-level imagery is cloud-based and requires an API key and active plan.
E2 can run locally or in the cloud. Local datasets are downloaded once per region and reused for future requests, so the same data does not need to be fetched again. Cloud use is available without a key at limited rates; add an API key from embed.earth for full cloud access and street-level imagery.
| Google Maps Platform | EmbedEarth |
|---|---|
| Maps | MapLibre-based maps and PMTiles sources |
| Places API | Feature and place search |
| Places Autocomplete | Coming Soon |
| Geocoding API | Coming Soon |
| Routes API | Hosted or self-managed routing |
| Street View API | Street-level imagery and visual observations |
| Insights API | Spatial compute: nearest, distance, count, density, coverage, gaps, and clusters |
Use the same interfaces for data that traditional mapping APIs do not expose:
To see which regions E2 covers — countries, states, cities, and other geographic areas with stable IDs — browse the Area catalog at embed.earth/catalog/areas.
To see which features E2 covers — places, infrastructure, observations, natural features, civic data, and other real-world features — browse the Feature catalog at embed.earth/catalog/features.
| Interface | Package | Use it for |
|---|---|---|
| SDK | @embedearth/sdk | JavaScript/TypeScript applications |
| CLI | @embedearth/cli | Shell workflows and automation |
| MCP | @embedearth/mcp | Agent access to geographic tools |
| Map client | @embedearth/sdk/map | MapLibre rendering and data layers |
The repository is intended to open-source the SDK, CLI, MCP server, schemas, examples, and selected data tooling. Hosted global search, continuously updated datasets, managed indexing, and large-scale visual search may remain EmbedEarth-managed services. See the boundary notes as the product evolves.
Read CONTRIBUTING.md for setup and contribution paths. Good first contributions include a dataset adapter, a CLI output format, a Python or DuckDB example, an MCP tool, or documentation improvements.
EmbedEarth v0.1 is the first public release. The roadmap is intentionally broad; API names and hosted endpoints may still change.
Licensed under Apache-2.0. See LICENSE and SECURITY.md.