# CLI Commands devx provides a CLI with three command groups: `ci`, `tools`, and `molecule`. ## CI Commands ### `devx ci auto-merge` Auto-merge a PR when all CI checks pass. Validates PR title, checks Vikunja task, squash-merges. ### `devx ci check-translations` Check translation files for gaps, dead keys, and missing languages. ### `devx ci classify-changes` Classify git changes as user-facing or workflow-only. Used to skip releases for infrastructure-only changes. ### `devx ci detect-release-commit` Detect whether the latest git commit is a release commit (`release: vX.Y.Z [skip ci]`). ### `devx ci discover-runners` Discover available Gitea Actions runners for dynamic job distribution. ### `devx ci distribute-files` Distribute files across parallel runners (round-robin). Used for splitting test suites or workloads across CI runners. ### `devx ci doc-coverage` Check documentation coverage for CLI commands and major modules. ### `devx ci integration-guard` Run pytest with cross-runner failure detection and JUnit XML output. Monitors other runners for failures and aborts early if a critical failure is detected. ### `devx ci merge-junit` Merge multiple JUnit XML reports from parallel runners into a single consolidated report. ### `devx ci notify-failure` Create a Gitea issue when a CI workflow fails. ### `devx ci post-merge` Update Vikunja task after a merge to master. ### `devx ci pr-review` Run automated PR review: check architecture compliance, best practices, and quality. ### `devx ci publish` Build package, publish to Gitea PyPI registry, and create Gitea release. ### `devx ci push-badges` Generate badge SVG files and push them to the `badges` branch. ### `devx ci release` Automated release: calculate next version, update files, tag, and push. ### `devx ci sync-wiki` Sync documentation from `docs/` to the Gitea wiki. ### `devx ci validate-commit-msg` Validate commit messages for conventional commit format. ## Tools Commands ### `devx tools check-test-speed` Run unit tests and enforce execution-time budgets: - **Total suite time** must not exceed `--max-seconds` (default: 10s). - **Per-test time** — no individual test may exceed `--max-single-seconds` (default: 0.5s, 0 to disable). ```bash python3 -m devx.tools.check_test_speed --max-seconds 10 --max-single-seconds 0.5 ``` ### `devx tools configure-repo` Configure repository: branch protection + labels via Gitea API. ### `devx tools generate-badges` Generate self-contained SVG badge files from project metrics. ### `devx tools generate-cliff-config` Generate a `cliff.toml` configuration file with the correct task ID prefix. Eliminates the need to manually duplicate and maintain cliff.toml across repos that use devx. ```bash python -m devx.tools.generate_cliff_config --prefix GRM python -m devx.tools.generate_cliff_config --prefix GRM --force # overwrite existing ``` ### `devx tools install-checkmake` Install checkmake (Makefile linter) if not already present. ### `devx tools install-tools` Install CI/CD development tools: actionlint, git-cliff, act_runner, tea. ### `devx tools setup` Project setup: install Python deps and pre-commit hooks. ## Molecule Commands ### `devx molecule distribute` Distribute molecule test pairs across parallel runners. ### `devx molecule discover-runners` Discover available Gitea Actions runners for molecule tests. ### `devx molecule guard` Run molecule tests sequentially with CI failure polling. ### `devx molecule all` Run all molecule scenarios on all supported OS platforms.