Laravel Prompts v0.3.15 is out! A ton of new primitives came out of building the Cloud CLI (+ some unreleased stuff 👀), so we decided to bake them in Prompts itself.
Let's take a look 🧵👇
Let's start with `task()`:
Run long processes with a live-updating spinner, scrolling log output, and stable success, warning, and error messages that stick around. Update the label as the task progresses.
The new `stream()` prompt is for streaming partial text to the terminal.
Automatic word wrapping, ANSI support, and a smooth fade-in effect built right in. Perfect for AI responses, real-time logs, or anything that arrives incrementally.
`autocomplete()` gives users type-ahead suggestions while still allowing them to enter any value. Pass a static array or a closure that filters dynamically based on what they've typed.
Great for config keys, file paths, or anything where you'd like to save the user some typing.
Select prompts now support a dynamic `info` message.
Pass a closure to the new `info` parameter and it receives the currently highlighted value - display pricing details, descriptions, IDs, or any contextual info that updates as the user navigates.
`title()` sets the terminal window/tab title.
Call it at each stage of a process so users can see status at a glance, even when the tab is in the background. Pass an empty string to reset it.
`notify()` sends native desktop notifications straight from your CLI.
Supports macOS (with subtitle and sound options) and Linux (with icon support). Perfect for long-running commands: kick off a deploy, switch tabs, and get a ping when it's done.