Drag a PX4 ULog or ArduPilot BIN in. Get the whole flight in six clicks.

Interactive plots, 2D flight-path map, time-synced scrubber, rules-based health checks, predictive-maintenance trends across your fleet history, A/B compare two flights, param diff vs PX4 defaults with per-param AI explain, regulator-grade incident report, natural-language plot query, multimodal vision-model sanity check — all from a single .ulg or .bin drop, running locally with the AI provider you control. Your logs never leave your machine except as a sanitised JSON summary sent to the LLM you chose. Free forever, BYO LLM, Mac.

Apple-signed & notarised App for Apple Silicon. Free download, no email gate, no account.

Drop a log. Click through six tabs.

Every flight you analyse gets six tabs of data, plus a header row of one-click actions (printable PDF report, regulator-grade incident report, A/B compare against any other loaded flight). The first file you analyse builds a persistent local archive on your machine — every subsequent flight gets compared against your fleet's historical baseline.

Overview

Stats & timeline

12-cell stats grid (max alt, max speed, distance, min battery, GPS loss events, dropouts), mode timeline with armed / disarmed transitions, full PX4 log message list filtered by severity.

Plots

Interactive charts

Ten stacked time-series plots — altitude, speed, battery V / I / %, GPS sats & HDOP, roll/pitch/yaw, plus EKF wind speed (with 8 m/s caution and 10 m/s abort threshold lines) and wind direction — with mode-change vertical lines, dropout-shaded regions, and a draggable time scrubber that moves the cursor across every plot in sync.

Map

2D flight path

Track polyline coloured by altitude (viridis gradient), takeoff and landing pins, mode-change markers along the path, AOI overlay if Maestro metadata is present. Same time scrubber drives a draggable position cursor.

Health

Rules + fleet trends

Eight rules-based checks (vibration, battery, GPS, reactive-RTL with log-trigger citation, errors, dropouts, mag interference, EKF wind vs the 8 / 10 m/s caution and abort thresholds). Plus a predictive-maintenance section that runs once you have 3+ flights of this airframe — surfaces degrading-over-time trends (battery capacity drift, vibration creep, GPS antenna health).

Params

Param diff + AI explain

Every PX4 parameter from the log, sorted, searchable. Toggle "Show only changed from PX4 defaults" to surface what's been tuned. Click Explain on any param to get a 2-3 sentence operator-grade explanation from your LLM provider.

AI Analysis

Forensics + chat + VLM

LLM-generated forensics summary with cited timestamps + parameter names. Follow-up chat over the same context. Visual sanity check button captures the rendered plot canvases and sends them to a multimodal model (Claude Vision) to spot anomalies a rules system would miss.

On the header row, every loaded flight also has a Report button (one-click printable PDF — stats, health checks, AI analysis, mode timeline, errors, auto-tags), an Incident Report button (LLM-generated formal report following EASA / CAA structure — root-cause analysis, evidence citations, recommendations addressed by role), and a Compare ▾ dropdown to A/B any two loaded flights with side-by-side stats and overlay plots. There's also a top-level Archive view across the whole modal — every flight you've ever analysed, searchable by tag (auto-applied per flight: battery-critical, gps-degraded, vibration-high, etc.), filenames, airframe key, or Maestro mission ID.

PX4 Flight Review & Foxglove are great. We added the AI & the fleet history.

The standard post-flight workflow for PX4 operators is the open-source PX4 Flight Review web tool, Foxglove for replay + custom dashboards, plus pyulog + PlotJuggler for anything custom. Brilliant tools. They get you the plots. What they don't do: sit next to you at 22:00 the night before a court hearing and explain in prose what actually happened on flight 47, or tell you that drone-3's pack capacity has degraded 15% over its last 30 flights and you should service it before the next shift.

Maestro Flight Review doesn't replace those tools — it sits next to them. Drop a PX4 ULog or ArduPilot BIN, get the structured summary plus the interactive plots, map, and scrubber other tools already deliver, then layer on what they can't: a local fleet history that turns every subsequent flight into a comparison against your own baseline. The model has the parameters, the mode timeline, every log message, the battery curve, GPS quality, dropouts, and your fleet's running mean ± stddev for every metric. It cites timestamps and parameter names because it has them. It flags anomalies vs your own baseline because we kept the history.

What competitors do — plus the features only fleet history makes possible.

PX4 Flight Review and Foxglove are excellent at single-flight visualisation. Neither remembers your fleet across flights. Maestro Flight Review is built around a small local archive — every flight you analyse gets persisted (parsed summary, auto-tags, airframe key) so subsequent flights can be compared against your own baseline. That's what unlocks predictive maintenance, anomaly detection, and the searchable archive — features a stand-alone log viewer can't do.

Your keys, your provider

Drop in your own Anthropic / Mistral / OpenAI / Google key. No middleman, no SaaS account, no per-flight metering. Maestro doesn't see your key — it's stored encrypted via macOS Keychain on your machine. Provider cascade: Anthropic → Mistral → OpenAI → Google. First success wins.

Local-first parsing & storage

The flight log is parsed inside the Maestro app — never uploaded anywhere. The fleet-history archive is a single JSON file in your user-data directory; no cloud sync, no telemetry. Only the sanitised structured summary (no raw waypoints, no operator GPS) is sent to the LLM you chose.

Interactive plots + map + scrubber

Ten uPlot charts (altitude, speed, battery V / I / %, GPS sats & HDOP, roll, pitch, yaw, EKF wind speed, wind direction) with mode-change vertical lines and dropout shading. A 2D Leaflet flight-path map colour-coded by altitude. One time scrubber drives the cursor across every plot and the map marker — same data, one timeline.

Predictive maintenance — fleet-history only

From your third flight of any airframe onward, Maestro runs linear-regression trends over time: battery capacity decay, vibration RMS creep, GPS antenna health, mode-change rate. Surfaces "Drone-3 pack capacity down 15% over 30 flights — service before next shift" with R² + sample count. No competitor does this — they don't have your history.

Anomaly detection vs your own baseline

Each new flight is compared against the per-airframe running mean ± standard deviation (Welford incremental). Any metric >2σ from baseline is flagged with the sigma deviation, direction, and prior baseline. Different from rule thresholds — this is "this airframe is suddenly different from how it usually flies."

Rules-based health checks

Eight offline (no-LLM) checks return PASS / WARN / FAIL with cited evidence and a concrete suggestion: vibration (RMS thresholds), battery margin, GPS lock + HDOP, reactive RTL (with log-line citation pointing at the exact triggering message), error / warning counts, telemetry dropouts, magnetometer interference, and EKF-estimated wind against the orchestrator's own 8 m/s caution / 10 m/s abort thresholds. Surfaces what you'd ask an experienced engineer to spot.

Chat with this flight + cross-sortie

After the forensics summary, keep asking. "Was the wind out of limits during the descent?" "Did COM_DL_LOSS_T fire?" Load multiple flights at once and ask shift-level questions — "Which drone had recurring battery issues?" "Compare sorties 5 and 8 — same drone, same AOI, what changed?"

A/B compare two flights

From any loaded flight, click Compare ▾ and pick another. Opens a side-by-side comparison with a diff table (every stat with Δ value + Δ %) and five overlay plots (altitude, battery, speed, GPS sats, wind speed). Save the comparison as PDF for tuning logbooks or pilot debriefs.

Params + AI explain

Searchable table of every PX4 parameter from the log, with PX4 stock defaults shown side-by-side. "Show only changed from defaults" filter highlights what was tuned. Per-param Explain button asks your LLM provider for a 2-3 sentence operator-grade summary — what the param does, what the current value implies, why an operator might set it that way.

Searchable archive + auto-tags

Every analysed flight is auto-tagged from an 18-tag vocabulary (battery-critical, gps-degraded, vibration-high, reactive-rtl, etc.). The Archive view lets you filter by tag, search by filename / airframe / mission ID, and one-click Open any historical flight back into the current session.

Regulator-grade incident report

One click in the file header generates an EASA / CAA-format incident report: incident summary, operator + airframe identification, chronological event timeline, evidence with cited timestamps and parameter values, root-cause analysis, recommendations addressed by role, and a data-provenance statement. Renders as markdown in a printable popup — Save as PDF for filing.

PDF / printable report

Every flight has a Report button that opens a printable, light-themed popup with the full forensics: flight metadata, stats grid, health checks (with severity colour-coding), fleet-history insights, AI analysis, mode timeline, errors / warnings, auto-tags. Cmd+P → Save as PDF for incident filing or pilot logbook.

Natural-language plot query

In the Plots tab, type "plot battery current vs altitude" or "show GPS satellites over time". Your LLM picks the right fields from a constrained vocabulary, and a custom uPlot renders inline — including correlation plots (X vs Y) not just time-series.

Vision-model sanity check

Click Run visual sanity check in the AI Analysis tab and Maestro captures the rendered plot canvases as PNG, sends them to Claude Vision alongside the numeric summary, and asks the model to spot anomalies a rules system would miss — unusual oscillations, asymmetric vibration signatures, step changes at mode transitions. Free-form markdown observations with likely-cause and next-step recommendations.

Free, forever

Ships free inside the Maestro Mac app. No usage cap, no metering, no account creation. You pay your LLM provider for tokens; that's it. Need multi-user, cross-machine, or team access controls? Email us.

Operator-grade summaries, not chatbot fluff.

Below is a real anonymised forensics summary from a drone-3 sortie that ended in a low-battery RTL — the third flight in that airframe's history. Notice the Health Checks cite the exact triggering log line, and the Fleet-History Insights surface the predictive trend that no stand-alone tool can produce.

Example output · 09_drone-3_battery-low-rtl.ulg

Health Checks   ·   4 PASS · 1 WARN · 1 FAIL

  • FAIL · Battery critical — pack health suspect. Min battery 19.7% (< 20%). Service this pack before next flight. Possible cell drift or capacity loss.
  • WARN · Reactive RTL triggered. AUTO_RTL at t+5m 00s — preceded by: "COM_LOW_BAT_ACT=2 (Return): triggering RTL". Plan to address the trigger cause; otherwise expect repeat behaviour.
  • PASS · Vibration nominal (peak accel RMS 0.96 m/s², below 1.0 threshold) · PASS · GPS solid throughout (18 sats, max HDOP 0.7m) · PASS · No errors / warnings logged · PASS · No telemetry dropouts

Fleet-History Insights   ·   3 flights this airframe

  • DEGRADING · Min battery %. From 60.80% → 19.70% across 3 flights. R²=0.82. The pack is losing usable capacity sortie-over-sortie.
  • DEGRADING · Vibration RMS (accel). From 0.51 → 0.96 m/s² across 3 flights. R²=1.00. Consistent with mechanical wear — possible prop, motor, or mount issue developing alongside the battery problem.

AI Forensics Analysis · Claude

Six-minute autonomous mission cut short by automatic low-battery RTL at t+5m 00s. The triggering condition was the configured COM_LOW_BAT_ACT=2 firing when remaining battery hit the BAT_LOW_THR threshold of 20%. Cross-referencing with this airframe's history: this is the second sortie in a row where this drone has shown battery margin issues (sortie 06 also flagged battery-low). Combined with the rising vibration RMS trend, the most likely explanation is a developing mechanical issue (motor bearing wear, prop imbalance) causing both higher current draw and increased mechanical vibration. Service this airframe before next shift.

Auto-Tags

battery-critical battery-low reactive-rtl maestro-orchestrated mission-flown warnings-logged

Need multi-user?

The free Mac app keeps your fleet history on a single machine. If your team needs a cross-machine archive, team access controls, or multi-year compliance retention, email us.

The questions we get asked.

Does my flight log get uploaded to a server?

No. The ULog (PX4) or BIN (ArduPilot) file is parsed locally inside the Maestro Mac app. Only the sanitised structured JSON summary (mode timeline, parameters, log messages, battery / GPS samples — no raw waypoint coordinates, no operator GPS) is sent to the LLM provider you've configured. The fleet-history archive is also local — a single JSON file in your user-data directory, never synced anywhere.

What LLMs work?

Anthropic Claude, Mistral (France-domiciled), OpenAI GPT-4o, Google Gemini. Configure one or more in Maestro Settings; provider cascade order is Anthropic → Mistral → OpenAI → Google, first available wins. The visual sanity check feature needs a vision-capable model — currently only Claude is wired (Gemini Vision is on the roadmap).

How big can the fleet-history archive get?

Soft cap of 5,000 flights. Each entry is the parsed summary (~5–50 KB) plus tags and metadata. A fleet's worth — say 500 flights — fits in under 50 MB JSON. Beyond the cap, oldest flights drop first. You can also delete individual flights from the Archive view, or wipe the entire history by deleting the JSON file. The file lives in your OS user-data dir (~/Library/Application Support/Maestro/flight-history.json on macOS).

When do predictive trends start showing up?

From your third flight of a given airframe onward, with R² ≥ 0.5 required for the trend to be flagged. Below three flights, the Health tab still runs the rules-based checks; you just don't get the regression trend section yet. Anomaly detection (>2σ vs your own baseline) needs at least 4 prior flights of the same airframe so the baseline mean + stddev is statistically meaningful.

How does it know "this airframe" across flights?

Maestro derives a stable 12-character airframe key from the log's calibration parameters (CAL_ACC0_ID, CAL_GYRO0_ID, CAL_MAG0_ID) and frame configuration (SYS_AUTOSTART). The key stays stable across firmware reflashes and changes if you swap the IMU or flight controller — which is the right behaviour. Works on any PX4 log; no Maestro metadata required.

Does it work with ArduPilot BIN logs / TLogs?

Yes — PX4 ULog (.ulg) and ArduPilot dataflash (.bin) are both supported as of May 2026; pure-JS parsers for each are bundled in the app, with no native dependencies. Drop either and the parser auto-detects by magic bytes (0x55 0x4c 0x6f 0x67 for ULog, 0xa3 0x95 for ArduPilot). MAVLink TLogs are still on the roadmap.

Is the incident report regulator-grade?

It follows the structure regulators expect (incident summary, operator/airframe identification, chronological events, evidence with citations, root-cause analysis, recommendations, data provenance) and is generated by an LLM you control. For routine pilot logbook entries and internal reviews it's directly usable. For formal submissions to EASA, your national CAA, or court-admissible filings, the unsigned LLM output is a starting draft — you'll still want a qualified person to review and sign. The printable report already carries a SHA-256 hash-chain for tamper-evidence; if you need stronger signed chain-of-custody across a team, email us.

Is the local archive SORA-compliant for log retention?

For single-operator SORA-authorised operations on a single machine, the local archive plus the original .ulg files you keep on disk satisfy the retention requirements. For multi-pilot teams that need centralised, access-controlled, multi-year retention with audit signatures, the free single-machine app is not the right tool — email us before you bet a regulatory submission on it.

Why is it free?

Because we'd rather earn your trust on the small thing and have the conversation about Maestro fleet orchestration later. Flight Review is genuinely useful on its own; if you end up running a fleet you'd want our orchestration on, you'll know where to find us. The free app has no usage cap, no per-flight metering, no account creation — you pay your LLM provider for tokens directly, and that's the entire cost.

Windows / Linux?

macOS-only today (Apple-signed, notarised App for Apple Silicon). Windows and Linux are on the roadmap; macOS first matches where most of our pilot customers do their post-flight work.

Drag, drop, ask.

Free Mac app, BYO LLM, local-first. Email us for the build.

Download for Mac · free