# Contributing to darktable The darktable project welcomes contributions: * [Code](https://www.darktable.org/development/) * [Documentation](https://www.darktable.org/resources/) * Testing (and any backtraces if you happen to crash darktable) * Translations * [Camera profiles](https://www.darktable.org/resources/camera-support/). * Tutorials, screencasts, etc. See the [darktable development page](https://www.darktable.org/development/) for more information. ## Code Before you spend a lot of time working on a new feature, it's always best to discuss your proposed changes with us first. The best place to do that is in our dev support [matrix channel](https://matrix.to/#/#darktable-dev:matrix.org), or just create a Github Issue (Make sure to check back to answer follow up questions). This will dramatically improve your chances of having your code merged, especially if we think you'll hang around to maintain it. For more places to discuss darktable, [see here for more information](https://www.darktable.org/contact/). ### Coding style We like our code to be properly formatted, and we have a well-defined coding style that is enforced at PR review time. See the [Coding Style](https://github.com/darktable-org/darktable/wiki/Developer's-guide#coding-style) section in the [Developer's Guide](https://github.com/darktable-org/darktable/wiki/Developer's-guide) on our GitHub wiki. ### AI coding agents If you work with an AI coding agent, [AGENTS.md](AGENTS.md) in the repository root carries the project's conventions for it: how to build and test, the coding style, and what we expect of commits and pull requests. Most agents read it without being asked. Your own instructions go in `AGENTS.local.md` beside it. That file is untracked, and amends `AGENTS.md` rather than replacing it.