- Python 100%
| assets/screenshots | ||
| .gitignore | ||
| cache_browser.py | ||
| CONTRIBUTING.md | ||
| geocaching-browser.desktop | ||
| geocaching.png | ||
| gpx-editor.desktop | ||
| gpx_editor.py | ||
| gpx_parser.py | ||
| LICENSE | ||
| README.md | ||
| VERSION.md | ||
Pure Caches (no coc) 🗺️
A privacy-focused geocaching app for Librem 5 and PureOS users.
🏴☠️ Why This Exists
The Librem 5 is more than a phone—it's a statement. A declaration that privacy matters, that you own your device, and that freedom isn't negotiable.
But finding geocaching tools that align with those values can be challenging. Many apps are built for platforms that don't prioritize user freedom, or they require cloud accounts and constant connectivity.
Pure Caches offers a different path.
Built from the ground up for Librem 5 and PureOS, this app lets you:
- ✅ Browse your downloaded GPX cache files
- ✅ View cache details (name, coordinates, D/T rating, hints)
- ✅ Navigate to caches with your favorite maps app
- ✅ Keep all your data local—no cloud, no accounts required
- ✅ Respect the Four Software Freedoms—run, study, share, improve
This is geocaching, on your own terms. 🗺️
📦 Features
What It Does Now
- GPX Parsing: Reads Groundspeak-format GPX files (the kind you download from Geocaching.com with Premium membership)
- Cache Browser: Lists all your caches with key info (coordinates, difficulty, terrain, type, container size)
- Distance Calculation: Shows how far each cache is from your current location
- Desktop Integration: Appears in your PureOS application menu
- 100% Offline: No internet required after you download your GPX files
GPX Editor (Separate Tool)
- GUI Interface: Touch-friendly Tkinter interface perfect for Librem 5's small screen
- Create Waypoints: Build new GPX files from scratch (perfect for saving personal locations like churches, viewpoints, or trailheads)
- Edit Existing Files: Load and modify any GPX file (update descriptions, fix coordinates, add personal notes)
- Geocache or Personal: Supports full Groundspeak metadata for geocaches, or simple waypoints for any location
- Navigate Anywhere: Exported GPX files work with Gnome Maps, Pure Cache browser, or any GPS app
Run it with: ./gpx_editor.py (opens graphical interface)
What's Coming
- Map integration (using OSRM or other open mapping tools)
- Field note logging (local storage, exportable)
- Cache filtering (by type, difficulty, found/unfound)
- Compass navigation
- Trackable support
📸 Screenshots
Pure Cache in action — running native on PureOS:
Cache List

Your caches, sorted by distance from your location. Shows coordinates, D/T rating, cache type, and container size.
Cache Details

Full cache information including description, hints, and recent logs. This is "What Goes Down Will Come Up" near Pontiac, IL.
Map Integration

Tap navigate to open the cache coordinates in your favorite maps app (Gnome Maps shown).
🚀 Installation
Prerequisites
- Librem 5 running PureOS (Crimson+) (or any GNU+Linux system with Python 3.13.12+)
- GPX files from Geocaching.com (Premium membership required for pocket queries)
- Python 3 with
xml.etree.ElementTree(included in standard library)
Quick Install
-
Clone the repo:
git clone https://git.kescher.at/tmg1gnm2/pure-cache-no-coc cd pure-cache-no-coc -
Make it executable:
chmod +x cache_browser.py gpx_parser.py -
Run it:
./cache_browser.py
Desktop Integration
The included .desktop file will automatically integrate with PureOS if you install to the right location:
sudo cp geocaching-browser.desktop /usr/share/applications/
sudo desktop-file-install /usr/share/applications/geocaching-browser.desktop
Now it'll appear in your application menu as "Geocaching Browser".
📖 How to Use
1. Get Your GPX Files
- Log into Geocaching.com on your computer
- Create a Pocket Query (Premium feature) for your area
- Download the GPX files
- Save them to
~/Documents/GPX/(or setGPX_DIRenvironment variable)
2. Run the App
cd pure-cache-no-coc
./cache_browser.py
3. Browse Your Caches
- Use arrow keys or mouse to navigate
- Press
Enteron a cache to see details - Press
Nto navigate (opens your default maps app) - Press
Qto quit
4. Go Find Them!
- Follow the coordinates in your maps app
- Bring a pen (for the logbook!)
- Trade SWAG if you want
- Log your find when you get home
🛠️ Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
GPX_DIR |
~/Documents/GPX |
Path to your GPX files directory |
Example:
export GPX_DIR=/home/youruser/MyGeocaches/
./cache_browser.py
🤝 Contributing
This is a community project. If you're a Librem 5 user, a geocacher, or both—I want your help.
Ways to Contribute
- 🐛 Report bugs (open an issue on git.kescher.at)
- 💡 Suggest features (what would make your caching life better?)
- 🔧 Submit code (PRs welcome! See CONTRIBUTING.md)
- 📝 Improve docs (clearer instructions help everyone)
- 🌍 Translate (help Librem users worldwide)
Philosophy
This project follows the Four Software Freedoms:
- Freedom to run the program as you wish
- Freedom to study how it works and change it
- Freedom to redistribute copies
- Freedom to distribute modified versions
Any contribution must respect these freedoms. No proprietary code. No telemetry. No DRM.
See CONTRIBUTING.md for details.
📜 License
GNU General Public License v3.0 (GPL-3.0)
This means:
- ✅ You can use it, modify it, share it
- ✅ Any modified versions must also be GPL-3.0
- ✅ Source code must remain available
- ❌ No proprietary derivatives
- ❌ No tivoization (hardware that locks out modified software)
See LICENSE for the full text.
🙏 Acknowledgments
- Groundspeak for creating geocaching and building the community
- Purism for building the Librem 5 and championing digital freedom
- The Free Software Foundation for the GPL and the Four Freedoms
- Every geocacher who hides a cache and shares the adventure
- Groundspeak continues to maintain the Geocaching platform that makes this hobby possible worldwide
📬 Contact
- Upstream: libre-projects/pure-cache
- us @jeffcliff@shitposter.world
- Issues: Report bugs or request features
🗺️ Happy Caching!
"The best things in life are hidden, waiting to be found."
Whether you're hunting traditional caches in your local park, solving mystery caches across the state, or logging virtual caches on your travels—may your GPS be accurate and your finds be many.
Built with freedom in mind. 🐺⚔️☕
Pure Caches is not affiliated with Groundspeak Inc. Geocaching® is a registered trademark of Groundspeak Inc.