# Configuration reference

NSX reads four files. Three you write, one it writes for you.

- [`nsx.yml`](https://ambiqai.github.io/neuralspotx/reference/config/nsx-yml/) The app manifest. Names the app, the boards it supports, the toolchain and the modules it depends on directly.
- [`nsx-module.yaml`](https://ambiqai.github.io/neuralspotx/reference/config/nsx-module-yaml/) Module metadata. Declares what a module is, what it builds, what it needs and what it is compatible with.
- [`board.yaml`](https://ambiqai.github.io/neuralspotx/reference/config/board-yaml/) Board descriptor. Describes the SoC, the CPU ABI and the toolchains a board can be built with. A board may inherit from another and apply deltas.
- [`nsx.lock`](https://ambiqai.github.io/neuralspotx/reference/config/nsx-lock/) The resolution lock. Records, per board, the exact commit and content hash of every module an nsx sync would materialize. NSX writes it; you do not edit it by hand.

Each table is checked against the loader by a test, so a field that changes in the
code and not here fails the build rather than going quietly stale.
