# Tools

The Matter SDK provides tools that allow you to generate and manage different
aspects of the Matter development.

## C++ tools

Source files for these tools are located at `src/tools`.

```{toctree}
:glob:
:maxdepth: 1

../src/tools/chip-cert/README
../src/tools/spake2p/README

```

## Python tools

Source files for these tools are located at `scripts/tools`.

### General tools

```{toctree}
:glob:
:maxdepth: 1

../scripts/tools/memory/README
../scripts/tools/spake2p/README
../src/tools/interop/idt/README

```

### NXP tools

```{toctree}
:glob:
:maxdepth: 1

../scripts/tools/nxp/factory_data_generator/README
../scripts/tools/nxp/ota/README

```

### Silabs tools

```{toctree}
:glob:
:maxdepth: 1

../scripts/tools/silabs/README

```

### Telink tools

```{toctree}
:glob:
:maxdepth: 1

../scripts/tools/telink/readme

```
