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)