- 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.
- Generator utilities
- Executor utilities
- Plugin / project graph utilities
Create your first plugin
1
Add the plugin package
2
Scaffold a plugin in your workspace
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.
