> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getpioneer.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Contributing

> How to build Pioneer locally, run tests, and submit changes.

## Prerequisites

* **Rust** (2024 edition). Install it with [rustup](https://rustup.rs).
* **SQLite** development headers (Linux: `libsqlite3-dev`)

## Building

```bash theme={null}
git clone https://github.com/pioneer/pioneer
cd pioneer
cargo build --workspace
```

## Running the gateway

```bash theme={null}
cargo run -p pioneer-gateway
```

## Running the desktop app

```bash theme={null}
cargo run -p pioneer-desktop --bin pioneer-app
```

## Dev mode CLI

```bash theme={null}
cargo run -p pioneer-cli --features dev --bin pioneer-dev -- status
```

## Regenerating protocol schemas

After changing types in `crates/protocol`:

```bash theme={null}
./scripts/protocol/export.sh
```

Commit the updated schemas alongside the Rust changes.

## Code style

```bash theme={null}
cargo fmt --all          # format
cargo clippy --workspace # lint
cargo test --workspace   # test
```

CI runs all three. Format and clippy violations will block merge.

## Pull requests

* Keep PRs focused on a single concern
* Update or add tests for changed behavior
* If you change the protocol, regenerate schemas and include them in the PR
