A modern, cross-platform geocaching management tool for Linux, Windows and macOS — a free, open source successor to GSAK, built in Python.
⚠️ Hobby Project NoticeThis project is developed in my spare time as a personal hobby project. Bug reports and suggestions are welcome via GitHub Issues, but responses and updates are not guaranteed. Development happens when time and interest allow.
Pull requests are welcome, though they may not always be reviewed or merged.
The software is provided as-is, without warranty or guaranteed support.
- 📥 Import GPX files and Pocket Query ZIP files from Geocaching.com
- 🗄️ Multiple databases — keep regions separate (e.g. Zealand, Bornholm, Cyprus)
- 📍 Home points — save multiple named home points (Home, Cottage, Hotel…) and switch instantly from the toolbar
- ✅ Update finds from a reference database (e.g. your "My Finds" PQ)
- 🗺️ Trip Planner (
Ctrl+T) — plan a geocaching trip in two modes:- Radius — find caches within a set distance from your active home point; sort by distance, difficulty, terrain, date or name
- Route A→B→… — find caches along a multi-point route (up to 10 waypoints); caches sorted in driving order along the route
- Route points can be typed in any coordinate format or picked from your saved home points
- Preview on map — open selected trip caches on an interactive map with one click
- Export trip caches directly to GPS or as a GPX file
- 🗺️ Interactive map with OpenStreetMap and colour-coded cache pins with clustering
- 🔍 Advanced filter dialog — 6 tabs: General, Dates, Other, Attributes (~70 Groundspeak attributes), Text Search, and a raw SQL WHERE tab
- 📊 Configurable columns — 17+ columns, toggle on/off
- 🎨 Color-coded status — found (yellow) and your own caches (green) in the GC Code column and info bar, archived/disabled caches in red; clickable info-bar counts filter the list instantly
- 🔗 Click GC code → opens cache page on geocaching.com
- 🗺️ Click coordinates → opens in Google Maps or OpenStreetMap
- 📋 Cache details — description, hints, logs, attributes, personal notes, and child waypoints, each in their own tab
- 🔓 ROT13 hint decoding — one click to decode / re-hide the hint
- 🔍 Search in logs — real-time search with match highlighting; links in log text are clickable
- 📝 Personal notes — your own free-text notes per cache, round-trippable with GSAK (
gsak:UserNote) - 🧩 Child waypoints — parking spots, trail heads, and stages imported from GPX, shown on the map and in a dedicated tab; caches with waypoints show in bold in the list
- 🔒 Lock caches — freeze a cache's core fields (name, type, coordinates, D/T, owner, status, descriptions, hint…) against being overwritten by a later re-import
- 📍 Corrected coordinates — store solved puzzle coordinates per cache; used in GPS export and shown on map
- ✏️ Add / edit / delete caches manually
- 🌐 Open on geocaching.com
- 🗺️ Open in map app (Google Maps / OpenStreetMap)
- 📋 Copy GC code / coordinates (in your chosen format)
- ☑ Mark as found / not found
- 🔒 Lock / unlock cache — protect against import overwrites
- 📍 Add / edit / clear corrected coordinates
- ⇄ Open coordinate converter directly from the cache list
- 📤 Send to Garmin GPS — auto-detects USB-mounted Garmin devices
- 🗑️ Optional: delete existing GPX files on device before upload
- 💾 Save as GPX file — export to any location
- ⇄ Coordinate Converter — convert between DD, DMM and DMS formats with one click
- 📐 Coordinate Projection — calculate a new coordinate from bearing and distance
- 🔢 Digit Checksum — sum all digits in a coordinate (N/S and E/W separately)
- ⊕ Midpoint — find the great-circle midpoint between two coordinates
- 📏 Distance & Bearing — distance and azimuth between two coordinates
- All tools open pre-filled with the currently selected cache's coordinates
- 🌍 Danish, English, French, Dutch, Portuguese, German, Czech and Swedish built in
- 🔧 Easy to add new languages — copy one file, translate, done
- Favourite points cannot be imported from GPX/PQ files (requires Geocaching.com API)
- No Geocaching.com Live API integration
- GPS auto-detection on Linux may not find all Garmin devices automatically
- macOS builds are not signed with an Apple Developer certificate (right-click → Open on first launch)
| Guide | Description |
|---|---|
| Installation | All platforms, automatic and manual methods, updating, uninstalling |
| Getting Started | First launch, importing, filtering, GPS export, multiple databases |
| Filter Reference | All filter types across 5 tabs, AND/OR logic, filter profiles |
| Keyboard Shortcuts | Full shortcut reference |
| Feature Flags | Developer feature flag system |
| CLI --version flag | Print version or run a specific release |
| CHANGELOG | Version history |
| CONTRIBUTING | Development setup, code style, translations, PR workflow |
# Linux / macOS (from source)
git clone https://github.com/AgreeDK/opensak.git
cd opensak
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
python run.pyFor Windows, macOS bundles, and AppImage downloads see docs/installation.md.
Please use GitHub Issues and include:
- Your platform (Linux / Windows / macOS + version)
- Python version:
python3 --version - The error message from the terminal (if any)
- HTML/PDF reports and statistics
- GPS export — improve auto-detection on all Linux distros
- Favourite points (requires Geocaching.com API)
- GGZ export — Garmin's compressed GPX container format (lifts the 10,000-cache device limit)
- More languages (Finnish, Polish, …)
- Lock caches — protect against being overwritten by a later import
- Personal notes — round-trippable with GSAK
- Child waypoints — visible in the cache list, detail panel, and on the map
- Cache attributes tab in the detail panel
- Full-text search across descriptions, logs, and notes
- In-app Keyboard Shortcuts dialog — customizable bindings, reset to defaults
- Trip Planner — radius and multi-point route corridor with map preview
- Home points list — named locations with toolbar quick-switch
- Corrected coordinates — store and use solved puzzle coordinates
- Geocaching Tools menu — coordinate converter, projection, checksum, midpoint, distance & bearing
- Coordinate format preference (DMM / DMS / DD)
- French language — contributed by @theyoungstone
- German, Czech, Swedish and Dutch languages added
- Windows installer (.exe) — built automatically via GitHub Actions
- Linux AppImage — built automatically via GitHub Actions
- macOS installer (.dmg) — arm64 and x86_64, built automatically via GitHub Actions
- GitHub Actions CI/CD pipeline
Contributions are welcome! See CONTRIBUTING.md for details.
MIT License — see LICENSE for details.
- OpenStreetMap for map tiles
- Leaflet.js for the map library
- PySide6 / Qt for the GUI framework
- SQLAlchemy for the database layer
- OpenSAK Contributors
- Everyone who has tested the app and provided feedback!