Laravel has always been about developer happiness. From expressive syntax to elegant APIs, it’s built to make coding joyful. But one area often overlooked is the command-line interface (CLI). Artisan commands are powerful, yet historically they’ve been limited to simple text input and output.
Enter Laravel Prompts — a package that transforms Artisan into a developer-friendly UI layer. With recent updates in 2026, Prompts now supports interactive forms, searchable selects, progress bars, tables, and more. These features make CLI tooling feel closer to a browser UI, dramatically improving developer experience for scaffolding, setup wizards, and internal dev tools.
This blog explores the latest updates, provides detailed examples, and shows how Prompts can supercharge your CLI workflows.
🧰 What Is Laravel Prompts?
Laravel Prompts is a package that lets you build interactive, user-friendly command-line interfaces for Artisan commands. Instead of clunky readline() calls or manual echo formatting, you can now create polished, interactive experiences directly in the terminal.
Core features include:
- Text inputs with placeholders and validation
- Multi-select dropdowns
- Searchable selects
- Progress bars and spinners
- Tables and formatted output
- Conditional logic and form-like flows
It’s designed for developer tooling: package installers, project generators, setup wizards, and internal dashboards.
🚀 Key Updates in Laravel Prompts (2026)
1. Searchable Selects and Multi-Search
One of the most exciting updates is searchable selects. Instead of scrolling through long lists, users can type to filter options in real time.
Example:
$framework = select(
label: 'Choose your framework',
options: ['Laravel', 'Symfony', 'CodeIgniter', 'CakePHP', 'Yii'],
searchable: true
);
Use case:
Perfect for package installers or project generators where users need to pick from large lists (e.g., choosing a database driver or frontend framework).
2. Interactive Tables
Tables let you display structured data in a clean, readable format. This is ideal for listing migrations, jobs, or config options.
Example:
table(
headers: ['ID', 'Name', 'Status'],
rows: [
[1, 'ImportUsers', 'Pending'],
[2, 'SendEmails', 'Completed'],
[3, 'GenerateReports', 'Failed'],
]
);
Use case:
Great for internal dashboards, queue monitoring, or batch job summaries. Instead of dumping raw arrays, you can present data elegantly.
3. Progress Bars and Spinners
Long-running tasks can feel opaque. Progress bars and spinners provide visual feedback.
Example:
$bar = progressBar(total: 100);
foreach ($tasks as $task) {
// process task
$bar->advance();
}
Use case:
Ideal for file imports, API syncs, or batch processing. Developers can see progress instead of staring at a blank terminal.
4. Form-Like Input Flows
Prompts now supports chaining inputs together to build form-like flows in the terminal.
Example:
$name = text('Your name');
$email = text('Your email');
$password = password('Choose a password');
Use case:
Perfect for setup wizards, onboarding flows, or scaffolding new resources. Instead of multiple commands, you can guide users through a structured form.
5. Conditional Logic
Prompts can now include conditional logic, making flows dynamic.
Example:
$useCache = confirm('Enable caching?');
if ($useCache) {
$driver = select('Choose cache driver', ['redis', 'memcached', 'file']);
}
Use case:
Setup wizards that adapt based on user choices. For example, enabling caching only prompts for driver selection if the user says yes.
6. Color and Formatting
Prompts supports color output and formatting, making CLI tools more readable.
Example:
info('Setup complete!');
warning('Redis not detected, falling back to file cache.');
error('Migration failed!');
Use case:
Clear feedback in CLI tools. Errors stand out, warnings are highlighted, and success messages feel celebratory.
🧪 Testing and Fallbacks
Laravel Prompts supports testing via mocks and fallbacks for unsupported terminals. This ensures your CLI tools work across macOS, Linux, and Windows (including WSL).
Example:
Prompts::fake([
'Your name' => 'Sadique',
'Your email' => 'sadique@example.com',
]);
This allows you to test interactive commands without manual input.
🛠️ Dev Tooling Use Cases
| Tool Type | Laravel Prompts Feature | Example Use Case |
|---|---|---|
| Project scaffolding | Select + Text + Confirm | Create new Laravel modules interactively |
| Queue monitoring | Table + Spinner | Show job status and progress |
| Package installer | Multi-select + Search | Choose packages to install |
| Setup wizard | Form inputs + Validation | Configure .env or service credentials |
| Internal dashboards | Table + Color output | Display system health or logs |
📚 Real-World Examples
Example 1: Project Generator
You’re building a CLI tool to scaffold new Laravel projects.
$name = text('Project name');
$framework = select('Frontend framework', ['Vue', 'React', 'Alpine'], searchable: true);
$useAuth = confirm('Include authentication?');
info("Scaffolding project: {$name} with {$framework}");
This feels like a UI wizard — but in the terminal.
Example 2: Queue Monitoring
You want to monitor jobs in the queue.
table(
headers: ['Job', 'Status', 'Attempts'],
rows: [
['SendEmail', 'Pending', 0],
['GenerateReport', 'Failed', 3],
]
);
spinner('Processing jobs...');
Instead of raw logs, you get a clean dashboard.
Example 3: Package Installer
You’re building a CLI installer for a Laravel package.
$features = multiselect(
label: 'Choose features to install',
options: ['Auth', 'Billing', 'Notifications', 'API'],
searchable: true
);
info("Installing features: " . implode(', ', $features));
Interactive, user-friendly, and flexible.
🔮 The Bigger Picture
Laravel Prompts isn’t just about pretty CLI tools. It’s about developer experience. By making Artisan feel like a UI framework, Prompts empowers developers to build:
- SaaS CLI tools
- Internal dev utilities
- Package installers
- Interactive setup flows
It reduces friction, improves readability, and makes CLI tooling joyful.
Final Thoughts
Laravel Prompts has matured into a full CLI UX framework. With searchable selects, interactive tables, progress bars, and form-like flows, it transforms Artisan into a developer-friendly UI layer. Whether you’re building internal tools or public-facing packages, Prompts gives you the power to create elegant, interactive experiences right in the terminal.
If you’re serious about Laravel tooling in 2026, embracing Prompts is a must. It’s not just about inputs — it’s about making the CLI feel like a first-class interface.
