INAV CLI

VS Code support for INAV flight-controller CLI dumps (dump / diff output).
More than notepad, less than a full configurator — meant for reviewing
configs offline, sanity-checking changes before flashing, and diffing across
firmware versions.
What it does
- Syntax + validation on
.inav files and the INAV_*_cli_*.txt dumps
the INAV Configurator exports.
Red squiggles for unknown settings, out-of-range numerics, bad enums,
invalid booleans, typo'd commands.
- Hover docs on settings, commands, and individual command arguments.
Hover on the
1 in aux 0 1 2 1800 2100 and you get "mode_id → ANGLE".
- Autocomplete for setting names, enum values, commands, and
command-argument values (mode IDs, OSD element indices, feature names).
- Signature help while typing — the current parameter gets underlined
with its description.
- Preview panel (run INAV: Open Preview to the Side) rendering:
- OSD layout (click a pill to jump to its
osd_layout line)
- Aux mode bars per channel, with human-readable mode names
- Motor mixer top-down schematic from
mmix, CW/CCW color-coded
- Settings list with diff-from-defaults highlighting
- Validation diagnostics with click-to-jump
- Outline + code folding grouped by the
# section comments INAV emits.
- Multi-version schemas. Ships with INAV 8.0 / 9.0 / master bundled.
Version is auto-detected from the
# INAV/... header, # inav-cli: schema=9.0 directive, filename, or an inav-cli.defaultSchema setting.
Status-bar item shows the active version; click to override per-file.
Install
Grab the .vsix from the
releases page and:
code --install-extension inav-cli-<version>.vsix
Or from the Marketplace once published.
Build from source
npm install
npm run compile # produces out/
npm test # parser / schema / resolver / params tests
npm run package # builds a .vsix (needs `npm i -g @vscode/vsce`)
Press F5 in VS Code to launch an Extension Development Host with
examples/sample.inav already open.
Adding a new INAV version
Clone iNavFlight/inav somewhere (default ~/dev/inav) and:
git -C ~/dev/inav fetch --depth 1 origin tag 10.0.0
scripts/add-version.sh 10.0.0 10.0
That writes schemas/10.0/{settings.yaml, osdItems.json, commands.json, boxIds.json, features.json} — no code change required; the registry picks
up new directories at activation. See
CLAUDE.md for the authoring notes.
License
MIT.