日常在终端里做开发,最打断节奏的瞬间之一,就是各种“确认提示”:
Would you like to run... (y/N)Proceed? (y/n)- 以及一些你非常确定“就是要继续”的交互
你当然可以手动敲 y,但当这种提示在一串流程里频繁出现时(安装依赖、初始化脚手架、跑脚本、批量命令),它就会变成一种“机械性阻塞”。
我最近在用一个小工具:AutoTerminal。它的目标很简单:识别终端输出中的特定提示,并按规则自动往 PTY 写入动作(比如 y\n);同时在你不想全自动时,也能让你“半自动地一键确认/取消”。
项目地址:
https://github.com/Immmmmmortal1/autoTerminal
先看效果
AutoTerminal 本质上就是一个“带规则引擎的终端窗口”,界面非常克制:右上角两个入口——Auto-Confirm 和 规则。
(图:主界面 + Auto-Confirm 开关)
当你在终端里遇到命中的提示时:
- Auto-Confirm 勾选:直接自动写入默认动作(常见就是
y\n) - Auto-Confirm 不勾选:弹出“手动确认”弹窗,你可以选:
确认:发送默认动作(例如y\n)停止(Ctrl+C):发送Ctrl+C发送输入:发送你填的内容(支持\\n/\\r/\\t转义)×:关闭弹窗,不发送任何内容,回到终端里自己手动输入
这套设计我很喜欢:自动化并不是“全自动”,而是“可随时降级为可控的人机协同”。
规则:contains / regex 两种方式
右上角点 规则 会打开规则弹窗。规则分两类:
- 内置规则(只读):展示当前内置的
Would you like to run...等规则 - 自定义规则:你可以新增规则,选择匹配方式并配置动作
(图:自定义识别规则弹窗)
自定义规则支持两种匹配:
contains:包含某段字符串就命中regex:正则命中(并可配置 flags,例如i)
每条规则核心就是两部分:
pattern:匹配条件action(写入 PTY):命中后写入什么(例如y\\n、yes\\n)
你可以把它理解为:“当终端输出出现 XX,就自动输入 YY”。
拖入路径:减少复制粘贴
AutoTerminal 还有一个很实用的小功能:从 Finder 拖文件/文件夹到窗口,会把路径插入终端(自动加引号)。
- 拖入后如果立刻按回车:会自动
cd到该路径 - 如果拖入的是文件:则进入文件所在目录
这对经常在项目目录/文件路径间跳来跳去的人来说,省了不少复制粘贴的动作。
快捷键
Cmd + N:打开新窗口
安装与启动
方式 1:开发模式运行
npm install
npm start
如果遇到闪退或无日志:
npm run start:debug
方式 2:直接用 App(无需 npm/Node)
如果你只想用,不想装 Node 环境,可以直接下载仓库里提交的安装包:
- Apple Silicon(M1/M2/M3):
dist/mac-arm64.zip - 解压后把
AutoTerminal.app拖进「应用程序」即可
如果 macOS 提示“已损坏/无法打开”(未签名应用很常见):
xattr -dr com.apple.quarantine "/Applications/AutoTerminal.app"
重要说明:请把它当成“带风险的效率工具”
README 里也明确提醒了:当前版本是简化版,暂未加回一些保护能力,例如:
- 高风险识别(密码、sudo、破坏性命令等)
- 更完善的去重/锁定策略
- 更丰富的提示类型与状态机
所以我的建议是:
- 先从“低风险、高确定性”的场景开始(例如脚手架确认、依赖安装确认)
- 规则尽量写得更精确(尤其是 regex)
- 需要的时候关掉
Auto-Confirm,用“手动确认弹窗”模式跑
最后:它适合谁?
如果你符合以下任意一条,AutoTerminal 会很顺手:
- 你经常跑需要反复确认的脚本/命令
- 你想把一些交互提示收敛成“规则 + 动作”
- 你希望自动化,但又不想失去随时接管的控制权
项目地址再放一次:https://github.com/Immmmmmortal1/autoTerminal
喜欢的话给个start吧