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

# Development

> Set up the Jolter repository, run quality gates, test changes, and update docs.

This guide is for contributors working on the Jolter repository.

## Prerequisites

* Rust `1.85` or newer
* Cargo
* Git
* platform build tools for the selected target

Build the workspace:

```bash theme={null}
cargo build --workspace --all-targets --locked
```

Development binary:

```text theme={null}
Windows: target/debug/jolter.exe
Unix:   target/debug/jolter
```

## Quality gates

Format:

```bash theme={null}
cargo fmt --all -- --check
```

Lint:

```bash theme={null}
cargo clippy --workspace --all-targets --locked -- -D warnings
```

Test:

```bash theme={null}
cargo test --workspace --all-targets --locked
```

Coverage:

```bash theme={null}
cargo llvm-cov --workspace --all-targets --locked --fail-under-lines 80
```

Audit:

```bash theme={null}
cargo audit
```

## Isolated manual testing

Do not test against your real home unless you intend to.

```bash theme={null}
export JOLTER_HOME="$(mktemp -d)"
cargo run -p jolter-cli --bin jolter -- use node@24
```

PowerShell:

```powershell theme={null}
$env:JOLTER_HOME = Join-Path $env:TEMP "jolter-dev"
cargo run -p jolter-cli --bin jolter -- use node@24
```

## Change expectations

Behavioral changes should update:

1. implementation and focused tests;
2. CLI help text when the command surface changes;
3. user docs in `docs.jolter.dev`;
4. roadmap or changelog entries when release status changes.

Preserve legacy input compatibility unless an intentional migration is designed and documented.

## Security-sensitive areas

Changes to URL validation, redirects, checksums, archive extraction, symlink handling, permissions, locking, temporary paths, plugin verification, or atomic publication require adversarial tests.

Read the security model before changing installer, plugin, or storage behavior.

## Documentation development

From `docs.jolter.dev`:

```bash theme={null}
bun install
bun run dev
```

Keep docs examples aligned with:

```bash theme={null}
cargo run -p jolter-cli --bin jolter -- --help
```


## Related topics

- [Build a plugin](/plugins/build-a-plugin.md)
- [Plugins overview](/plugins/overview.md)
- [CI automation](/automation/ci.md)
- [Selectors](/reference/selectors.md)
