Nx Workspace

nrwl/nx/.cursor/skills/nx-workspace

by nrwl2989ece2ac76f5507cf8fa3be38d455273b89178No licenseListed Oct 9, 2026Updated Oct 9, 2026

Explore and understand Nx workspaces. USE WHEN answering any questions about the nx workspace, the projects in it or tasks to run. EXAMPLES: 'What projects are in this workspace?', 'How is project X configured?', 'What targets can I run?', 'What's affected by my changes?', 'Which projects depend on library Y?', or any questions about Nx workspace structure, project configuration, or available tasks.

Instructions onlySoftware Development
AI-generated overview

Read-only exploration of Nx workspaces: lists projects, shows project configuration, targets and affected projects.

What it does
This skill guides an agent through read-only inspection of an Nx workspace using Nx CLI commands. It covers listing projects with filters, retrieving a project's full resolved configuration as JSON, examining targets and their executors, options, inputs and outputs, and reading workspace-level nx.json settings. It also explains how to determine affected projects and how to find projects that depend on a given library.
When to use it
Use it when answering questions about an Nx workspace, such as which projects exist, how a project is configured, which targets can be run, what is affected by changes, or which projects depend on a library. It is intended for understanding workspace structure and configuration rather than modifying it.
Requirements
An Nx workspace with the Nx CLI available, invoked directly or through npx, pnpx or yarn depending on the lockfile. Commands may use jq for JSON parsing and git for change detection; no scripts are shipped.

Nx Workspace Exploration

This skill provides read-only exploration of Nx workspaces. Use it to understand workspace structure, project configuration, available targets, and dependencies.

Keep in mind that you might have to prefix commands with npx/pnpx/yarn if nx isn't installed globally. Check the lockfile to determine the package manager in use.

Listing Projects

Use nx show projects to list projects in the workspace.

bash
# List all projectsnx show projects
# Filter by pattern (glob)nx show projects --projects "apps/*"nx show projects --projects "shared-*"
# Filter by project typenx show projects --type appnx show projects --type libnx show projects --type e2e
# Filter by target (projects that have a specific target)nx show projects --withTarget buildnx show projects --withTarget e2e
# Find affected projects (changed since base branch)nx show projects --affectednx show projects --affected --base=mainnx show projects --affected --type app
# Combine filtersnx show projects --type lib --withTarget testnx show projects --affected --exclude="*-e2e"
# Output as JSONnx show projects --json

Project Configuration

Use nx show project <name> --json to get the full resolved configuration for a project.

Important: Do NOT read project.json directly - it only contains partial configuration. The nx show project command returns the full resolved config including inferred targets from plugins.

You can read the full project schema at node_modules/nx/schemas/project-schema.json to understand nx project configuration options.

bash
# Get full project configurationnx show project my-app --json
# Extract specific parts from the JSONnx show project my-app --json | jq '.targets'nx show project my-app --json | jq '.targets.build'nx show project my-app --json | jq '.targets | keys'
# Check project metadatanx show project my-app --json | jq '{name, root, sourceRoot, projectType, tags}'

Target Information

Targets define what tasks can be run on a project.

bash
# List all targets for a projectnx show project my-app --json | jq '.targets | keys'
# Get full target configurationnx show project my-app --json | jq '.targets.build'
# Check target executor/commandnx show project my-app --json | jq '.targets.build.executor'nx show project my-app --json | jq '.targets.build.command'
# View target optionsnx show project my-app --json | jq '.targets.build.options'
# Check target inputs/outputs (for caching)nx show project my-app --json | jq '.targets.build.inputs'nx show project my-app --json | jq '.targets.build.outputs'
# Find projects with a specific targetnx show projects --withTarget servenx show projects --withTarget e2e

Workspace Configuration

Read nx.json directly for workspace-level configuration. You can read the full project schema at node_modules/nx/schemas/nx-schema.json to understand nx project configuration options.

bash
# Read the full nx.jsoncat nx.json
# Or use jq for specific sectionscat nx.json | jq '.targetDefaults'cat nx.json | jq '.namedInputs'cat nx.json | jq '.plugins'cat nx.json | jq '.generators'

Key nx.json sections:

  • targetDefaults - Default configuration applied to all targets of a given name
  • namedInputs - Reusable input definitions for caching
  • plugins - Nx plugins and their configuration
  • ...and much more, read the schema or nx.json for details

Affected Projects

Find projects affected by changes in the current branch.

bash
# Affected since base branch (auto-detected)nx show projects --affected
# Affected with explicit basenx show projects --affected --base=mainnx show projects --affected --base=origin/main
# Affected between two commitsnx show projects --affected --base=abc123 --head=def456
# Affected apps onlynx show projects --affected --type app
# Affected excluding e2e projectsnx show projects --affected --exclude="*-e2e"
# Affected by uncommitted changesnx show projects --affected --uncommitted
# Affected by untracked filesnx show projects --affected --untracked

Common Exploration Patterns

"What's in this workspace?"

bash
nx show projectsnx show projects --type appnx show projects --type lib

"How do I build/test/lint project X?"

bash
nx show project X --json | jq '.targets | keys'nx show project X --json | jq '.targets.build'

"What depends on library Y?"

bash
# Find projects that may depend on Y by searching for imports# (Nx doesn't have a direct "dependents" command via CLI)grep -r "from '@myorg/Y'" --include="*.ts" --include="*.tsx" apps/ libs/

"What configuration options are available?"

bash
cat node_modules/nx/schemas/nx-schema.json | jq '.properties | keys'cat node_modules/nx/schemas/project-schema.json | jq '.properties | keys'

"Why is project X affected?"

bash
# Check what files changedgit diff --name-only main
# See which project owns those filesnx show project X --json | jq '.root'

Source and attribution

Source:nrwl/nxin.cursor/skills/nx-workspaceat commit2989ece

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal