Skip to content

Nx Cloud Self-Healing CI is an AI-powered system that automatically detects, analyzes, and proposes fixes for CI failures, offering several key advantages:

  • Improves Time to Green (TTG): Automatically proposes fixes when tasks fail, significantly reducing the time to get your PR merge-ready. No more babysitting PRs.
  • Keeps You in the Flow: Get notified about failed PRs and proposed fixes via GitHub PR comments or directly in your editor with Nx Console (VS Code, Cursor, or WebStorm). Review, approve, and keep working while AI handles the rest.
  • Leverages Deep Context: AI agents understand your workspace structure, project relationships, and build configurations through Nx's project graph and metadata.
  • Non-Invasive Integration: Works with your existing CI provider without overhauling your current setup.

To enable Self-Healing CI in your workspace, you'll need to connect to Nx Cloud and configure your CI pipeline.

If you haven't already connected to Nx Cloud, run the following command:

npx nx@latest connect

Next, check the Nx Cloud workspace settings in the Nx Cloud web application to ensure that "Self-Healing CI" is enabled (it should be enabled by default).

To enable Self-Healing CI, add the following lines to your CI configuration:

.github/workflows/ci.yml
name: CI
jobs:
main:
runs-on: ubuntu-latest
steps:
...
- name: Start CI Run
- run: npx nx start-ci-run --no-distribution
...
- run: npx nx affected -t lint test build
- run: npx nx fix-ci
if: always()

If you're already using Nx Agents, then you can omit the --no-distribution flag and use your existing Nx Agents configuration.

By default, Self-Healing CI proposes a fix for you to review and only applies it automatically to your PR after you confirm it. However, for some tasks, it makes sense to have them be auto-fixed without waiting for manual approval. Auto-fixes are only applied if the verification phase passes.

Below is an example of enabling auto-fixing for the Nx format command and lint tasks using the --auto-apply-fixes flag:

.github/workflows/ci.yml
name: CI
jobs:
main:
runs-on: ubuntu-latest
steps:
...
- name: Start CI Run
run: npx nx start-ci-run --auto-apply-fixes="*format*,*lint*" --no-distribution
...

Tasks are passed to the --auto-apply-fixes as <project>:<task-name>:<configuration>. Commands like nx format which you configure with nx-cloud record -- are passed as nx-cloud record -- <params>.

By using the --fix-tasks flag you can fine-tune which tasks should be considered by the Nx Cloud self-healing CI. Below is an example of running self-healing on all tasks except deploy and test tasks.

.github/workflows/ci.yml
name: CI
jobs:
main:
runs-on: ubuntu-latest
steps:
...
- name: Start CI Run
run: npx nx start-ci-run --fix-tasks="!*deploy,!*test" --no-distribution
...

Similarly, if you only want to self-heal linting tasks you'd use --fix-tasks="*lint*".

Tasks are passed to the --fix-tasks as <project>:<task-name>:<configuration>. Commands like nx format which you configure with nx-cloud record -- are passed as nx-cloud record -- <params>.

Here's what happens when you push a PR with Self-Healing CI enabled:

Self-Healing CI Workflow

When you push your PR and tasks fail, Nx Cloud automatically detects the failure and triggers the self-healing process.

Nx Cloud starts an AI agent that analyzes the failed tasks and creates an appropriate fix, leveraging:

  • Complete failure context, including the exact tasks that ran and their error logs
  • The Nx graph, which provides context about project structure, dependencies, configuration, and runnable tasks

Once the fix is available, you'll be notified immediately based on where you're currently working:

You will see the notification about an available fix from Nx Cloud directly in your GitHub PR comments:

Self-healing CI fix showing up in GitHub comments

While you're being notified, Nx Cloud automatically runs a verification phase in the background.

Verification phase run by Nx Cloud to make sure the proposed fix passes CI checks

This reruns the failed task with the proposed fix to ensure it actually solves the issue. You can skip this step if you're confident the fix is valid, but it's useful for verifying the correctness of the change.

You can review the fix and decide whether to apply or reject it. If you apply the fix, Nx Cloud automatically pushes a commit to your original PR.

Review the Git diff directly in the comment and click "Apply fix" or "Reject fix". For a more detailed view, click "View interactive diff" to open the Nx Cloud app's advanced diff viewer.

Self-healing CI fix showing up in GitHub comments

If you want to tweak a fix before committing it, you can apply it locally rather than having it pushed directly to your PR. To do this, use the corresponding buttons on the GitHub comment, Nx Console view, or Nx Cloud app to get the command to run locally:

Screenshot of the dialog in the Nx Cloud app showing the nx-cloud apply-locally command

If you accidentally applied a fix or it turns out to be incorrect, you can easily revert it by clicking the link in the GitHub PR comment, which opens the Nx Cloud webapp where you can revert the fix.

Nx Cloud Self-healing CI page showing the revert action

Alternatively, you can pull the PR and remove the Git commit manually.

Self-Healing CI represents the next evolution in CI automation, moving beyond just speeding up builds to actually fixing them automatically. Learn more about this feature in our blog post: Introducing Self-Healing CI for Nx and Nx Cloud.