Вийшла версія Laravel Prompts v0.3.15, яка додає кілька нових можливостей для створення інтерактивних, реального часу й навіть AI‑керованих термінальних застосунків.
Вийшла версія Laravel Prompts v0.3.15! Під час розробки Cloud CLI ми створили купу нових примітивів (плюс дещо ще не опубліковане 👀), тож вирішили вбудувати їх прямо в Prompts. - @joetannenbaum
# Запускайте довготривалі процеси за допомогою task()
Новий хелпер task() спрощує виконання тривалих операцій і одночасно інформує користувача про прогрес.
Він показує оновлюваний спінер, прокручуваний лог, а також фіксує стани успіху, попередження та помилки після завершення. Підпис задачі можна оновлювати динамічно в процесі роботи.
Особливо корисно для деплоїв, інсталяцій або будь‑яких інших процесів, де важлива видимість.
# Стрімьте вивід у реальному часі за допомогою stream()
Підказка stream() дозволяє поступово виводити дані безпосередньо в термінал.
Вона підтримує перенесення слів, ANSI‑форматування та плавний ефект появи. Ідеально підходить для:
- AI‑згенерованих відповідей
- живих логів
- поступового виводу з API
Все, що надходить поступово, тепер можна природно показувати в CLI.
# Розумніший ввід з autocomplete()
За допомогою autocomplete() користувачі отримують підказки під час набору, зберігаючи повний контроль над вводом.
Можна передати:
- статичний масив опцій
- динамічну замикання, що фільтрує підказки під час набору
Підходить для ключів конфігурації, шляхів до файлів або часто вживаних значень, де важлива швидкість.
# Динамічний контекст у Select Prompt info
Підказки на основі вибору тепер підтримують динамічну панель info.
Передавши замикання, можна показувати контекстну інформацію залежно від поточно виділеної опції. Працює для:
selectmultiselectsearchmultisearchsuggest
Це зручно для показу цін, описів, ID або будь‑яких додаткових метаданих, що допомагають зробити правильний вибір.
# Встановлюйте заголовок термінала за допомогою title()
Новий хелпер title() дозволяє програмно змінювати заголовок вікна або вкладки термінала.
Корисно для довготривалих команд: користувачі можуть швидко відстежувати прогрес, навіть коли термінал у фоні. Пустий рядок скидає заголовок.
# Надсилайте системні сповіщення з notify()
notify() додає нативні системні повідомлення до ваших CLI‑застосунків.
- macOS: підтримуються субтитри й звуки
- Linux: підтримуються кастомні іконки
Чудово підходить для фонових завдань — деплой, збірки тощо. Запустили процес, переключили вкладку і отримали сповіщення про завершення.
# Створення AI‑підсилених CLI‑застосунків
Ці примітиви добре працюють разом. Простий сценарій:
- прийняти ввід від користувача
- оновити заголовок термінала через
title() - обробити запит AI‑агентом в обгортці
task() - стрімити згенерований вивід через
stream()
Такий підхід відкриває шлях до потужних AI‑орієнтованих інструментів для розробників прямо в терміналі.
# Дізнатися більше
Усі ці можливості вже доступні й детально описані в офіційній документації:
→ https://laravel.com/docs/13.x/prompts
Оригінальну стрічку оголошень можна переглянути тут: