morcen / omni
A modern UI dashboard for selected Laravel Artisan commands
Requires
- php: ^8.3
- illuminate/contracts: ^12.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1
- orchestra/testbench: ^10.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-arch: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
This package is auto-updated.
Last update: 2026-03-29 19:42:26 UTC
README
Omni | The Artisan UI
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.
Requirements
- PHP
^8.3 - Laravel
^12.0
Installation
Install the package with Composer:
composer require morcen/laravel-omni
The 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-config
What It Does
Omni adds a protected web UI to your Laravel application, mounted at /omni by default.
Dashboard
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
(find screenshot above)
Routes
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
Make
Model Generator
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
Access Control
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'],
Configuration
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, ], ];
Available Options
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
Usage
After installation, start your Laravel app and visit:
/omni
If you changed the path, use your configured OMNI_PATH or omni.path value instead.
Contributing
Contributions are welcome. If you want to improve Omni, fix a bug, or add one of the placeholder modules, a pull request is appreciated.
Suggested Workflow
- 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.
Local Development
Install dependencies:
composer install
Run the test suite:
composer test
Run static analysis:
composer analyse
Format the codebase:
composer format
Testing
This package uses:
- Pest for tests
- Orchestra Testbench for package testing
- Larastan / PHPStan for static analysis
- Laravel Pint for formatting
Roadmap
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.
Security
If you discover a security issue, please avoid opening a public issue with exploit details. Reach out privately to the maintainer instead.
License
This package is open-sourced software licensed under the MIT license.