Skip to main content
Nx core functionality focuses on task running and understanding your project and task graph. Nx plugins build on that foundation to enforce best practices, integrate tooling, and let developers get up and running quickly. As your repository grows, you’ll find more reasons to create your own extensions:
  • Standardize workflows — local generators automate repetitive scaffolding so every team member follows the same patterns.
  • Eliminate duplicate config — local executors wrap tool invocations once and share them across every project.
  • Scale across repos — publishable plugins let you share generators, executors, and inferred task logic with multiple monorepos or with the wider community.

Three ways to extend Nx

Local generators

Automate code scaffolding, enforce project structure, and standardize workflows within a single workspace.

Local executors

Wrap build, test, and deployment scripts in a consistent interface with schema validation and caching support.

Create a plugin

Package generators and executors into a publishable plugin that integrates a tool or framework and can be shared across repos.

When to use each approach

The @nx/devkit API

All plugin development uses the @nx/devkit package, which provides the building blocks for generators and executors.

Create your first plugin

1

Add the plugin package

2

Scaffold a plugin in your workspace

Or create a brand-new workspace with a plugin already set up:
3

Add generators and executors

Explore further

Local generators

Create and run generators inside your workspace.

Local executors

Write custom task runners with schema validation.

Create a plugin

Package everything into a publishable Nx plugin.

Project graph plugins

Add nodes and dependencies to the Nx project graph.