# Modules

An NSX app is a thin project plus the modules it depends on. The registry pins each module to
a project and a revision, and every module ships an `nsx-module.yaml` manifest declaring its
type, what it provides, what it depends on, and which boards, SoCs and toolchains it is
compatible with. These pages are generated from exactly that data, so they report what
`nsx module list` and `nsx module describe` report.

The registry pins **50 modules** across **7 types**, and NSX ships
**17 board descriptors** covering **11 SoCs**.

:::note[How compatibility is declared]
The boards, SoCs and toolchains listed here are the ones the module manifest declares.
That is the module author's statement of intent, not evidence from hardware. Confirm on your
own target before you depend on it.
:::

## Start here

- [Catalog](https://ambiqai.github.io/neuralspotx/modules/catalog/): Every module in one filterable table: type, SoC, board, toolchain, capability and free text.
- [Board matrix](https://ambiqai.github.io/neuralspotx/modules/boards/): Every board descriptor NSX ships, with its SoC, tier, SDK provider, CPU and toolchains.
- [nsx module](https://ambiqai.github.io/neuralspotx/reference/cli/module/): The commands that read this same data on your machine.

## Module types

Every module declares one type. The type is what decides where a module sits in an app: a
board or SoC module supplies a target, an SDK provider supplies the vendor SDK, and the rest
are the libraries an app actually calls.

- [SDK providers](https://ambiqai.github.io/neuralspotx/modules/catalog/): 1 module: nsx-ambiqsuite.
- [SoC support](https://ambiqai.github.io/neuralspotx/modules/catalog/): 1 module: nsx-soc-hal.
- [Board support](https://ambiqai.github.io/neuralspotx/modules/catalog/): 17 modules: nsx-board-apollo2-evb, nsx-board-apollo3-evb, nsx-board-apollo3-evb-cygnus, nsx-board-apollo330mp-evb and more.
- [Libraries and services](https://ambiqai.github.io/neuralspotx/modules/catalog/): 9 modules: helia-dsp, nsx-core, nsx-ethos-u-driver, nsx-nanopb and more.
- [Algorithms](https://ambiqai.github.io/neuralspotx/modules/catalog/): 2 modules: nsx-cmsis-nn, nsx-helia-rt.
- [Tooling](https://ambiqai.github.io/neuralspotx/modules/catalog/): 2 modules: helia-rt-source, nsx-tooling.
- [Backend specific](https://ambiqai.github.io/neuralspotx/modules/catalog/): 18 modules: arm-cmsis-nn, nsx-ambiq-bsp, nsx-ambiq-hal, nsx-ambiq-usb and more.

## Adding a module

Every module page carries the command that adds it to an app, and `nsx` resolves the
dependency closure from the same manifests:

```bash
nsx module add nsx-audio
```

The snapshot the pages are built from is published at [`/neuralspotx/modules/catalog.json`](https://ambiqai.github.io/neuralspotx/modules/catalog.json).
