A desktop map app laid out like Apple Maps.
Pick your tiles, and reshape it while it runs.
Install · Gallery · What it does · Place sheet · Make it yours · Limitations
Moonmap is a desktop map app on Moonframe: a sidebar
of places and recents, Maps' control stack down the map's right edge, Look
Around bottom-left and the weather bottom-right. The map is Moonframe's
ui.map, and the tiles come from whichever provider you pick. It is not
affiliated with Apple.
The window. Places, suggestions and recents on the left; the map's controls on the right.
Moonmap has no release yet, so build it from source. You need rustup, Xcode Command Line Tools and Just. The first build compiles Moonframe and GPUI and can take several minutes.
just demo # a fixed position at Union Square and public San Francisco places
just run # your own library, in ~/Library/Application Support/moonmap
just app # a standalone release bundle in target/bundle
just screenshot target/screenshots/home.png home # home, place, directions, styles, results, dark
just screenshots # retake the screenshots above
just cijust demo never asks the location service, and it rebuilds its library on
each launch.
-
My Location: CoreLocation at its best accuracy, with no distance filter. If you granted only an approximate location, it asks once for full accuracy. The blue dot breathes while the fix is live and turns grey when it only shows where you were last seen. Hover the location button to see the accuracy.
-
Search: Nominatim (OpenStreetMap). It looks near the map first, nearest first, then tries a category word ("coffee" becomes cafe), then searches anywhere.
-
Places: Pinned, Saved Places, Guides (your own collections), Routes, Visited Places (places you opened) and Recently Added, kept in
library.json. -
Siri Suggestions: drive times from My Location to your first two pinned places, from OSRM at routing.openstreetmap.de.
-
Directions: car, walk or bike, routed along streets by
ui.map. You can save a route. -
Map Styles: the map button switches tile providers. Styles that need an API key take one in the picker. It is stored in the library file, in plain text.
-
Weather: Open-Meteo temperature and US AQI at the map's center.
Opening a place shows a full-height sheet. Its website, phone, hours, kind and area come from OpenStreetMap, and its description and photos from Wikipedia, when the place has a page. No open source gives ratings or booking offers, so the sheet has neither. Sections with nothing to show are left out.
The sparkles under the map controls open a dialog: say what should change,
optionally pick an element with Inspect, and a coding agent (Claude by default)
changes the app's files. It asks before each change, and the window reloads
with the result. Replies go under Feedback & fixes. It needs an agent with
an ACP mode, or Node for npx.
- Sparkles in a packaged app: outside a repository the agent works in
~/.config/moonframe, while Moonmap reads~/.config/moonmap. Use a debug build from this repository untilcwdinproviders/acpcovers it. - macOS gives a location only to an app bundle.
just runandjust demorun the debug build fromtarget/dev/Moonmap.app. A barecargo runshows a notice instead, and so does a terminal launch on first use: there the terminal, not Moonmap, gets the permission request. Launch withopen target/dev/Moonmap.appthe first time so macOS asks Moonmap.MOONMAP_DEBUG_LOCATION=1prints what CoreLocation reports. - A Mac locates itself by Wi-Fi, usually to within 20 to 60 m. Maps.app reads the same service, so it isn't more precise; it may only have had a fix longer.
- The tiles are raster and
ui.mapdraws them flat, so there is no 3D. Their labels are part of the image, so they shrink between zoom levels. - The compass button is not connected yet: it always shows north, and clicking it does not turn the map back.
- Look Around shows 360° panoramas from Panoramax, or from Mapillary with a token set in Map Styles. Panoramax has little outside France, so without a token many places show the button disabled: it needs a panorama within 150 m.
- CARTO's basemaps now return an "API key required" tile to every keyless
request. Moonframe's
carto-*providers have no key slot, so Moonmap leaves them out until Moonframe adds one. - Apple's points of interest come from Apple's vector data. Here, what you see is whatever the chosen tile style draws.
- Moonmap is built and run on macOS. My Location is macOS only, and the Linux build has not been tested.
MIT. Map data, tiles, photos and panoramas belong to their providers and contributors, as credited in the app.





