---
title: Contribute
sidebar_label: Contribute
---

# Contribute

MNE-CPP is an open-source project and welcomes contributions of all kinds — code, documentation, bug reports, and feature requests. Whether you are fixing a typo or adding a new acquisition plugin, the workflow is the same: fork, branch, implement, test, and open a pull request.

All code contributions are reviewed by maintainers and validated by the [CI pipeline](ci.mdx) across Windows, Linux, and macOS before merging.

## Guides

- **[Contribution Guide](contr-guide.mdx)** — The complete workflow from fork to merged pull request, including branching, testing on CI, and code review.
- **[Coding Conventions](contr-style.mdx)** — Naming rules, documentation style (Doxygen), commit message prefixes, and class templates.
- **[Git Workflow](contr-git.mdx)** — Day-to-day Git commands for branching, rebasing, and pushing to your fork.
- **[Documentation](contr-docuimprovements.mdx)** — How to edit or add pages to this Docusaurus website.
- **[MNE Tracer](contr-mnetracer.mdx)** — A built-in profiling tool for measuring function execution times.

## Quick Start

```bash
# 1. Fork on GitHub, then clone
git clone https://github.com/<you>/mne-cpp.git && cd mne-cpp
git remote add upstream https://github.com/mne-tools/mne-cpp.git

# 2. Create a feature branch
git checkout -b my-feature upstream/main

# 3. Build, make changes, run tests
cmake -B build -S . -DBUILD_TESTS=ON && cmake --build build --parallel
cd build && ctest --output-on-failure

# 4. Push and open a pull request
git push origin my-feature
```
