---
url: https://mikrojs.dev/contributing.md
description: How to contribute to Mikro.js
---

# Contributing

Mikro.js is open source and contributions are welcome. Whether it's a bug fix, a new driver, a board definition, or improving the docs, we appreciate the help.

## Ways to contribute

* **Report bugs**: open an [issue](https://github.com/mikrojs/mikro/issues) with steps to reproduce
* **Fix bugs**: pick up an existing issue and submit a pull request
* **Write drivers**: create a [driver package](/develop/creating-drivers) for a sensor, display, or peripheral
* **Add board support**: define a [board package](/develop/creating-boards) for a development board
* **Improve docs**: fix typos, clarify guides, or add examples

## Getting started

See the [development guide](/develop/) for instructions on cloning the repo, building from source, and running tests. For the full technical contributing guide (prerequisites, build commands, testing, code style), see [`CONTRIBUTING.md`](https://github.com/mikrojs/mikro/blob/main/CONTRIBUTING.md).

## Pull requests

* Keep pull requests focused on a single change
* Include a clear description of what the change does and why
* Make sure `pnpm precommit` passes before submitting
* Add tests where it makes sense

## AI-assisted contributions

Mikro.js itself is built with substantial help from AI coding agents; see the [AI disclosure](/ai-disclosure). Contributions made with AI assistance are welcome, on the same terms as any other contribution. If you don't have time to review and test what the agent produced, open an issue that describes the problem instead. A good issue is often more useful than an unreviewed pull request.

## Code of conduct

We are committed to providing a friendly, inclusive, and welcoming experience for everyone. See our [code of conduct](https://github.com/mikrojs/mikro/blob/main/CODE_OF_CONDUCT.md) for details.
