A simple command line tool for installing and interacting with your leaf apps

Installs: 3 826

Dependents: 0

Suggesters: 0

Security: 0

Stars: 10

Watchers: 2

Forks: 3

Open Issues: 3


v2.12.0 2024-03-10 18:42 UTC



Leaf CLI 2

Latest Stable Version Total Downloads License

A simple command line tool for creating and interacting with your leaf projects. You can do stuff like installing packages, interacting with your app, previewing your app, ...


You can get this tool up and running on your system using composer:

composer global require leafs/cli

Make sure to place Composer's system-wide vendor bin directory in your $PATH so the leaf executable can be located by your system. This directory exists in different locations based on your operating system; however, some common locations include:

  • Windows: %USERPROFILE%\AppData\Roaming\Composer\vendor\bin
  • macOS: $HOME/.composer/vendor/bin
  • GNU / Linux Distributions: $HOME/.config/composer/vendor/bin or $HOME/.composer/vendor/bin

You could also find the composer's global installation path by running composer global about and looking up from the first line.

Eg (Adding composer bin to path linux):

export PATH=$PATH:$HOME/.config/composer/vendor/bin

Eg (Adding composer bin to path mac):

export PATH=$PATH:$HOME/.composer/vendor/bin
echo $PATH

Usage Guide

Creating projects

To start a new project, simply open up your console or terminal in your directory for projects and enter:

With leaf 3:

leaf create <project-name>

This will now prompt you to select a preset

Creating a new Leaf app "<project-name>" in ./projects-directory.

* Please pick a preset 
  [0] leaf
  [1] leaf mvc
  [2] leaf api

Selecting a number will generate a leaf app based on the associated preset. As you can see, there are 3 presets:

  • Leaf: a bare leaf 3 project
  • Leaf MVC: a leaf MVC project with leaf 3
  • Leaf API: a leaf API project with leaf 3

You can also pick a preset directly without going through the interactive installer.


leaf create <project-name> --basic

Leaf API:

leaf create <project-name> --api

Leaf MVC:

leaf create <project-name> --mvc

You can also add --custom for a fully customisable leaf project.

leaf create <project-name> --custom

Installing packages

This cli tool also adds a feature to install modules from composer

leaf install ui

This installs the leafs/ui package.

You can also install third party packages from packagist

leaf install psr/log

Interactive Shell

You can also use the interactive shell to interact with your app.

$ leaf interact
>>> $user = new User;
>>> $user->name = "Mychi";
>>> $user->save();

Previewing your app

This opens up your app on the PHP local server.

leaf serve

You can also specify the port

leaf serve -p 8000

In v2.1, you can also start the leaf server with hot module watching. This reloads your application anytime a change is made to your application code. To get started, simply start the leaf server with the --watch flag.

leaf serve --port 8000 --watch


Leaf CLI is open-sourced software licensed under the MIT license.

😇 Contributing

We are glad to have you. All contributions are welcome! To get started, familiarize yourself with our contribution guide and you'll be ready to make your first pull request 🚀.

To report a security vulnerability, you can reach out to @mychidarko or @leafphp on twitter. We will coordinate the fix and eventually commit the solution in this project.

Code contributors

Michael Darko


Sponsoring Leaf

Your cash contributions go a long way to help us make Leaf even better for you. You can sponsor Leaf and any of our packages on open collective or check the contribution page for a list of ways to contribute.

And to all our existing cash/code contributors, we love you all ❤️

Cash contributors

You can view all sponsors @ https://leafphp.dev/#sponsors

🤯 Links/Projects