Tooling
Arqen includes a complete developer toolchain so you never have to think about which tools to install or run. Every command works from your project root with zero configuration.
Commands
| Command | What it does |
|---|---|
arqen lint | Check formatting (cargo fmt --check) and clippy warnings |
arqen format | Auto-fix formatting (cargo fmt) |
arqen test | Run all tests (cargo test --all-features) |
arqen build | Build the project (cargo build) |
arqen doc | Generate documentation (cargo doc --no-deps) |
arqen check | Validate project structure and configuration |
arqen doctor | Diagnose Rust, Docker, and environment setup |
Quick workflow
arqen new my-api
cd my-api
arqen dev # run in development mode
arqen lint # check code quality
arqen test # run tests
arqen build # build for productionRelease builds
Pass --release to test or build for optimized output:
arqen test --release
arqen build --releaseJSON output
Every command supports --json for CI and scripting:
arqen --json lint
arqen --json test
arqen --json buildJSON output goes to stdout. Errors are also emitted as JSON.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (bad arguments) |
| 3 | Configuration error |
| 4 | Dependency not found (cargo missing) |
| 5 | Runtime error (check or build failed) |
| 130 | Interrupted (Ctrl+C) |
Generated project tooling
When you run arqen new, the project ships with:
rustfmt.toml— arqen default formatting configclippy.toml— arqen default lint configarqen.toml— starter runtime configuration.env.example— environment variable templateAGENTS.md— portable project guidance and validation commands
These are used automatically by arqen lint and arqen format. Edit them to customize formatting and lint rules.
The generator can also add starter guidance under examples/ and optional Nice Code documentation and CI under NICE_CODE.md and .github/workflows/nice-code.yml. Nice Code remains independent of the application's Rust dependencies.
CI integration
Use the arqen commands directly in your CI pipeline:
- name: Lint
run: cargo run -p arqen --features cli --bin arqen -- lint
- name: Test
run: cargo run -p arqen --features cli --bin arqen -- test
- name: Build
run: cargo run -p arqen --features cli --bin arqen -- buildOr install the CLI first for faster runs:
- name: Install CLI
run: cargo install --path crates/arqen --features cli
- name: Lint
run: arqen lint
- name: Test
run: arqen testOptional Nice Code integration
Nice Code is an optional development and CI tool. Arqen does not install it, depend on it at runtime, or require Node.js for applications.
Working on Arqen
The repository wrapper fetches the pinned Nice Code v0.3.2 source into a temporary cache:
./scripts/check-nice-code.shSet NICE_CODE_DIR to use an existing checkout without fetching, set NICE_CODE_CACHE_DIR to choose the cache location, or set NICE_CODE_VERSION to test another tagged release explicitly. The wrapper runs the full audit and does not modify the Arqen project.
Using Nice Code in an Arqen application
Install or invoke the public npm launcher from the application repository:
npx --yes @sayanmohsin/nice-code@0.3.2 --changed --project .It requires Node.js 20 or newer. For CI, run the same command with --ci --format sarif and upload the resulting SARIF file with your preferred code-scanning integration. This remains entirely opt-in and is not an Arqen package dependency.