Aves
A kestrel perched on a stack of crates labeled with package categories

Reproducible firmware,
hermetic by default.

Aves bootstraps a sandboxed embedded toolchain in a single command. Identical builds across machines, today and a year from now.

curl -fsSL https://sh.avesde.com | sh

Linux & macOS· Other ways to install· Read the source

Hermetic

Every build runs sandboxed inside nix-portable. No host compilers, no global SDKs.

Versioned

Bootloaders, vendor SoftDevices, and board files come from a git-backed registry. Pinned versions are immutable.

Board-aware

A declarative board.toml describes the SoC, memory map, peripherals, and bootloader region.

Reproducible

A pinned nixpkgs revision and immutable package versions: same source, same binary, anywhere.

A workspace, end to end.

$ cat aves_manifest.toml
# declare the board and the packages you want built
[nixpkgs]
channel = "nixos-25.05"

[project]
name  = "my-device"
board = "feather_nrf52840_express"

[packages.nrf52-adafruit-uf2-bootloader]
version = "0.10.0"

$ aves build
  fetch     nrf52-adafruit-uf2-bootloader@0.10.0
  toolchain gcc-arm-embedded, gnumake, python3, adafruit-nrfutil
  build     feather_nrf52840_express
build/nrf52-adafruit-uf2-bootloader/feather_nrf52840_express/bootloader.uf2