trail-nav-telegram
// Offline-capable hiking route guidance via Telegram location messages (OpenClaw). Use when building/operating an LLM agent workflow that: (1) imports a GPX/KML route, (2) answers 'am I off-route / which way should I go' with low-token fixed outputs, (3) scrapes/publicly discovers route links from 2bu
$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nametrail-nav-telegram
descriptionOffline-capable hiking route guidance via Telegram location messages (OpenClaw). Use when building/operating an LLM agent workflow that: (1) imports a GPX/KML route, (2) answers 'am I off-route / which way should I go' with low-token fixed outputs, (3) scrapes/publicly discovers route links from 2bulu track_search, and (4) prepares trip risk checklists + gear lists for an overnight hike.
Trail Nav via Telegram (low-token)
Goals
- Use Telegram (iOS) as the UI: user sends location + short commands.
- Keep token usage minimal: do all geometry calculations deterministically, use LLM only for optional wording.
- Respect access controls: do not bypass logins/captchas on external sites.
Quick workflow
- Import route (GPX/KML) → build a compact RoutePack (simplified polyline + bbox + endpoints).
- Bind route to the chat (
/use <routeId>). - Guide: user sends location (or
/g+ location) → reply with 2-line output (machine line + Chinese template).
Token-saving rules (hard)
- Never send full KML/GPX text into the LLM context.
- Parse route once; store
routeId+ simplified points. - Output is fixed schema (see references/guide-protocol.md).
- Cache per-chat state:
activeRouteId,lastIdx.
External discovery (2bulu)
Two supported modes:
- Public discovery (no login)
- Only scrape public list/search pages (e.g.
/track/track_search.htm,/track/search-<keyword>.htm). - Store: title + url + scraped_at.
- Manual-login assist (optional)
- If the user manually logs in (WeChat/QQ/etc.) in a persistent browser profile, automation may proceed within that same profile.
- Login/captcha steps must be completed by the user. Do not bypass access controls.
Preferred alternative (often simplest): ask the user to export/send the GPX/KML file via Telegram; then operate purely on the user-provided route file.
Safety reminders
- Provide explicit no-signal / SOS guidance. See references/safety-checklist.md.
- Encourage “hard cutoffs” for overnight hikes (time, wind/fog, hydration).
Bundled resources
- Scripts:
scripts/scrape_2bulu_tracks.jslist-page scraper → JSON/CSV + screenshotscripts/parse_2bulu_kml.jsparse KML → stats + geojson + routepackscripts/render_route_map.jsrender route HTML+PNG map for sharingscripts/render_route_map_annotated.jsrender annotated map (GeoJSON + alerts) to HTML+PNGscripts/guide_route.jsdeterministic off-route guidance from GeoJSON + current location (outputs the 2-4 line guide protocol)scripts/weather_alert.jsdeterministic weather change alert (Open-Meteo) for day_hike/summit_camp/trail_run modesscripts/outsideclaw_setup.shone-command install/update outsideclaw repo into ~/.outsideclaw/app/outsideclawscripts/generate_openclaw_snippet.jsprints an OpenClaw config snippet pointing to the installed outsideclaw skillscripts/patch_openclaw_config.jspatches an OpenClaw config JSON to include the installed skill path (creates .bak)scripts/openclaw_oneclick_setup.shone-click: install outsideclaw + patch config (+ optional gateway restart)
- References:
references/2bulu-notes.mdreferences/guide-protocol.mdreferences/safety-checklist.mdreferences/gear-list-overnight.mdreferences/qiniangshan_alerts.jsonrisk-based key-node alerts (used for map annotations + alert triggering)references/route-alerts.mdalerts schema + how to apply to any routereferences/share-bundles.mdshare route bundles between outsideclaw agentsreferences/outsideclaw-integration.mdinstall outsideclaw repo + generate OpenClaw config snippetreferences/openclaw-oneclick.mdone-click OpenClaw integration (install + patch + optional restart)