cargo-machete

cargo-machete - Unused Dependency Detection

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "cargo-machete" with this command: npx skills add laurigates/claude-plugins/laurigates-claude-plugins-cargo-machete

cargo-machete - Unused Dependency Detection

Detect and remove unused dependencies in Rust projects using cargo-machete.

When to Use This Skill

Use this skill when... Use X instead when...

Auditing for unused dependencies Checking for outdated deps -- use cargo outdated

Cleaning up Cargo.toml Auditing security vulnerabilities -- use cargo audit

Optimizing build times by removing bloat Checking license compliance -- use cargo deny

Verifying deps in CI Need nightly-accurate analysis -- use cargo +nightly udeps

Context

  • Cargo.toml: !find . -maxdepth 1 -name 'Cargo.toml'

  • Workspace: !grep -q '[workspace]' Cargo.toml

  • cargo-machete installed: !cargo machete --version

  • Machete config: !find . -maxdepth 1 -name '.cargo-machete.toml'

  • Workspace members: !grep -A 20 '^[workspace]' Cargo.toml

Execution

Execute this unused dependency analysis:

Step 1: Verify installation

Check if cargo-machete is installed (see Context above). If not installed, install it:

cargo install cargo-machete

Step 2: Run dependency analysis

Run cargo-machete with metadata for detailed output:

Single crate

cargo machete --with-metadata

Workspace (if Context shows workspace)

cargo machete --workspace --with-metadata

Step 3: Evaluate results

Review the output and classify each finding:

Finding Action

Genuinely unused dependency Remove with --fix or manually

Proc-macro dependency (e.g., serde derive) Add machete:ignore comment

Build.rs-only dependency Move to [build-dependencies]

Re-exported dependency Add machete:ignore comment with explanation

Step 4: Apply fixes

For confirmed unused dependencies, auto-remove them:

cargo machete --fix

For false positives, add ignore annotations in Cargo.toml :

serde = "1.0" # machete:ignore - used via derive macro

Or create .cargo-machete.toml for project-wide ignores:

[ignore] dependencies = ["serde", "log"]

Step 5: Verify build

After removing dependencies, confirm everything still compiles:

cargo check --all-targets cargo test --no-run

False Positive Handling

Scenario Solution

Proc-macro deps (e.g., serde derive) machete:ignore comment

Build.rs-only deps Move to [build-dependencies]

Re-exported deps machete:ignore comment with explanation

Example/bench-only deps Verify in [dev-dependencies]

Comparison with cargo-udeps

Feature cargo-machete cargo-udeps

Accuracy Good Excellent

Speed Very fast Slower

Rust version Stable Requires nightly

False positives Some Fewer

Use cargo-machete for fast CI checks. Use cargo-udeps for thorough audits:

cargo +nightly udeps --workspace --all-features

Agentic Optimizations

Context Command

Quick check cargo machete

Detailed check cargo machete --with-metadata

Workspace check cargo machete --workspace --with-metadata

Auto-fix cargo machete --fix

Verify after fix cargo check --all-targets

Accurate check (nightly) cargo +nightly udeps --workspace

Quick Reference

Flag Description

--with-metadata

Show detailed output with versions and locations

--fix

Auto-remove unused dependencies from Cargo.toml

--workspace

Check all workspace members

-p <crate>

Check specific workspace member

--exclude <crate>

Exclude specific workspace member

Troubleshooting

Problem Solution

Proc macro flagged as unused Add machete:ignore comment in Cargo.toml

Build.rs dep flagged Move to [build-dependencies]

Re-exported dep flagged Add machete:ignore with explanation

Need more accuracy Use cargo +nightly udeps

For CI integration patterns, configuration file examples, pre-commit setup, and Makefile integration, see REFERENCE.md.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ruff linting

No summary provided by upstream source.

Repository SourceNeeds Review
General

imagemagick-conversion

No summary provided by upstream source.

Repository SourceNeeds Review
General

jq json processing

No summary provided by upstream source.

Repository SourceNeeds Review
General

api-testing

No summary provided by upstream source.

Repository SourceNeeds Review