Skip to main content
aspect buildifier formats Starlark files — BUILD, BUILD.bazel, MODULE.bazel, .bzl, .axl, WORKSPACE, and more — using the buildifier binary from buildifier_prebuilt. It is currently registered as an alias of aspect format via format.alias() in .aspect/config.axl. This makes it a first-class CLI command without any BUILD target or rules_lint dependency — just a bazel_dep on buildifier_prebuilt and a few lines of AXL. Under the hood, aspect buildifier runs through the same aspect format infrastructure: the same change-detection logic, the same git snapshot technique, the same --on-change behavior, and the same artifact upload. The only difference is the formatter binary and the file pattern filter.
The alias setup below is the supported configuration today. A future release of the Aspect CLI may ship aspect buildifier as a built-in task that requires no format.alias() block — at which point the alias becomes optional. For now, follow the setup below.

Setup

MODULE.bazel:
.aspect/config.axl:
This registers aspect buildifier as a real CLI command. Run it locally:
--scope=all covers a narrower file set than --scope=changed. In --scope=all the format task hands off discovery to buildifier’s -r . tree walk, which has a hard-coded list of recognized file types: BUILD, BUILD.bazel, MODULE.bazel, WORKSPACE, WORKSPACE.bazel, *.bzl, *.star. Files matching the alias’s include_patterns but not on buildifier’s list — notably *.axl, *.MODULE.bazel, Tiltfile, BUCK — are silently skipped. include_patterns filters the changed-file list in --scope=changed and the post-format diff in both modes, but it does not extend buildifier’s tree walk.In --scope=changed (the default) the task passes the changed file list to buildifier positionally, so every extension in include_patterns is formatted. The same applies when you pass files explicitly (aspect buildifier path/to/file.axl).For a CI job that needs full coverage of an extension buildifier doesn’t auto-discover, prefer --scope=changed against a broader base ref, or invoke buildifier on the file set yourself.

Configuration

All aspect format configuration applies: --scope, --on-change, --ignore-pattern, --upload-format-diff. The format.alias() defaults bake in the formatter target and file patterns so you don’t repeat them at invocation time. To add or remove file patterns from the defaults:
.aspect/config.axl

CI examples

The --task:name matches the alias name you registered: