Agent Skills: Nx Workspace Exploration

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.

UncategorizedID: nrwl/nx/nx-workspace

Repository

nrwlLicense: MIT
28,4512,698

Install this agent skill to your local

pnpm dlx add-skill https://github.com/nrwl/nx/tree/HEAD/.cursor/skills/nx-workspace

Skill Files

Browse the full folder contents for nx-workspace.

Download Skill

Loading file tree…

.cursor/skills/nx-workspace/SKILL.md

Skill Metadata

Name
nx-workspace
Description
"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."

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.

# List all projects
nx show projects

# Filter by pattern (glob)
nx show projects --projects "apps/*"
nx show projects --projects "shared-*"

# Filter by project type
nx show projects --type app
nx show projects --type lib
nx show projects --type e2e

# Filter by target (projects that have a specific target)
nx show projects --withTarget build
nx show projects --withTarget e2e

# Find affected projects (changed since base branch)
nx show projects --affected
nx show projects --affected --base=main
nx show projects --affected --type app

# Combine filters
nx show projects --type lib --withTarget test
nx show projects --affected --exclude="*-e2e"

# Output as JSON
nx 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.

# Get full project configuration
nx show project my-app --json

# Extract specific parts from the JSON
nx 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 metadata
nx show project my-app --json | jq '{name, root, sourceRoot, projectType, tags}'

Target Information

Targets define what tasks can be run on a project.

# List all targets for a project
nx show project my-app --json | jq '.targets | keys'

# Get full target configuration
nx show project my-app --json | jq '.targets.build'

# Check target executor/command
nx show project my-app --json | jq '.targets.build.executor'
nx show project my-app --json | jq '.targets.build.command'

# View target options
nx 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 target
nx show projects --withTarget serve
nx 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.

# Read the full nx.json
cat nx.json

# Or use jq for specific sections
cat 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.

# Affected since base branch (auto-detected)
nx show projects --affected

# Affected with explicit base
nx show projects --affected --base=main
nx show projects --affected --base=origin/main

# Affected between two commits
nx show projects --affected --base=abc123 --head=def456

# Affected apps only
nx show projects --affected --type app

# Affected excluding e2e projects
nx show projects --affected --exclude="*-e2e"

# Affected by uncommitted changes
nx show projects --affected --uncommitted

# Affected by untracked files
nx show projects --affected --untracked

Common Exploration Patterns

"What's in this workspace?"

nx show projects
nx show projects --type app
nx show projects --type lib

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

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

"What depends on library Y?"

# 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?"

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?"

# Check what files changed
git diff --name-only main

# See which project owns those files
nx show project X --json | jq '.root'