PHPackages                             sitegeist/janitor - 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. sitegeist/janitor

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

sitegeist/janitor
=================

Clean up your content repository

v3.4.0(2y ago)56.0k↓31.6%2[3 issues](https://github.com/sitegeist/Sitegeist.Janitor/issues)GPL-3.0+PHP

Since Dec 5Pushed 2y ago3 watchersCompare

[ Source](https://github.com/sitegeist/Sitegeist.Janitor)[ Packagist](https://packagist.org/packages/sitegeist/janitor)[ RSS](/packages/sitegeist-janitor/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (2)Versions (15)Used By (0)

Sitegeist.Janitor
=================

[](#sitegeistjanitor)

> Tools for the content repository

Authors &amp; Sponsors
----------------------

[](#authors--sponsors)

- Wilhelm Behncke -

*The development and the public-releases of this package is generously sponsored by our employer .*

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

[](#installation)

Sitegeist.Janitor is available via packagist:

```
composer require --dev sitegeist/janitor
```

Usage
-----

[](#usage)

Sitegeist.Janitor consists of a couple of tools to help you inspect your content repository and discover optimization potential. In addition it adds an automatic help message in the neos ui for every nodeType and property to get the exact names and types fast.

### report:unused

[](#reportunused)

Find out, what NodeTypes are not used inside your Neos instance.

```
./flow report:unused
```

**Options:**

- `--threshold` (optional, default: 0) - You can use this parameter to detect more than just unused NodeTypes, but basically all NodeTypes that have lesser occurences than this threshold
- `--super-type` (optional, default: 'Neos.Neos:Node') - With this parameter, you can limit the set of considered NodeTypes to those that inherit a specific SuperType
- `--workspaces` (optional, default: 'live') - You can also limit the set of considered workspaces
- `--dimensions` (optional, default: null) - Specify dimensionvalues to limit the analysis as json like `--dimensions '{"language":["de"]}'`

### report:occurences

[](#reportoccurences)

Get a list of all occurences of a specific node type.

```
./flow report:occurences MyAwesome.Package:MyAwesomeNodeType
```

**Options:**

- `--node-type` (required) - The node to which you want to find the occurences
- `--workspaces` (optional, default: '\_all') - Limit the set of considered workspaces
- `--limit` (optional, default: 5) - With this parameter, you can limit the number of occurences that are listed in the report
- `--start-at` (optional, default: 1) - Specifies the index of the result at which to start the report

### report:nodetypes

[](#reportnodetypes)

Get an overview of all your node types.

```
./flow report:nodetypes
```

**Options:**

- `--super-type` (optional, default: 'Neos.Neos:Node') - With this parameter, you can limit the set of considered NodeTypes to those that inherit a specific SuperType
- `--filter` (optional, default: '') - Filter your results with a shell glob pattern, leave this empty to not filter at all
- `--abstract` (optional, default: false) - Consider abstract node types as well
- `--oneline` (optional, default: false) - Creates a condensed report

### report:whereallowed

[](#reportwhereallowed)

Find out where a particular node type is allowed. This command gives you a list of NodeTypes and auto created child nodes and highlights those in which the given node type is allowed.

```
./flow report:whereallowed Neos.Neos:Content
```

**Options:**

- `--node-type` (required) - The node type to analyze
- `--filter` (optional, default: '') - Filter your results with a shell glob pattern, leave this empty to not filter at all

### report:uris

[](#reporturis)

Get a list of all Uris for a given node type.

```
./flow report:uris
```

**Options:**

- `--node-type` (optional, default: 'Neos.Neos:Document') - The node type to analyze
- `--filter` (optional, default: '') - Filter your results with a shell glob pattern, leave this empty to not filter at all
- `--workspace` (optional, default: 'live') - Limit your results to a certain workspace
- `--verbose` (optional, default: false) - Increase verbosity
- `--limit` (optional, default: 0) - Limit the number of your results (0 = no limit)

Contributions
-------------

[](#contributions)

We will gladly accept contributions. Please send us pull requests.

In lieu of a formal styleguide, take care to maintain the existing coding style. Please make sure to contribute [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) compliant sources.

License
-------

[](#license)

See [LICENSE.md](./LICENSE.md)

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance8

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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

Every ~323 days

Recently: every ~244 days

Total

9

Last Release

864d ago

Major Versions

v1.0.0 → v2.0.02018-08-07

v2.0.0 → v3.0.02020-01-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/1159e78bff9c03cc5ed626447ca5072097107f58af459a9b8bac8d933ba8298c?d=identicon)[wilhelm.behncke](/maintainers/wilhelm.behncke)

![](https://www.gravatar.com/avatar/51e0a02d8e12b73949ec858638aa7e295e103022cc5a879f86ac8532c2c170bd?d=identicon)[sitegeist](/maintainers/sitegeist)

![](https://www.gravatar.com/avatar/829b4ccb51e8cff3c1e4b59d60cfe8d1b86f6d77fc31a6b3fc99227f432542ca?d=identicon)[mficzel](/maintainers/mficzel)

---

Top Contributors

[![grebaldi](https://avatars.githubusercontent.com/u/2522299?v=4)](https://github.com/grebaldi "grebaldi (19 commits)")[![mficzel](https://avatars.githubusercontent.com/u/1309380?v=4)](https://github.com/mficzel "mficzel (15 commits)")[![jonnitto](https://avatars.githubusercontent.com/u/4510166?v=4)](https://github.com/jonnitto "jonnitto (3 commits)")[![gjwnc](https://avatars.githubusercontent.com/u/19683930?v=4)](https://github.com/gjwnc "gjwnc (2 commits)")

---

Tags

content-repositoryneoscmsnodetype

### Embed Badge

![Health badge](/badges/sitegeist-janitor/health.svg)

```
[![Health](https://phpackages.com/badges/sitegeist-janitor/health.svg)](https://phpackages.com/packages/sitegeist-janitor)
```

###  Alternatives

[neos/eel

The Embedded Expression Language (Eel) is a building block for creating Domain Specific Languages

122.0M27](/packages/neos-eel)[kaufmanndigital/gdpr-cookieconsent

A ready-to-run package, that integrates an advanced cookie consent banner into your Neos CMS site.

2540.7k](/packages/kaufmanndigital-gdpr-cookieconsent)[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

1494.4k6](/packages/shel-neos-colorpicker)[shel/neos-commandbar

A commandbar (CMD+K) for Neos CMS

1614.6k1](/packages/shel-neos-commandbar)[avency/neos-vardump

Neos VarDump Package

147.1k](/packages/avency-neos-vardump)

PHPackages © 2026

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