The ground control station for teams building drones.

Fly a simulated drone in your browser, then connect your own. UXDuck keeps a history of every change.

Recorded in UXDuck: a simulated VTOL flies its mission over San Francisco while a parameter change is staged, written and confirmed.

From first simulation to the flight line

Every screenshot here is the real app, recorded during a simulated flight.

  1. 01

    Practise or reproduce behaviour in simulation

    Pick a plane, copter, VTOL, rover, boat or submarine and fly it in your browser. It's real ArduPilot, so it's the same MAVLink your vehicle uses.

    • No install and no account
    • Same panels as a real vehicle
    UXDuck's New simulation page, offering a multicopter, plane, jet, VTOL, rover, boat, submarine and blimp
  2. 02

    Connect the real vehicle

    Install UXDuck for USB, telemetry radio, UDP or TCP links. Inspect every MAVLink message in and out, and forward to Mission Planner or QGroundControl while the team still needs both.

    • Every message received and sent
    • Rate, source and field values
    • The PARAM_SET UXDuck sent
    UXDuck's MAVLink inspector filtered to PARAM_, showing a PARAM_VALUE received from Sim 1 at 0.2 Hz and the PARAM_SET for RTL_ALTITUDE that UXDuck sent
  3. 03

    Make changes with context

    Change parameters in a batch and note why. If the value changed on the vehicle since you looked, UXDuck won't overwrite it.

    • Staged until you press Write
    • Won't overwrite a newer value
    • Reason kept in the history
    • Mode change accepted by the vehicle
    UXDuck's Parameters tab with RTL_ALTITUDE staged from 20 to 60 m and the reason Clear the cranes on the pierThe vehicle's history: RTL_ALTITUDE 20 to 60 with its reason, and Mode AUTO accepted
  4. 04

    Test the whole mission

    Plan on the map, upload to a chosen vehicle and read the mission back to check what it holds. Watch camera video, script it from the CLI or let an AI agent run it over MCP.

    • Uploaded, then read back
    • Verified against the plan
    • Each vehicle's mission history
    A plan of six steps in UXDuck, uploaded to Sim 1 and marked On Sim 1, verified

Explore the product

An AI agent takes on the tedious work. You save your time for the critical decisions.

Connect Claude Code, Codex or Cursor to UXDuck over MCP. Reading telemetry needs no approval. Commands and parameter writes wait for an operator, in the app or at the terminal.

Use UXDuck from Claude or Codex

An agent stages a parameter change on a simulated vehicle and waits for approval: Claude Code · uxduck mcp
  1. You: Raise Sim 1's return altitude so it clears the cranes on the pier.
  2. uxduck_call_tool param_get {"vehicleId":"…","name":"RTL_ALTITUDE"}
  3. {"name":"RTL_ALTITUDE","value":20,…}
  4. uxduck_call_tool param_set {"vehicleId":"…","name":"RTL_ALTITUDE","value":60,"expectedValue":20,"reason":"Clear the cranes on the pier"}
  5. Waiting for an operator to approve…
  6. Operator: uxduck approvals
  7. ap3f9c1e07b2d4a6c8 claude-code wants to set RTL_ALTITUDE from 20 to 60 m on Sim 1 (52 s left)
  8. Operator: uxduck approvals allow ap3f9c1e07b2d4a6c8
  9. Allowed (once).
  10. {"status":"accepted","requested":60,"parameter":{"name":"RTL_ALTITUDE","value":60,…},"units":"m"}

Works with the stack you already use

ArduPilot on macOS, Windows, Linux, Raspberry Pi and the browser. Keep using Mission Planner or QGroundControl alongside it while you switch over.

12 releases
since 14 October 2026
5 platforms
macOS, Windows, Linux, Raspberry Pi, browser
6 vehicle types
Plane, copter, VTOL, rover, boat, submarine
Apache 2.0
UXDuck Core, open source
UXDuck, Mission Planner and QGroundControl
UXDuckMission PlannerQGroundControl
Try it in the browser, nothing to install
YesNoNo
Simulator in the browser
YesNoNo
Practice exercises for new pilots
YesNoNo
Use from Claude or Codex (MCP)
YesNoNo
Runs on
macOS, Windows, Linux, Raspberry Pi and the browserWindowsWindows, macOS, Linux, Android and iOS
Autopilots
ArduPilotArduPilotPX4 and ArduPilot
Mission planning
YesYesYes

What comes next

A plugin system that the AI agent can use. Build custom functionality with or without the help of AI.

Read about pluginsGet email updates

For teams

Every parameter change, command and approval is saved automatically, with who did it and why.

Safety model

Changes wait until you press Write, and agents wait for approval. You'll always see whether the vehicle accepted a command.

Security

One laptop, the whole crew

Switch operators on a shared laptop. Each person keeps their own units and layouts and signs in as themselves, and every action records who did it.

Shared computers

Your own ArduPilot fork

Add your fork's MAVLink messages and parameter descriptions, for one vehicle or every build of a commit, and UXDuck shows them beside the standard ones.

Parameters and messages

Watch links (preview)

Send a link and anyone can watch the flight live in their browser: the map, telemetry and camera. It's read only, needs no account and expires.

Watch links

Start with a simulation. Bring your hardware when you are ready.

Try it in your browser, no install or account needed. Download it when you're ready to connect a real vehicle.

Get updates

New releases and upcoming features, by email.

You can unsubscribe any time. No spam.

UXDuck Core: open source under Apache 2.0