PHPackages                             laranail/console - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. laranail/console

ActiveLibrary[CLI &amp; Console](/categories/cli)

laranail/console
================

A Rich-class console toolkit for Laravel — fluent output formatter, spinners, progress bars, boxes, trees and tables, plus a fluent prompts/forms layer with validators.

v0.1.0(yesterday)040↑2825%[4 PRs](https://github.com/laranail/console/pulls)MITPHPPHP ^8.3 || ^8.4 || ^8.5CI passing

Since Jun 18Pushed todayCompare

[ Source](https://github.com/laranail/console)[ Packagist](https://packagist.org/packages/laranail/console)[ Docs](https://opensource.simtabi.com/console/)[ RSS](/packages/laranail-console/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (14)Versions (6)Used By (0)

laranail/console
================

[](#laranailconsole)

[![Latest version on Packagist](https://camo.githubusercontent.com/014e2a39e81b743c962996e086abce26aa22ce94e4a976c3f8527aea75639c17/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c6172616e61696c2f636f6e736f6c652e737667)](https://packagist.org/packages/laranail/console)[![Tests](https://github.com/laranail/console/actions/workflows/tests.yml/badge.svg)](https://github.com/laranail/console/actions/workflows/tests.yml)[![Static analysis](https://github.com/laranail/console/actions/workflows/static-analysis.yml/badge.svg)](https://github.com/laranail/console/actions/workflows/static-analysis.yml)[![License: MIT](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)

A Rich-class console toolkit for Laravel. One package, two namespaces:

- **`Console\Tools`** — terminal **output**: a fluent formatter, spinners, flavoured progress bars, boxes, trees, tables, banners, gauges, sparklines, a multi-task progress widget, plus an enhanced Artisan command base.
- **`Console\Prompter`** — terminal **input**: a fluent wrapper over `laravel/prompts` with a form builder and 25+ validators.

Targets PHP `^8.3` (8.3–8.5) on Laravel `^13`.

Install
-------

[](#install)

```
composer require laranail/console
```

The service provider, the `Console` and `Prompter` facades, and the global `prompter()` helper are auto-discovered. Publish the config and language files if you want to customise them:

```
php artisan vendor:publish --tag=console-config
php artisan vendor:publish --tag=console-lang
```

Quick start
-----------

[](#quick-start)

```
use Simtabi\Laranail\Console\Facades\Console;

// Output
echo Console::status()->success('Build complete');
echo Console::box(['Name: app', 'Env:  prod'])->title('Config')->render();
echo Console::tree('project')->child('src', fn ($t) => $t->child('Console'))->render();
echo Console::gauge(72, 100)->label('Disk')->showValue()->render();

Console::spinner('Compiling…')->run(fn () => compile());

$bar = Console::progress(max: count($items))->format('detailed')->glyphs('blocks');
$bar->start();
foreach ($items as $item) { process($item); $bar->advance(); }
$bar->finish();

// Multi-task progress (exits non-zero if any task fails)
$tasks = Console::tasks();
$tasks->task('Compile', 100)->advance(100)->succeed();
exit($tasks->finish());

// Input
$name = Console::prompter()->text('Your name', required: true)->getResult();
```

`Console::ui()` returns the underlying fluent `ConsoleUIFormatter`; `Console::prompter()` returns the shared `Prompter`. The two sub-domains are fully decoupled — they only meet in the `Console` aggregator.

> Formatter and status strings carry Symfony Console markup (e.g. `…`). Write them through a console output — `$output->writeln(…)`or a command's `$this->line(…)` — so colour renders on a TTY and is stripped cleanly when piped. Plain widgets (box, tree, table, gauge…) `echo` fine.

Security &amp; portability
--------------------------

[](#security--portability)

- All rendered text is stripped of terminal control characters (no ANSI/`\r`output spoofing); terminal hyperlinks are limited to an allow-list of URL schemes.
- Validators are total — non-string input returns an error rather than throwing.
- Unicode glyphs and colour degrade gracefully: capabilities are detected from the terminal and honour `NO_COLOR`, `FORCE_COLOR`, `TERM` and locale; ASCII fallbacks are used when Unicode is unavailable.
- Signal handling is guarded by `ext-pcntl`, so commands run on Windows too.

Documentation
------------------------------------------------------

[](#documentation)

PageWhat it covers[Installation](docs/installation.md)Requirements, install, publishing[Architecture](docs/architecture.md)Umbrella, sub-domains, the manager[Configuration](docs/configuration.md)Every `config/console.php` key[Internationalization](docs/i18n.md)Translating console strings[Output formatter](docs/tools/formatting.md)Colours, badges, status, links[Output widgets](docs/tools/widgets.md)Spinner, progress, box, tree, table, gauge…[Commands](docs/tools/commands.md)The Artisan command base + services[Runners](docs/tools/runners.md)Conditional console execution[Notifications](docs/tools/notifications.md)The console channel[Observers &amp; events](docs/tools/observers-events.md)Command lifecycle hooks[Prompts &amp; forms](docs/tools/prompter.md)The Prompter, forms and validatorsLicense
-------

[](#license)

MIT © Simtabi LLC. See [LICENSE](LICENSE).

###  Health Score

42

—

FairBetter than 89% of packages

Maintenance100

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3108393?v=4)[Simtabi](/maintainers/simtabi)[@simtabi](https://github.com/simtabi)

---

Top Contributors

[![imanimanyara](https://avatars.githubusercontent.com/u/19682005?v=4)](https://github.com/imanimanyara "imanimanyara (24 commits)")

---

Tags

consolelaravelossphppromptsformatterconsoleterminallaravelartisanFormsprogresstuispinnerpromptslaranail

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/laranail-console/health.svg)

```
[![Health](https://phpackages.com/badges/laranail-console/health.svg)](https://phpackages.com/packages/laranail-console)
```

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

9782.1M157](/packages/laravel-ai)[laravel/sail

Docker files for running a basic Laravel application.

1.9k199.2M1.2k](/packages/laravel-sail)[illuminate/console

The Illuminate Console package.

13045.3M6.2k](/packages/illuminate-console)[laravel/reverb

Laravel Reverb provides a real-time WebSocket communication backend for Laravel applications.

1.6k12.9M69](/packages/laravel-reverb)[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.1k91.3M279](/packages/laravel-horizon)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
