Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.aspect.build/llms.txt

Use this file to discover all available pages before exploring further.

Aspect builds tools and infrastructure that make Bazel fast and productive — for individuals, teams, and enterprises. The platform has three main parts that work independently or together.

Aspect Workflows

Bazel CI is notoriously hard to get right. A cold build re-runs every action from scratch — a warm developer machine takes minutes, but CI takes 30. Generic cloud VMs burn money on idle resources and still miss the incremental builds that make Bazel worthwhile. Aspect Workflows provides purpose-built Bazel CI runners: NVMe-backed output bases, pre-warmed caches, a scalable remote cache, and optional Remote Build Execution (RBE). Aspect operates the infrastructure — provisioning, monitoring, upgrades, and 24/7 support — and you choose where it runs. Deploy in your own AWS or GCP account (your source code never leaves your environment), or let Aspect host it as a fully isolated single-tenant service on Aspect Cloud. Teams typically see cached builds under 1 minute, CI 2–3× faster, and 40–80% lower cloud compute costs. GitHub Actions, Buildkite, GitLab CI, and CircleCI are all supported. Get started with Workflows →

Aspect CLI

bazel is a build system, not a developer workflow tool. Formatting, linting, BUILD file generation, and delivery end up as bespoke shell scripts and CI YAML that each team writes, breaks, and rewrites. There’s no shared abstraction, no caching, and no consistency between local and CI runs. The Aspect CLI (aspect) is a free, open-source task runner that extends Bazel with first-class developer workflows through the Aspect Extension Language (AXL). Built-in tasks — aspect build, aspect test, aspect format, aspect lint, aspect gazelle, aspect delivery, and more — work out of the box and are customized in .aspect/config.axl. Custom tasks are defined in .axl files inside .aspect/ and auto-discovered. All tasks are invoked with the same command locally and in CI, on any CI system. Tasks handle change detection, caching, artifact upload, and CI platform integration automatically. The result: a unified, extensible, fully programmatic Starlark configuration that drives every developer workflow — locally and on every CI provider — written in the same language you already use for your Bazel rules. Per-directory config.axl files layer on top of the repo-root config for team- or area-specific overrides. Try the CLI in 10 minutes →

Open-Source Bazel Rules

Bazel requires language-specific rulesets, and the quality varies widely. Aspect maintains a broad portfolio — JavaScript, TypeScript, Python, Go, Ruby, Shell, plus utilities for linting, formatting, container packaging, and more — used by thousands of teams, actively maintained with Bazel Central Registry releases, and contributed to the bazel-contrib organization. See all open-source projects →

How they fit together

The three parts are independent — you can use any one without the others — but they compose:
  • Workflows + CLI: Aspect Workflows CI runners run aspect <task> commands. The CLI detects the runner environment and automatically applies remote cache and RBE flags. No manual flag management.
  • CLI + rules: aspect lint drives rules_lint linters via Bazel’s action cache. aspect format formats files including Starlark via buildifier_prebuilt. aspect gazelle runs Gazelle to keep BUILD files in sync.
  • All three: A fully tuned Bazel monorepo — hermetic builds, fast CI, enforced formatting and lint, automatic BUILD file generation, and selective delivery to production.

Live examples

The aspect-build/bazel-examples repo runs aspect <task> pipelines on every commit across all four supported CI providers, on top of Aspect Workflows CI runners. Click through to inspect a current build, plus per-task Buildkite annotations, GitHub Status Checks, and a sample PR task summary comment: Running tasks in CI → Live examples.