AI Assistant - msupino/NavigationApp GitHub Wiki
🇮🇱 עברית
AI Assistant
Switched off on the live site. The shipped default is
featureAssistant: falseand the deployed configuration does not turn it back on, so there is no 💬 launcher at https://navaid.supino.org/ — nothing on this page is reachable until you enable it yourself (below). It is a working feature that is not on, not a plan.
A chat assistant that answers questions and plans routes in plain language, using your own LLM API key (BYOK). It runs entirely in the browser — NavAid stays a static site with no backend — so your key and conversation never touch a NavAid server.
Turning it on. Open the app with ?tune=1, find Feature: AI assistant button in the
tuning panel and switch it on; running your own copy, set featureAssistant: true
in the settings gist so it stays on. Tuning-panel changes are page-local, so a reload without
?tune=1 puts the launcher away again.
It is off by default because most flights never ask the map a question, and a chat button on a kneeboard is one more thing to hit by accident. With it on, the 💬 launcher sits in the bottom-right control column, above the zoom buttons. The panel can be dragged by its header and resized from its corner; the position and size are remembered.
Switching it off removes the launcher and the panel there and then — no reload — and takes its row out of the control column so nothing below it shifts.
Planning aid only — not an operational briefing. The assistant answers from the app's live data and never invents a NOTAM, weather value, or frequency; always verify against the official AIP, NOTAM office and a proper weather brief before flight.
Providers (bring your own key)
Pick a provider in the settings (⚙), paste your key, optionally set a model:
| Provider | Default model | Notes |
|---|---|---|
| Google Gemini | gemini-2.5-flash |
Free tier; works directly from the browser. Get a key |
| Anthropic (Claude) | claude-sonnet-5 |
Works directly from the browser. Get a key |
| OpenRouter | openai/gpt-4o-mini |
One key, many models; works directly from the browser. Get a key |
| DeepSeek | deepseek-chat |
May block direct browser calls (CORS) — if so, set an OpenAI-compatible Base URL (a proxy) in settings. Get a key |
Each provider's key and model are stored separately, so you can switch without
re-entering them. Keys live only in your browser's localStorage and are sent
only to the provider you chose.
What it can do
Answer (read-only):
- NOTAMs for an airfield or near a point (
get_notams) - Surface weather at a point (
get_weather, via Open-Meteo) - Airfield info + primary frequency, VOR radial/DME, resolve a code to coordinates
- Describe the current route with full per-leg detail — heading, distance, altitude, speed, time, fuel, VOR radial/DME and comm frequency
Plan / edit the route (applied immediately, one-tap Undo):
- Build a route between airfields. It follows real CVFR routing in this order: a curated route template → otherwise the published CVFR leg network (reporting points inserted) → only a direct segment if no route exists (and it says so). It will not draw a straight "direct" leg that isn't an actual route.
- Reverse the route, set a leg's altitude/speed.
Outbound (asks first):
- Save the current route to your saved-route library.
Safety model
Actions are tiered: read tools run freely, route edits apply immediately but are Undo-able, and anything that leaves the app (save) asks for confirmation.
Privacy
- Your API key is sent only to the provider you chose — no NavAid backend is involved, and there is no server-side logging of your chats.
- API keys and the provider Base URL stay on this device. Enabling Sync settings too syncs provider and model choices, but not credentials. The next successful settings sync also removes an API-key copy left in Drive by an older version.
- See LocalStorage Schema for the
navaid.ai.*keys.