Provide some useful utils for the php CLI. console color, CLI env, CLI code highlighter.
20
stars
142
commits
PHP
primary language
Jun 19, 2026
updated
Provide some useful utils for the php CLI application.
composer require toolkit/cli-utils
Color::printf('<info>%s</info> world', 'hello');
Color::println('hello world', 'info');
Color::println('hello world', 'error');
Color::println('hello world', 'warning');
Color::println('hello world', 'success');
echo Color::render('hello world', 'success');

use Toolkit\Cli\Util\Clog;
// run: php example/log.php
foreach (Clog::getLevelNames() as $level) {
Clog::log($level, "example log $level message");
}

use Toolkit\Cli\CliApp;
// run:
// php example/mycmd
// php example/mycmd -i abc --lon def ag1 ag2 ag3
$cmd = CliApp::new('cmd1', 'this is my cli application');
$cmd->addOpt('info', 'i', 'Output some information');
$cmd->addOpt('long-option-name', 'lon', 'this is a long option for command');
$cmd->addArg('arg1', 'this is first argument');
$cmd->setHandler(function (CliApp $cmd) {
var_dump($cmd->getOpts(), $cmd->getArgs(), $cmd->getRemainArgs());
});
$cmd->run();

examples:
use Toolkit\Cli\Util\Terminal;
Terminal::forward(3);
Terminal::backward(2);
Terminal::clearLine();
Terminal::clearScreen();
/**
* @method static showCursor()
* @method static hideCursor()
* @method static savePosition()
* @method static restorePosition()
* @method static toTop()
* @method static toColumn(int $step)
* @method static up(int $step = 1)
* @method static down(int $step = 1)
* @method static forward(int $step = 1)
* @method static backward(int $step = 1) Moves the terminal cursor backward
* @method static toPrevNLineStart(int $step = 1)
* @method static toNextNLineStart(int $step = 1)
* @method static coordinate(int $col, int $row = 0)
* @method static clearScreen()
* @method static clearLine()
* @method static clearToScreenBegin()
* @method static clearToScreenEnd()
* @method static scrollUp(int $step = 1)
* @method static scrollDown(int $step = 1)
* @method static showSecondaryScreen()
* @method static showPrimaryScreen()
*/
This is inspire
jakub-onderka/php-console-highlighter
use Toolkit\Cli\Util\Highlighter;
// this is an comment
$rendered = Highlighter::create()->highlight(file_get_contents(__FILE__));
\Toolkit\Cli\Cli::write($rendered);

use Toolkit\Cli\Download;
$url = 'http://no2.php.net/distributions/php-7.2.5.tar.bz2';
$down = Download::file($url, '');
// $down->setShowType('bar');
// $down->setDebug(true);
$down->start();
Progress bar

Progress text

PHP
100.0%
Provide some useful utils for the php CLI. console color, CLI env, CLI code highlighter.
20
stars
142
commits
PHP
primary language
Jun 19, 2026
updated
Provide some useful utils for the php CLI application.
composer require toolkit/cli-utils
Color::printf('<info>%s</info> world', 'hello');
Color::println('hello world', 'info');
Color::println('hello world', 'error');
Color::println('hello world', 'warning');
Color::println('hello world', 'success');
echo Color::render('hello world', 'success');

use Toolkit\Cli\Util\Clog;
// run: php example/log.php
foreach (Clog::getLevelNames() as $level) {
Clog::log($level, "example log $level message");
}

use Toolkit\Cli\CliApp;
// run:
// php example/mycmd
// php example/mycmd -i abc --lon def ag1 ag2 ag3
$cmd = CliApp::new('cmd1', 'this is my cli application');
$cmd->addOpt('info', 'i', 'Output some information');
$cmd->addOpt('long-option-name', 'lon', 'this is a long option for command');
$cmd->addArg('arg1', 'this is first argument');
$cmd->setHandler(function (CliApp $cmd) {
var_dump($cmd->getOpts(), $cmd->getArgs(), $cmd->getRemainArgs());
});
$cmd->run();

examples:
use Toolkit\Cli\Util\Terminal;
Terminal::forward(3);
Terminal::backward(2);
Terminal::clearLine();
Terminal::clearScreen();
/**
* @method static showCursor()
* @method static hideCursor()
* @method static savePosition()
* @method static restorePosition()
* @method static toTop()
* @method static toColumn(int $step)
* @method static up(int $step = 1)
* @method static down(int $step = 1)
* @method static forward(int $step = 1)
* @method static backward(int $step = 1) Moves the terminal cursor backward
* @method static toPrevNLineStart(int $step = 1)
* @method static toNextNLineStart(int $step = 1)
* @method static coordinate(int $col, int $row = 0)
* @method static clearScreen()
* @method static clearLine()
* @method static clearToScreenBegin()
* @method static clearToScreenEnd()
* @method static scrollUp(int $step = 1)
* @method static scrollDown(int $step = 1)
* @method static showSecondaryScreen()
* @method static showPrimaryScreen()
*/
This is inspire
jakub-onderka/php-console-highlighter
use Toolkit\Cli\Util\Highlighter;
// this is an comment
$rendered = Highlighter::create()->highlight(file_get_contents(__FILE__));
\Toolkit\Cli\Cli::write($rendered);

use Toolkit\Cli\Download;
$url = 'http://no2.php.net/distributions/php-7.2.5.tar.bz2';
$down = Download::file($url, '');
// $down->setShowType('bar');
// $down->setDebug(true);
$down->start();
Progress bar

Progress text

PHP
100.0%