SkillAgentSearch skills...

Snitch

A tool that help you find duplicate transitive package references.

Install / Use

/learn @spectresystems/Snitch
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<img src="/src/icon.png" height="30px"> Snitch

NuGet Status

A tool that help you find transitive package references that can be removed.

Example

> snitch --tfm net462

Results in:

<!-- snippet: Solution.Default.verified.txt -->

<a id='snippet-Solution.Default.verified.txt'></a>

Analyzing...
Analyzing Snitch.Tests.Fixtures.sln
Analyzing Foo...
Analyzing Bar...
Analyzing Baz...
Analyzing Qux...
Analyzing Zap...
Analyzing Quux...
Analyzing Quuux...
Analyzing Thud...
Analyzing Thuuud...

╭─────────────────────────────────────────────────────────────────╮
│  Packages that can be removed from Bar:                         │
│ ┌──────────────────────┬──────────────────────────────────────┐ │
│ │ Package              │ Referenced by                        │ │
│ ├──────────────────────┼──────────────────────────────────────┤ │
│ │ Autofac              │ Foo                                  │ │
│ └──────────────────────┴──────────────────────────────────────┘ │
│                                                                 │
│  Packages that can be removed from Baz:                         │
│ ┌──────────────────────┬──────────────────────────────────────┐ │
│ │ Package              │ Referenced by                        │ │
│ ├──────────────────────┼──────────────────────────────────────┤ │
│ │ Autofac              │ Foo                                  │ │
│ └──────────────────────┴──────────────────────────────────────┘ │
│                                                                 │
│  Packages that might be removed from Qux:                       │
│ ┌───────────┬───────────┬─────────────────────────────────────┐ │
│ │ Package   │ Version   │ Reason                              │ │
│ ├───────────┼───────────┼─────────────────────────────────────┤ │
│ │ Autofac   │ 4.9.3     │ Downgraded from 4.9.4 in Foo        │ │
│ └───────────┴───────────┴─────────────────────────────────────┘ │
│                                                                 │
│  Packages that might be removed from Zap:                       │
│ ┌──────────────────┬──────────┬───────────────────────────────┐ │
│ │ Package          │ Version  │ Reason                        │ │
│ ├──────────────────┼──────────┼───────────────────────────────┤ │
│ │ Newtonsoft.Json  │ 12.0.3   │ Updated from 12.0.1 in Foo    │ │
│ │ Autofac          │ 4.9.3    │ Downgraded from 4.9.4 in Foo  │ │
│ └──────────────────┴──────────┴───────────────────────────────┘ │
│                                                                 │
│  Packages that might be removed from Thuuud:                    │
│ ┌─────────────────┬──────────────┬────────────────────────────┐ │
│ │ Package         │ Version      │ Reason                     │ │
│ ├─────────────────┼──────────────┼────────────────────────────┤ │
│ │ Newtonsoft.Json │ 13.0.2-beta2 │ Updated from 12.0.1 in Foo │ │
│ └─────────────────┴──────────────┴────────────────────────────┘ │
╰─────────────────────────────────────────────────────────────────╯

<sup><a href='/src/Snitch.Tests/Expectations/Solution.Default.verified.txt#L1-L49' title='Snippet source file'>snippet source</a> | <a href='#snippet-Solution.Default.verified.txt' title='Start of snippet'>anchor</a></sup>

<!-- endSnippet -->

Installation

> dotnet tool install -g snitch

Usage

Examine a specific project or solution using the first built target framework.

> snitch MyProject.csproj

Examine a specific project using a specific target framework moniker.

> snitch MyProject.csproj --tfm net462

Examine a specific project using a specific target framework moniker and return exit code 0 only if there was no transitive package collisions. Useful for continuous integration.

> snitch MyProject.csproj --tfm net462 --strict

Examine a specific project using a specific target framework moniker and make sure that the packages Foo and Bar are excluded from the result.

> snitch MyProject.csproj --tfm net462 --exclude Foo --exclude Bar

Examine a specific project using a specific target framework moniker and exclude the project OtherProject from analysis.

> snitch MyProject.csproj --tfm net462 --skip OtherProject

Examine a specific project or solution to make sure there are no pre-release package references.

> snitch MyProject.csproj --no-prerelease

Building Snitch from source

> dotnet tool restore
> dotnet cake

Icon

Hollow designed by Ben Davis from The Noun Project.

View on GitHub
GitHub Stars491
CategoryDevelopment
Updated8d ago
Forks31

Languages

C#

Security Score

95/100

Audited on Mar 24, 2026

No findings