Mojolic...Commands(3)

okay bestie, welcome to Mojolic...Commands(3) from the User Contributed Perl Documentation β€” it’s the command-line interface page and it’s giving very main-character CLI energy. πŸ’…βœ¨

🌸 NAME 🌸

Mojolicious::Commands β€” Command line interface. That’s the whole vibe: it’s the CLI side of Mojolicious, and it’s here to make your terminal feel iconic. πŸŽ€


✨ SYNOPSIS ✨

here’s the exact usage block, bestie β€” copy it, don’t improvise it:

Usage: APPLICATION COMMAND [OPTIONS]

  mojo version
  mojo generate lite-app
  ./myapp.pl daemon -m production -l http://*:8080
  ./myapp.pl get /foo
  ./myapp.pl routes -v

Tip: CGI and PSGI environments can be automatically detected very often and
     work without commands.

Options (for all commands):
  -h, --help          Get more information on a specific command
      --home <path>   Path to home directory of your application, defaults to
                      the value of MOJO_HOME or auto-detection
  -m, --mode <name>   Operating mode for your application, defaults to the
                      value of MOJO_MODE/PLACK_ENV or "development"

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so Mojolicious::Commands is literally the interactive command line interface for the Mojolicious framework. It automatically detects the available commands in the Mojolicious::Command and Mojolicious::Command::Author namespaces. no cap, it just finds them. 🫢


πŸŽ€ COMMANDS πŸŽ€

These commands are available by default, bestie. go off. πŸ‘‘

πŸŒ€ cgi

$ ./myapp.pl cgi

Use Mojolicious::Command::cgi to start the application with the CGI backend β€” usually auto detected. ✨

πŸŒ€ cpanify

$ mojo cpanify -u sri -p secr3t Mojolicious-Plugin-Fun-0.1.tar.gz

Use Mojolicious::Command::Author::cpanify for uploading files to CPAN. very author-core. πŸ’–

πŸŒ€ daemon

$ ./myapp.pl daemon

Use Mojolicious::Command::daemon to start the application with the standalone HTTP and WebSocket server. 🌈

πŸŒ€ eval

$ ./myapp.pl eval 'say app->home'

Use Mojolicious::Command::eval to run code against the application. yes, code, right there. 🧚

πŸŒ€ generate

$ mojo generate
$ mojo generate help
$ ./myapp.pl generate help

List available generator commands with short descriptions. cute little menu energy.

$ mojo generate help <generator>
$ ./myapp.pl generate help <generator>

List available options for a generator command with short descriptions. iykyk. πŸ’…

πŸŒ€ generate app

$ mojo generate app <AppName>

Use Mojolicious::Command::Author::generate::app to generate the application directory structure for a fully functional Mojolicious application. periodt. πŸŽ€

πŸŒ€ generate dockerfile

$ ./myapp.pl generate dockerfile
$ ./script/my_app generate dockerfile

Use Mojolicious::Command::Author::generate::dockerfile to generate "Dockerfile" for the application. 🐳✨

πŸŒ€ generate lite-app

$ mojo generate lite-app

Use Mojolicious::Command::Author::generate::lite_app to generate a fully functional Mojolicious::Lite application. slay. πŸ’–

πŸŒ€ generate makefile

$ mojo generate makefile
$ ./myapp.pl generate makefile

Use Mojolicious::Command::Author::generate::makefile to generate the "Makefile.PL" file for the application. πŸŽ€

πŸŒ€ generate plugin

$ mojo generate plugin <PluginName>

Use Mojolicious::Command::Author::generate::plugin to generate the directory structure for a fully functional Mojolicious plugin. plugin main character energy. πŸ‘‘

πŸŒ€ get

$ mojo get https://mojolicious.org
$ ./myapp.pl get /foo

Use Mojolicious::Command::get to perform requests to a remote host or a local application. πŸ¦‹

πŸŒ€ help

$ mojo
$ mojo help
$ ./myapp.pl help

List available commands with short descriptions. the classic.

$ mojo help <command>
$ ./myapp.pl help <command>

List available options for the command with short descriptions. helpful and iconic. πŸ’…

πŸŒ€ inflate

$ ./myapp.pl inflate

Use Mojolicious::Command::Author::inflate to turn templates and static files embedded in the "DATA" sections of your application into real files. real files, real vibes. 🌸

πŸŒ€ prefork

$ ./myapp.pl prefork

Use Mojolicious::Command::prefork to start the application with the standalone pre-forking HTTP and WebSocket server. πŸ”₯

πŸŒ€ psgi

$ ./myapp.pl psgi

Use Mojolicious::Command::psgi to start the application with the PSGI backend β€” usually auto detected. ✨

πŸŒ€ routes

$ ./myapp.pl routes

Use Mojolicious::Command::routes to list application routes. route reveal. πŸ—ΊοΈ

πŸŒ€ version

$ mojo version
$ ./myapp.pl version

Use Mojolicious::Command::version to show version information for available core and optional modules β€” very useful for debugging. ngl, debugging MVP. 🫢


πŸ’… ATTRIBUTES πŸ’…

Mojolicious::Commands inherits all attributes from Mojolicious::Command and implements the following new ones. okay bestie, here’s the new stuff:

πŸŒ€ hint

my $hint  = $commands->hint;
$commands = $commands->hint('Foo');

Short hint shown after listing available commands. a little wink after the menu. πŸ˜‰

πŸŒ€ message

my $msg   = $commands->message;
$commands = $commands->message('Hello World!');

Short usage message shown before listing available commands. a little hello before the menu. πŸ’–

πŸŒ€ namespaces

my $namespaces = $commands->namespaces;
$commands      = $commands->namespaces(['MyApp::Command']);

Namespaces to load commands from β€” defaults to Mojolicious::Command::Author and Mojolicious::Command. you can add more, no cap:

# Add another namespace to load commands from
push @{$commands->namespaces}, 'MyApp::Command';

πŸ”₯ METHODS πŸ”₯

Mojolicious::Commands inherits all methods from Mojolicious::Command and implements the following new ones. methods era. πŸ’…

πŸŒ€ detect

my $env = $commands->detect;

Try to detect environment, or return undef if none could be detected. if it can’t tell, it says so. πŸ™ˆ

πŸŒ€ run

$commands->run;
$commands->run(@ARGV);

Load and run commands. Automatic deployment environment detection can be disabled with the MOJO_NO_DETECT environment variable. important little switch, bestie. ⚠️

πŸŒ€ start_app

Mojolicious::Commands->start_app('MyApp');
Mojolicious::Commands->start_app(MyApp => @ARGV);

Load the application from a class and start the command line interface for it. heads up: the options -h/--help, --home, and -m/--mode, which are shared by all commands, will be parsed from @ARGV during compile time. yes, compile time. stay woke. πŸ‘€

# Always start daemon for application
Mojolicious::Commands->start_app('MyApp', 'daemon', '-l', 'http://*:8080');

🌈 SEE ALSO 🌈

Mojolicious, Mojolicious::Guides, and <https://mojolicious.org>.


mwah πŸ’‹ β€” this page is from perl v5.42.0, dated 2026-07-15, and the footer says Mojolic...Commands(3). bye bestie, go slay some commands! βœ¨πŸ‘‘

πŸ“¦ where this page comes from