Codeflash stores its configuration in `pyproject.toml` under the `[tool.codeflash]` section.
## Full Reference
```toml
[tool.codeflash]
# Required
module-root = "my_module"
tests-root = "tests"
# Optional
formatter-cmds = ["black $file"]
benchmarks-root = "tests/benchmarks"
ignore-paths = ["my_module/build/"]
pytest-cmd = "pytest"
disable-imports-sorting = false
disable-telemetry = false
git-remote = "origin"
override-fixtures = false
```
All file paths are relative to the directory of the `pyproject.toml` file.
## Required Options
- `module-root`: The Python module to optimize. Only code under this directory will be optimized. It should have an `__init__.py` file to make the module importable.
- `tests-root`: The directory where your tests are located. Codeflash discovers existing tests and generates new ones here.
## Optional Options
- `benchmarks-root`: Directory for benchmarks. Required when running with `--benchmark`.
- `ignore-paths`: Paths within `module-root` to skip. Useful for build directories or generated code.
- `pytest-cmd`: Command to run your tests. Defaults to `pytest`. You can add extra arguments here.
- `formatter-cmds`: Formatter/linter commands. `$file` refers to the file being optimized. Disable with `["disabled"]`.