Joe Tannenbaum(Laravel 官方工程师)分享,直接把 CLI 爱好者们看呆了:

“我们做 Cloud CLI 时搞出一堆新交互组件,索性直接塞进 Prompts 里了!”

一句话总结:
Laravel 把命令行从“上世纪 DOS 时代”直接拉到了 2026 年的现代 Web 体验。

不再是干巴巴的输入框、静态文字、等半天没反馈的进度条,而是动画、实时日志、桌面通知、流式输出、动态预览全都有了。

核心一览

下面直接上 7 个最常用也是最常痛的功能,看完你大概率会想立刻去造一个命令行应用。

  1. task() —— 长任务终于有“活的”进度条 + 实时日志
    以前跑迁移、部署、数据同步,只能 info('处理中...') 干等。
    现在 task() 一出,终端瞬间变身现代应用:

    • 转圈 spinner 实时转
    • 日志一行一行滚上去(像 npm install 那样)
    • 成功/失败消息永久固定在底部
    • 过程中还能动态改标题

    视频效果看一次就上头:日志像瀑布一样流,最后绿色的“部署成功!”静静躺在那,太治愈了。

  2. stream() —— AI 响应逐字打字,丝滑到爆炸
    配合 Laravel AI SDK,AI 生成内容不再是“等半天突然全吐出来”。
    stream() 支持淡入动画、自动换行、ANSI 颜色,完美模拟“AI 在你眼前实时思考打字”。

    想象一下:

$stream = stream();
foreach ($agent->generate() as $chunk) {
    $stream->append($chunk);
}
$stream->commit();  // 最后提交,完美收尾

写个 AI 辅助的代码审查命令,终端里 AI 一句一句给你分析 bug,爽到飞起。

  1. autocomplete() + 动态 info 面板
    输入时实时提示,还能允许自由输入。
    最绝的是:Select / Multiselect / Search 现在支持 info 闭包,选中哪个选项,右侧立刻弹出价格、描述、ID、预览图等动态信息。

    用户边看边选,体验直接起飞。以前要么纯文本,要么自己写 ncurses,现在一行代码就行。

  2. notify() —— 原生桌面通知 + 声音
    部署完去刷手机?没问题。
    后台任务跑完,macOS 直接弹窗 + 声音提示“部署成功!”
    Linux 还支持自定义图标。
    这功能一出,CLI 彻底从“后台黑盒”变成“能跟你互动的现代应用”。

  3. title() —— 实时改终端窗口标题
    后台跑任务时,终端标题自动变成“部署中… 45%” → “测试通过” → “上线成功”。
    切出去看代码时一眼就能看到进度,太人性化了。

  4. Form 导航 + CTRL+U 返回修改
    多步表单现在支持上下切换、CTRL+U 清空当前字段返回上一步。
    体验和现代 Web 表单几乎一模一样。

  5. 内置测试支持 + Pest/PHPUnit 友好
    所有提示都能被 mock,写测试时再也不用手动模拟输入了。

为什么这次更新这么香?

以前写 CLI 总觉得“原始”“丑”“没反馈”。
现在 Laravel Prompts 把浏览器里好用的交互(占位符、实时验证、动态提示、流式输出、桌面通知)全部搬到命令行。

尤其是配合 Laravel 13 的 AI SDK,你现在可以轻松写出:

  • AI 驱动的部署工具(实时日志 + 通知)
  • 智能配置向导(动态预览 + autocomplete)
  • 带流式输出的代码审查脚本
  • 实时监控 + 桌面弹窗的运维命令

一句话总结:
Laravel 把 CLI 做成了现代应用该有的样子。

快速上手(Laravel 13 已内置)

# Laravel 项目直接用
php artisan make:command MyAwesomeCommand

# 非 Laravel 项目
composer require laravel/prompts

Joe 在最后说:“我们想让大家能轻松构建强大、智能的 CLI 应用,有什么需求尽管提!”

完整文档(强烈建议看视频示例):https://laravel.com/docs/13.x/prompts
原推: https://x.com/joetannenbaum/status/2034297219612914169