Install
openclaw skills install @forrestisrunning/read-gpxParse and analyze GPX route files for trail running, cycling, hiking, and race planning. Use when the user provides or references a .gpx file and asks for route distance, elevation gain/loss, waypoint/CP extraction, segment stats, terrain difficulty, pacing tables, roadbooks, cutoff planning, or checkpoint arrival estimates.
openclaw skills install @forrestisrunning/read-gpxUse the bundled parser first when a local .gpx file is available:
python3 ~/.codex/skills/read-gpx/scripts/read_gpx.py path/to/route.gpx
For machine-readable output:
python3 ~/.codex/skills/read-gpx/scripts/read_gpx.py path/to/route.gpx --format json
The script uses only the Python standard library. It handles GPX 1.0/1.1 namespaces, track points, elevation, and waypoints.
rg --files -g '*.gpx' -g '*.GPX' when the user references a local route by name.scripts/read_gpx.py to extract route facts before making pacing or strategy claims.<wpt> entries as CP/checkpoint candidates. The script snaps waypoints to the nearest track point and reports the snapped track distance.When the user asks what a route is like, describe it in practical outdoor terms:
Keep descriptions grounded in parsed GPX facts. Clearly label any terrain or surface inference that is not directly present in the GPX.
Use the script's thresholded gain/loss instead of raw point-to-point elevation totals. Dense GPX tracks often include GPS noise that inflates climbing. The default threshold is 3 m; adjust with:
python3 ~/.codex/skills/read-gpx/scripts/read_gpx.py route.gpx --gain-threshold 5
If the GPX name or race materials contain official elevation totals, compare them with the script output and explain any small difference as smoothing/threshold methodology.
For trail race pacing:
When generating a roadbook, prefer a compact table with:
When giving advice, be explicit about confidence and assumptions: