Web interface for Laravel Artisan

V1.7.1 2023-02-02 16:54 UTC


This package is to add a web interface for Laravel 5 and earlier Artisan.


Add Nice Artisan to your composer.json file :

  • For Laravel 5.1
    composer require bestmomo/nice-artisan:0.3.*
  • For Laravel 5.2
    composer require bestmomo/nice-artisan:0.4.*
  • For Laravel 5.3
    composer require bestmomo/nice-artisan:0.5.*
  • For Laravel 5.4
    composer require bestmomo/nice-artisan:1.0.*
  • For Laravel 5.5
    composer require bestmomo/nice-artisan:^1.1
  • For Laravel ^6.0
    composer require bestmomo/nice-artisan:^1.2
  • For Laravel ^7.0
    composer require bestmomo/nice-artisan:^1.3
  • For Laravel ^8.0
    composer require bestmomo/nice-artisan:^1.4
  • For Laravel ^9.0
    composer require bestmomo/nice-artisan:^1.6
  • For Laravel ^10.0
    composer require bestmomo/nice-artisan:^1.7

For Laravel < 5.5 the next required step is to add the service provider to config/app.php (for Laravel 5.5 there is the package discovery) :


Last copy the package config to your local config with the publish command:

    php artisan vendor:publish --tag=niceartisan:config

You can change options and commands in config/commands.php. The menu is dynamically created with this config.

Now it must work with this url (you can also change it in the config file):



If you want to use this package on a production application you must protect the urls with a middleware for your security !

Add a route middleware to your application, for example :


namespace App\Http\Middleware;

use Closure;

class NiceArtisan
     * Handle an incoming request.
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
    public function handle($request, Closure $next)
        $user = $request->user();

        if ($user && $user->isAdmin()) {
            return $next($request);

        return redirect('/');

And register it in Kernel with nice_artisan name :

'nice_artisan' => \App\Http\Middleware\NiceArtisan::class,

Before V1.6 this middleware will be automatically detected by package.

From V1.6 you must specify the middleware in the commands configuration file :

'middlewares' => [


nice-artisan1 nice-artisan2 nice-artisan3