# Extension points — nrwl/nx

> Canonical page: https://codevetter.com/unpack/nx/extension-points

# Extension points — nrwl/nx

Scanned commit bedd602304d762fd160b5f2a6a81990aa1903ccb (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Nx separates command registration, graph inference, executor resolution, generation, and remote-cache integration. Plugin contracts carry workspace configuration and graph context rather than requiring edits to the CLI entrypoint. Package registries pair implementations with schemas, and reference documentation consumes those registries. Browser navigation has its own route table and loaders.
- New CLI commands plug into commandsObject through imported Yargs command modules; the object is deliberately exported separately from argv evaluation so documentation generation can inspect it. — [packages/nx/src/command-line/nx-commands.ts#L70-104](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/command-line/nx-commands.ts#L70-L104) [packages/nx/src/command-line/run/command-object.ts#L11-30](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/command-line/run/command-object.ts#L11-L30)
- Project inference plugins implement CreateNodes as a file-pattern/function pair returning project-root and external-node maps, with workspaceRoot and nxJsonConfiguration supplied through context. — [packages/nx/src/project-graph/plugins/public-api.ts#L16-66](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/project-graph/plugins/public-api.ts#L16-L66)
- Dependency and metadata extensions use createDependencies and createMetadata; dependency context includes projects, external nodes, full file maps, changed files, and workspace configuration. — [packages/nx/src/project-graph/plugins/public-api.ts#L76-128](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/project-graph/plugins/public-api.ts#L76-L128)
- Execution hooks use preTasksExecution and postTasksExecution, with run ID, argv, workspace configuration, and post-run results/timestamps; runCommand calls them around task execution. — [packages/nx/src/project-graph/plugins/public-api.ts#L160-194](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/project-graph/plugins/public-api.ts#L160-L194) [packages/nx/src/tasks-runner/run-command.ts#L543-588](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/tasks-runner/run-command.ts#L543-L588)
- Executor registry entries pair implementation and schema paths; runExecutorInternal resolves the factory and supplies target, project, workspace, and graph context, normalizing Promise and AsyncIterator results. — [packages/nx/executors.json#L2-17](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/executors.json#L2-L17) [packages/nx/src/command-line/run/run.ts#L162-209](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/command-line/run/run.ts#L162-L209)
- Generator registry entries pair factory and schema paths; generate resolves implementationFactory and passes a Tree plus combined options, with an optional callback executed after filesystem flush. — [packages/nx/generators.json#L2-13](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/generators.json#L2-L13) [packages/nx/src/command-line/generate/generate.ts#L333-348](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/command-line/generate/generate.ts#L333-L348) [packages/nx/src/command-line/generate/generate.ts#L401-425](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/command-line/generate/generate.ts#L401-L425)
- RemoteCacheV2 defines retrieve/store contracts and adapts legacy RemoteCache implementations; DbCache selects Nx Cloud or optional cache packages before its HTTP fallback. — [packages/nx/src/tasks-runner/default-tasks-runner.ts#L16-45](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/tasks-runner/default-tasks-runner.ts#L16-L45) [packages/nx/src/tasks-runner/default-tasks-runner.ts#L83-92](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/tasks-runner/default-tasks-runner.ts#L83-L92) [packages/nx/src/tasks-runner/cache.ts#L310-369](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/packages/nx/src/tasks-runner/cache.ts#L310-L369)
- Graph navigation extends childRoutes and environment-specific route trees; documentation extends package-schema parsing/rendering and technology slug mapping, with core packages deliberately handled by a separate reference loader. — [graph/client/src/app/routes.tsx#L219-242](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/graph/client/src/app/routes.tsx#L219-L242) [graph/client/src/app/routes.tsx#L270-309](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/graph/client/src/app/routes.tsx#L270-L309) [astro-docs/src/plugins/plugin.loader.ts#L42-56](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/astro-docs/src/plugins/plugin.loader.ts#L42-L56) [astro-docs/src/plugins/plugin.loader.ts#L185-215](https://github.com/nrwl/nx/blob/bedd602304d762fd160b5f2a6a81990aa1903ccb/astro-docs/src/plugins/plugin.loader.ts#L185-L215)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
