morcen/omni

A modern UI dashboard for selected Laravel Artisan commands

Maintainers

Package info

github.com/morcen/omni

Language:Blade

pkg:composer/morcen/omni

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 16

v0.0.1 2026-03-21 20:14 UTC

This package is auto-updated.

Last update: 2026-03-29 19:42:26 UTC


README

Tests

Omni | The Artisan UI

Omni Dashboard

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:model UI 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:cache and route:clear

Omni Routes

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

Omni Make

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 dashboard
  • middleware: middleware applied to Omni routes before Omni's authorization gate
  • enabled: master switch for enabling or disabling the package routes
  • features.*: turn individual UI sections on or off
  • routes.strip_namespace: removes a namespace prefix from route action display
  • routes.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

  1. Fork the repository.
  2. Create a feature branch.
  3. Make your changes with tests.
  4. Run formatting and the test suite.
  5. 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.