Omni is a lightweight in-app dashboard for Laravel applications. It gives you a browser-based view into common application diagnostics and exposes a small set of safe workflow helpers, so you can inspect your app without bouncing between multiple Artisan commands.
At the moment, Omni focuses on:
- An application dashboard with environment, cache, driver, database, migration, schedule, and event insights
- A routes explorer with filtering plus route cache and clear actions
- A
make:modelUI for generating Eloquent models and related files
Some sections are already scaffolded in the UI but are not implemented yet: Logs, Queue, Cache, and Config.
- PHP
^8.3 - Laravel
^12.0
Install the package with Composer:
composer require morcen/omniThe service provider is auto-discovered by Laravel.
If you want to customize the package configuration, publish the config file:
php artisan vendor:publish --tag=omni-configOmni adds a protected web UI to your Laravel application, mounted at /omni by default.
The dashboard summarizes useful application state in one place:
- App name, environment, Laravel version, PHP version, URL, locale, timezone, debug mode, and maintenance mode
- Cache status for config, routes, events, and compiled views
- Active database, cache, queue, mail, session, log, and broadcasting drivers
- Database availability, current connection name, and table count
- Route totals and method breakdown
- Migration totals, ran migrations, and pending migrations
- Registered scheduled tasks and their next run time
- Registered events and listener counts
The routes screen provides:
- A searchable table of registered routes
- Filtering by method, name, action, middleware, domain, and path
- Vendor-route filtering
- Buttons to run
route:cacheandroute:clear
The model generator provides a UI for php artisan make:model and supports:
--all--controller--factory--force--migration--morph-pivot--policy--seed--pivot--resource--api--requests--test--pest--phpunit
Omni is protected by middleware and a Laravel gate named viewOmni.
By default, the package defines:
Gate::define('viewOmni', function ($user = null) {
return app()->environment('local');
});That means Omni is available in the local environment out of the box, and denied elsewhere unless you override the gate in your application.
Example override in your app:
use Illuminate\Support\Facades\Gate;
Gate::define('viewOmni', function ($user) {
return $user?->is_admin === true;
});You can also layer your own middleware through configuration, for example:
'middleware' => ['web', 'auth'],The package ships with config/omni.php.
return [
'path' => env('OMNI_PATH', 'omni'),
'middleware' => ['web'],
'enabled' => env('OMNI_ENABLED', true),
'features' => [
'dashboard' => true,
'make' => true,
'routes' => true,
'logs' => true,
'queue' => true,
'cache' => true,
'config' => true,
],
'routes' => [
'strip_namespace' => 'App\\Http\\Controllers\\',
'show_vendor_routes' => true,
],
];path: URI prefix for the dashboardmiddleware: middleware applied to Omni routes before Omni's authorization gateenabled: master switch for enabling or disabling the package routesfeatures.*: turn individual UI sections on or offroutes.strip_namespace: removes a namespace prefix from route action displayroutes.show_vendor_routes: reserved config for route visibility behavior
After installation, start your Laravel app and visit:
/omni
If you changed the path, use your configured OMNI_PATH or omni.path value instead.
Contributions are welcome. If you want to improve Omni, fix a bug, or add one of the placeholder modules, a pull request is appreciated.
- Fork the repository.
- Create a feature branch.
- Make your changes with tests.
- Run formatting and the test suite.
- Open a pull request with a clear summary of the change.
Install dependencies:
composer installRun the test suite:
composer testRun static analysis:
composer analyseFormat the codebase:
composer formatThis package uses:
- Pest for tests
- Orchestra Testbench for package testing
- Larastan / PHPStan for static analysis
- Laravel Pint for formatting
The current UI already includes placeholders for future sections:
- Logs
- Queue
- Cache
- Config
The full project roadmap, including milestone tasks and the release schedule, lives in ROADMAP.md.
If you discover a security issue, please avoid opening a public issue with exploit details. Reach out privately to the maintainer instead.
This package is open-sourced software licensed under the MIT license.