| 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.
nx show projects
nx show projects --projects "apps/*"
nx show projects --projects "shared-*"
nx show projects --type app
nx show projects --type lib
nx show projects --type e2e
nx show projects --withTarget build
nx show projects --withTarget e2e
nx show projects --affected
nx show projects --affected --base=main
nx show projects --affected --type app
nx show projects --type lib --withTarget test
nx show projects --affected --exclude="*-e2e"
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.
nx show project my-app --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'
nx show project my-app --json | jq '{name, root, sourceRoot, projectType, tags}'
Target Information
Targets define what tasks can be run on a project.
nx show project my-app --json | jq '.targets | keys'
nx show project my-app --json | jq '.targets.build'
nx show project my-app --json | jq '.targets.build.executor'
nx show project my-app --json | jq '.targets.build.command'
nx show project my-app --json | jq '.targets.build.options'
nx show project my-app --json | jq '.targets.build.inputs'
nx show project my-app --json | jq '.targets.build.outputs'
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.
cat nx.json
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.
nx show projects --affected
nx show projects --affected --base=main
nx show projects --affected --base=origin/main
nx show projects --affected --base=abc123 --head=def456
nx show projects --affected --type app
nx show projects --affected --exclude="*-e2e"
nx show projects --affected --uncommitted
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?"
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?"
git diff --name-only main
nx show project X --json | jq '.root'