mavio
A modern, async, Python MAVLink package
mavio is a MAVLink client for talking to autopilots — ArduPilot, PX4 or anything
else that speaks the protocol. It is two things at once: a diagnostics CLI for
bringing up hardware and inspecting a link, and an embeddable async library for
companion-compute and ground-station applications.
Quick start
No install needed — uvx builds an ephemeral environment:
uvx mavio /dev/ttyACM0 # interactive console
uvx "mavio[all]" /dev/ttyACM0 # with extras
To keep the CLI on PATH, and the optional extras — quote them, since most shells treat bare brackets as a glob:
uv tool install mavio # or: pipx install mavio
uv tool install "mavio[params]" # offline ArduPilot param metadata (~2.6 MB)
uv tool install "mavio[foxglove]" # the convert and bridge verbs (Python 3.10+)
uv tool install "mavio[all]" # both
The extras are genuinely optional. Without params, param reads still work — they
just come back without descriptions and value labels.
The CLI
Seven verbs over one link. mavio <url> with no verb opens the console.
mavio console <url> # interactive REPL (the default)
mavio stream <url> # decoded frames to stdout, then exit
mavio probe <url> # what is this board?
mavio ftp <url> ls|get|put # read/write the vehicle's filesystem
mavio convert <capture> [out] # capture -> MCAP for Foxglove
mavio bridge <url> # live link -> Foxglove websocket
mavio flash info|upload <port> # identify a board, or write firmware to it
The library
uv add mavio # or: pip install mavio
MavNode encapsulates io, serialization, state, filtering, rates, recording, and command/ack handling. Integrate or extend this class for a companion-compute and ground control station application.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mavio-0.9.1.tar.gz.
File metadata
- Download URL: mavio-0.9.1.tar.gz
- Upload date:
- Size: 220.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
502c6d0b3f16d4c3d82977407dea7018bce4f1a73cda025fe109b583d2fcbead
|
|
| MD5 |
bc6bade1f775b0a77e1c48c07c39d347
|
|
| BLAKE2b-256 |
c6041fa97840183a6fa87ead23e0636ccb5d221e858458681a455bdf9bb2e25d
|
Provenance
The following attestation bundles were made for mavio-0.9.1.tar.gz:
Publisher:
publish.yml on jaggedmountain/mavio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mavio-0.9.1.tar.gz -
Subject digest:
502c6d0b3f16d4c3d82977407dea7018bce4f1a73cda025fe109b583d2fcbead - Sigstore transparency entry: 2312850746
- Sigstore integration time:
-
Permalink:
jaggedmountain/mavio@07eafbc0fce5754841ec7506a850cf7258feeda9 -
Branch / Tag:
refs/tags/0.9.1 - Owner: https://github.com/jaggedmountain
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@07eafbc0fce5754841ec7506a850cf7258feeda9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mavio-0.9.1-py3-none-any.whl.
File metadata
- Download URL: mavio-0.9.1-py3-none-any.whl
- Upload date:
- Size: 240.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b1aafd857a0097ad124814cf097df5f48491d48b6c264971b6b0a6b0326d9f5
|
|
| MD5 |
703d10e9f7661db957749c7811cea742
|
|
| BLAKE2b-256 |
1788a7a3f9707bf9a571a274be38aa8e6b60cd5b8f6f1e84bdf5ea6d01c5c16e
|
Provenance
The following attestation bundles were made for mavio-0.9.1-py3-none-any.whl:
Publisher:
publish.yml on jaggedmountain/mavio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mavio-0.9.1-py3-none-any.whl -
Subject digest:
9b1aafd857a0097ad124814cf097df5f48491d48b6c264971b6b0a6b0326d9f5 - Sigstore transparency entry: 2312850779
- Sigstore integration time:
-
Permalink:
jaggedmountain/mavio@07eafbc0fce5754841ec7506a850cf7258feeda9 -
Branch / Tag:
refs/tags/0.9.1 - Owner: https://github.com/jaggedmountain
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@07eafbc0fce5754841ec7506a850cf7258feeda9 -
Trigger Event:
release
-
Statement type: