PHPackages                             szeidler/composer-drupal-unused - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. szeidler/composer-drupal-unused

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

szeidler/composer-drupal-unused
===============================

1.x-dev(1y ago)1740↓12.5%MITPHPPHP ^8.1

Since Jan 16Pushed 1y ago1 watchersCompare

[ Source](https://github.com/szeidler/composer-drupal-unused)[ Packagist](https://packagist.org/packages/szeidler/composer-drupal-unused)[ RSS](/packages/szeidler-composer-drupal-unused/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelogDependencies (5)Versions (1)Used By (0)

Composer Drupal Unused
======================

[](#composer-drupal-unused)

The Composer Drupal Unused package returns a list of Drupal Composer Packages that are not installed in your Drupal installation.

This plugin does not require a fully installed and boostrapped Drupal installation. It just parses the `composer.json`and typical configuration files in Drupal.

Requirements
------------

[](#requirements)

- PHP 8.1 or greater
- Composer

Installation
------------

[](#installation)

Add Composer Drupal Unused as a composer dependency.

```
composer require szeidler/composer-drupal-unused:^1.0
```

or global

```
composer global require szeidler/composer-drupal-unused:^1.0
```

Usage
-----

[](#usage)

### List unused Drupal packages

[](#list-unused-drupal-packages)

```
composer unused-drupal-packages
```

The command accepts the following options.

- `--config-dir` Define the path to your config directory. Defaults to `config/sync`.
- `--remove` Removes the identified unused packages from composer.lock and composer.json.

The command will list up Drupal packages that are declared as root level dependencies your composer.json, but not enabled in Drupal.

It will look up the `core.extension.yml` from the given Drupal Configuration Management directory. In addition it will look up `config_split` config files to see if a module is conditionally enabled.

#### Remove option

[](#remove-option)

You should be careful using the plugin using the `--remove` function. Always review the changes. There might be edge cases where the Composer package name does not match the Drupal module machine name. The script would identify the package as unused and therefore delete it.

Credits
-------

[](#credits)

Stephan Zeidler for [Ramsalt Lab AS](https://ramsalt.com)

License
-------

[](#license)

The MIT License (MIT)

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance41

Moderate activity, may be stable

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity31

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

488d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/05bccdb85281776b28deafc2900b52fc8e12fcb25c3fd27870a5c5158db8da89?d=identicon)[szeidler](/maintainers/szeidler)

---

Top Contributors

[![szeidler](https://avatars.githubusercontent.com/u/1475847?v=4)](https://github.com/szeidler "szeidler (16 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/szeidler-composer-drupal-unused/health.svg)

```
[![Health](https://phpackages.com/badges/szeidler-composer-drupal-unused/health.svg)](https://phpackages.com/packages/szeidler-composer-drupal-unused)
```

###  Alternatives

[drupal/console-extend-plugin

Drupal Console Extend Plugin

13214.3M5](/packages/drupal-console-extend-plugin)[lullabot/drainpipe

An automated build tool to allow projects to have a set standardized operations scripts.

41716.4k2](/packages/lullabot-drainpipe)[altis/local-server

Local Server module for Altis

18208.4k2](/packages/altis-local-server)[uma/composer-psysh

No-frills PsySH-Composer plugin

183.2k](/packages/uma-composer-psysh)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
