local-tools

Manages .NET local tool manifests, installation, versioning, and CI/CD restore workflows.

Updated Mar 8, 2026
One-click install
npx skills add https://github.com/AGIBuild/dotnet.CI.template --skill local-tools-agibuild
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: local-tools
Source: https://github.com/AGIBuild/dotnet.CI.template/tree/main/.cursor/skills/local-tools
Command: npx skills add https://github.com/AGIBuild/dotnet.CI.template --skill local-tools-agibuild

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams struggle with inconsistent CLI tool versions across developer machines and CI pipelines, leading to build failures and version conflicts. This Skill provides guidance for managing .NET local tools through a version-controlled manifest so every environment uses identical tool versions. ## Core Features & Use Cases - Manifest Management: Create and maintain .config/dotnet-tools.json with pinned versions and rollForward settings for reproducible builds. - Tool Lifecycle Operations: Install, restore, update, list, and uninstall local tools such as docfx, dotnet-ef, reportgenerator, csharpier, and incrementalist. - CI/CD Integration: Configure GitHub Actions and Azure Pipelines to restore tools before builds, tests, coverage reports, and documentation generation. - Use Case: A team adds docfx and reportgenerator to their tool manifest, commits it, and every developer plus the CI pipeline runs dotnet tool restore to get identical versions automatically. ## Quick Start Set up a .NET local tool manifest for my repository and add docfx and dotnet-ef with pinned versions, then show me how to restore them in CI.

Frequently Asked Questions about local-tools

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up .NET local tools for a project?▼

Run dotnet new tool-manifest to create .config/dotnet-tools.json, then install tools with dotnet tool install <tool-name>. Commit the manifest to version control so teammates restore identical versions with dotnet tool restore.

What is the difference between .NET local tools and global tools?▼

Local tools are versioned per-repository in dotnet-tools.json and restored with dotnet tool restore, while global tools install machine-wide with manual version control. Local tools prevent version conflicts between projects and simplify CI setup.

How do I restore .NET local tools in GitHub Actions?▼

Add a step running dotnet tool restore after actions/setup-dotnet in your workflow. This installs all tools defined in .config/dotnet-tools.json before build, test, or documentation steps use them.

Why is my local tool not found after dotnet tool restore?▼

The tool command fails when run from a subdirectory instead of the repository root containing the manifest. Navigate to the solution root before invoking the tool, or check for conflicting global tool versions with dotnet tool list -g.

How do I pin .NET tool versions for reproducible builds?▼

Set an exact version and "rollForward": false for each tool in dotnet-tools.json. This prevents automatic upgrades and ensures every environment installs the identical tool version during restore.