fr3on / laravel-ghost
Identify and eliminate dead routes, orphaned event listeners, and zombie jobs in your Laravel application.
0.0.1
2026-04-12 13:42 UTC
Requires
- php: ^8.2
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- nikic/php-parser: ^4.18|^5.0
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^8.0|^9.0|^10.0
- pestphp/pest: ^2.34|^3.0
README
Finds dead routes, orphaned event listeners, and zombie jobs — registered code that your application never actually uses.
Installation
composer require fr3on/laravel-ghost
Usage
Scan your application for unused code:
php artisan ghost:scan
Modes
- Log mode (default): Reads existing access logs (Nginx/Apache/Laravel).
- Telescope mode: Queries your Telescope entries for hit data.
- Counter mode: Lightweight DB hits table (opt-in).
To enable Counter mode, run:
php artisan ghost:install php artisan migrate
Expected Result
The scan command produces a technical report of unused components:
+--------+------------------------+---------------------------------+
| Method | URI | Action |
+--------+------------------------+---------------------------------+
| GET | /api/legacy/export | LegacyController@export |
| POST | /internal/debug-reset | DebugController@reset |
+--------+------------------------+---------------------------------+
Found 2 dead routes, 0 orphaned listeners, 0 zombie jobs.
Configuration
Publish the config file:
php artisan vendor:publish --tag=ghost-config
Configure scan_paths, log_path, and exclude_patterns in config/ghost.php.