Pack Builder guide

Build custom offline location packs in the browser.

The Pack Builder lets you draw or search for real map regions, preview point-of-interest data, create custom named regions, and install offline packs for KeywordLens without writing JSON by hand.

First steps

Choose a pack type, select a coverage area, then build and install the pack.

Step 1

Open the Pack Builder

Start the KeywordLens backend, then open http://127.0.0.1:8099/tools/pack-builder. You can also open it from Lightroom with Open Offline Pack Builder.

The first visit shows a welcome panel with shortcuts for search, draw, import, and this guide. Returning users go straight to the builder; use Help -> Show welcome to reopen it.

First-use welcome panel with Search for an area, Draw on the map, Import GeoJSON, Open guide, and Start building actions.
The welcome panel introduces the main ways to start: search for a boundary, draw on the map, import GeoJSON, or open the full guide.
Pack Builder overview with Pack Type, Build Steps, Select Region, Installed Packs, the map, and the Start Here panel.
The builder is a work surface: workflow controls on the left, map tools on the right, and Help/Tools in the header. When no region is selected, the floating Start Here panel offers search, draw, import, and guide actions. You can hide it with × and restore it from Help -> Show start hint.
Step 2

Choose a pack type

The Pack Type selector changes the workflow shown in the sidebar.

POI Pack

Use this when you want data-derived places inside a region: countries, regions, parks, viewpoints, waterfalls, castles, lodging, and other Natural Earth or OpenStreetMap classes.

Named Region

Use this when GPS-tagged photos should resolve to a place name you choose for a specific area, even when no useful POIs are available. Ideal for national parks, private reserves, farms, venues, and custom travel zones.

Step 3

Select a region

You can select coverage in three practical ways: draw on the map, search for a boundary candidate, or import GeoJSON. Search returns ranked area candidates with place kind, source, approximate area, and warnings so you can avoid accidentally choosing a gate, POI, or partial area.

  1. Draw: Use the polygon or rectangle tools on the map.
  2. Search: Type a place such as Kruger National Park or Brussels, Belgium into the sidebar search field, review the candidates, then click Use this area.
  3. Import: Use Tools -> Import GeoJSON or the sidebar import link to load a saved polygon.

Search works best with English place names and as much context as you know. For example, Camden, London, UK is more likely to find the intended borough than Camden alone, and Kruger National Park, South Africa is better than Kruger.

Use Add and Subtract to fine-tune the selected area. In Add mode, the next shape you draw is added to the current selection. In Subtract mode, the next shape you draw cuts that area out of the current selection. Use the map delete tool when you want to remove selected area shapes. These controls are useful when a searched boundary is almost right but needs a neighboring area added, a wrong section removed, or a custom edge adjusted before you build the pack.

A Kruger example region selected in POI Pack mode with POI classes listed in the sidebar.
After selecting a region, the sidebar shows its name, basic details, export/import actions, add/subtract controls, and the next workflow step.
POI Pack workflow

Build a POI Pack

POI packs combine the selected region with feature classes from Natural Earth and OpenStreetMap. They are useful when you want KeywordLens to resolve GPS coordinates to many nearby or containing places.

  1. Select POI Pack.
  2. Select or draw a region.
  3. Review the grouped POI classes. Natural Earth classes show counts quickly; OpenStreetMap classes are downloaded when you click Download POIs.
  4. Use Select all or individual checkboxes to control what goes into the pack.
  5. Click Download POIs to preview data on the map.
  6. Name the pack, choose Install locally and/or Generate zip, then click Build Pack.
POI Pack workflow after downloading POIs, showing collapsed POI Classes, the map preview, and Build Pack section.
Once POIs are loaded, POI Classes collapses to keep the sidebar focused on Build Pack. The map still shows the preview legend and selected POIs.
Named Region workflow

Build a Named Region Pack

Named Region packs do not download POIs. Instead, you define an area and give it a place name. When a GPS-tagged photo falls inside that area, KeywordLens can associate the photo with that name. Use this for national parks, private reserves, farms, venues, event sites, or custom travel zones where the containing place matters more than nearby POIs.

  1. Select Named Region.
  2. Draw, search, or import one or more areas. Brussels is shown below as a simple city-region example.
  3. For each area, enter a name. This is the place name KeywordLens can use for GPS-tagged photos taken there.
  4. Choose a feature class. Protected area is a good default for reserves and private conservation areas; Region / zone is useful for broader custom areas.
  5. Choose a subclass preset such as national_park, private_game_reserve, farm, or event_site, or choose Custom... when no preset fits. Subclass values are stored as lowercase tokens, not display labels.
  6. Build and install the pack.
Brussels selected in Named Region mode with the Name and Classify form and Build Pack step visible.
Named Region mode replaces POI class selection with a Name & Classify step for each area.
Pack output

Install and use built packs

The Build Pack section has two output choices. Install locally copies the completed pack into the offline-pack folder configured for KeywordLens and makes it appear under Installed Packs after the build succeeds. By default that folder is ~/.keywordlens/offline-packs/<pack_id>/. If you set an Offline packs folder in Plugin Manager, or start the backend with KEYWORDLENS_OFFLINE_LOCATION_PACKS_DIR, installed packs go there instead. KeywordLens can use that pack for offline GPS/place resolution when offline packs are enabled in Plugin Manager or the Analyze Photos flow.

Generate zip creates a distributable archive for sharing, backup, or catalog hosting. By default the zip is written under ~/.keywordlens/pack-builder-dist/<pack_id>.zip, with a companion catalog JSON for POI packs. If the backend data folder is changed with KEYWORDLENS_DB_DIR, the pack-builder-dist folder lives under that directory instead. A zip file by itself is not used by KeywordLens until it is also installed locally, installed later from a pack catalog, or copied into the offline-pack folder that the plugin/backend is configured to read. If you check both options, you get an installed local pack and a zip archive.

Use Refresh on an installed pack to rebuild the same pack with newer source data. Use Edit to load the pack's saved region and classes back into the builder before rebuilding. If you run the standalone builder or Docker with a different offline-pack folder, point Lightroom's KeywordLens offline-pack setting at the same folder so Lightroom analyses can use the packs you built.

Header menus

Use Tools and Help

The header keeps secondary actions out of the main workflow. Only one menu opens at a time.

Tools menu with import, export, refresh, build history, sidebar, and clear actions.
Tools contains actions for importing/exporting GeoJSON, refreshing installed packs, toggling build history, hiding the sidebar, and clearing a region.
Help menu with Pack Builder guide, Using built packs, Show welcome, and Show start hint actions.
Help opens this guide, jumps to the built-pack usage section, and lets you reopen the Welcome panel or restore the floating Start Here hint after you dismiss it.
Installed packs

Manage installed packs

The Installed Packs section lists packs found in your offline-pack folder. For each installed pack you can view details, refresh it with newer source data, edit its stored region/classes, rename the display name, or delete it from disk.

Use Refresh when you want the same pack rebuilt with updated OpenStreetMap or Natural Earth data. Use Edit when you want to load the saved region back into the builder and change coverage or classes before rebuilding.

Troubleshooting

Common issues

The builder page will not open

Make sure the backend is running, then open http://127.0.0.1:8099/tools/pack-builder. The standalone launcher and Lightroom menu both use the same backend.

Search picked the wrong place

Use English place names and include context such as city, region, and country. For example, try Camden, London, UK instead of only Camden. You can also use the draw tools or import GeoJSON for exact boundaries.

Privacy tools mention unpkg or cdnjs

The builder loads static browser libraries from public CDNs: Vue from unpkg.com renders the sidebar, welcome panel, checklist, and build status; Leaflet from unpkg.com renders the map; Leaflet Draw from cdnjs.cloudflare.com powers rectangle/polygon drawing and delete controls. KeywordLens does not use those CDN requests for analytics or tracking. If the page works, browser messages about blocked storage access are harmless; if your extension blocks the files completely, allow those two CDNs for this local builder page.

POI download is slow

Large regions and many OpenStreetMap classes can take time. Narrow the region or select fewer OSM classes before downloading.

The Build Pack button is disabled

In POI Pack mode, download POIs first. In Named Region mode, every selected area needs a name before the pack can be built.