现在做一个“AI 终端”并不难:接一个大模型,在 Terminal 旁边放个聊天框,让它帮用户写 shell 命令,产品看起来立刻就有了 AI。但我们做 MaxTerm 时越来越确定,真正的问题根本不是终端里缺一个聊天窗口。运维每天浪费的时间,分散在记参数、找主机、切窗口、传文件、重复执行、过跳板机、确认风险这些不起眼的小事里。MaxTerm 想做的不是让 AI 陪你聊天,而是把这些原本割裂的动作重新放进一条工作流。
现在做“AI Terminal”,最容易的就是加一个聊天框
大模型已经能写 shell,甚至写得相当不错。所以如果今天想做一个 AI Terminal,技术路线其实很直接:左边保持原来的 Terminal,右边接一个模型,用户不会什么就问一句,模型生成命令,复制回去执行。
这当然比以前开浏览器查 Stack Overflow 方便,但问题也很明显。用户本来就在终端里工作,现在只是把“出去问 AI”变成了“在旁边问 AI”,原来的工作方式并没有真正改变。服务器还是要自己找,SSH 还是一台台连,文件还是切到另一个工具传,同一个命令还是复制到不同窗口执行,跳板机配置还是得自己维护。AI 解决了“这条命令怎么写”,却没有解决运维一天里剩下的大量琐事。
所以 MaxTerm 一开始就没有把自己定义成一个“带 AI 的聊天终端”。
它首先是一个完整的原生 SSH / SFTP 客户端,支持 macOS 和 Windows,然后再把 AI 塞进运维本来就在发生的位置。按下快捷键,用中文告诉它“看看这台机器磁盘为什么突然满了”,它可以生成命令、解释命令,也可以继续做多步诊断;但你不需要为了使用 AI 离开当前服务器,也不用在几个软件之间来回复制上下文。
这两种产品表面上都叫“AI Terminal”,实际想解决的根本不是同一个问题。
MaxTerm 先解决的,是一天要做几十遍的小事
真正每天管服务器的人,大概率不会因为少写一条 df -h 就觉得工具发生了革命。让人累的往往是一整天几十次重复的小动作。
几十台服务器要分类,生产和测试不能搞混;已经写好的 ~/.ssh/config 不想再重新录一遍;上传文件不想为了 SFTP 再打开一个软件;同一个检查命令需要在十台机器执行,也不想自己切十个标签页;有些服务器还得经过 A 跳 B 再到 C,临时需要端口转发的时候又开始翻以前写过的参数。
这些事情都不难,难就难在它们每天都会发生。
所以 MaxTerm 现在的书签和分组可以直接导入已有 SSH 配置,并用标签区分不同环境;SFTP 直接做成左右双栏,本地和远端在同一个窗口拖拽;ProxyJump 可以配置多级跳板;端口转发和 SOCKS5 也不需要重新手写 ssh -L、ssh -D。如果同一个任务要跑多台机器,可以直接勾选主机批量执行,最后把退出码和耗时汇总成结果;需要同时盯着几个实时会话时,则可以用多机广播,把同样的输入同步送进多个终端。
这些功能拆开看都不是什么新概念,但我们做 MaxTerm 时反而越来越在意这些“不性感”的地方。
因为工具真正能不能留下来,不取决于第一次打开的时候有多惊艳,而是用了一个月以后,你是不是已经不愿意回到以前那种一台一台登录、一遍一遍复制的状态。
AI 在 MaxTerm 里不是一个窗口,而是一种新的输入方式
MaxTerm 里 AI 最直接的入口其实非常简单。
用户说目标,AI 写命令。
不是让用户先想“我要用什么 Linux 命令”,然后再问 AI 参数怎么写,而是直接描述自己真正想完成的事情。比如“看看 8080 被哪个进程占了”“检查一下 Nginx 最近为什么总报 502”“把最近一天占磁盘最大的日志找出来”。
过去用户需要自己把这个目标翻译成具体命令,现在这一步可以交给 AI。MaxTerm 会把生成的 shell 命令先以预览形式展示出来,而不是直接塞进服务器执行;如果故障不是一条命令能查清楚,也可以继续进入多步诊断,用连续的只读检查逐步缩小问题范围。
这也是我们认为 AI 真正适合进入终端的地方。
不是让一个聊天机器人常驻在旁边等你提问,而是把终端原来要求人完成的那层“意图翻译”吃掉。人知道自己想干什么,就够了;至于到底是 journalctl 哪个参数、find 怎么组合、ss 后面跟什么 flag,这些东西本来就没有必要继续拿人的记忆力来解决。
MaxTerm 当前还内置了 17 个分组、120 多条 Docker、Kubernetes、Nginx、数据库、安全和网络诊断等常用命令片段。 AI 解决的是“不知道怎么写”,命令面板解决的是“明明以前写过,但又得重新找”。目的其实一样:少把人的时间浪费在机器完全可以记住的东西上。
但 MaxTerm 有一件事故意没有交给 AI:最后的执行权
这是我们做 MaxTerm 时非常明确的一条边界。
现在 Agent 产品很喜欢强调“自主执行”,一句话以后,AI 自己把整个任务跑完。从 Demo 来看,这当然最漂亮。但终端一旦连接生产服务器,很多事情不能用 Demo 的标准来判断。
查看日志和删除文件都是 shell 命令,但显然不是同一种风险;查询服务状态和重启数据库可能只差几个单词,后果却完全不同。所以 MaxTerm 没有把“模型觉得这条命令安全”当成最终判断,而是在真正落到主机之前增加了一层写在执行层的确定性护栏。低风险只读查询可以放行,删除、递归修改权限、停服务、改防火墙等操作必须人工确认,像格式化系统盘、rm -rf / 这类整机破坏行为则直接拒绝,连批准入口都不给。
这里有一个我们很坚持的原则:AI 可以越来越聪明,但安全不能建立在“希望它这次判断正确”上。
所以 MaxTerm 的风险控制并不只靠模型自己打一个标签。对于能够预演的操作,可以在正式执行前先 dry-run;涉及文件修改时,可以提前在远端生成带时间戳的快照;AI 执行过的命令还会进入带哈希和签名的审计链,出了问题之后能够追踪到底发生过什么。
这些东西可能没有“一个 Agent 自动管理一百台机器”听起来刺激,但如果 MaxTerm 真要进入企业生产环境,我们宁愿把时间花在这里。
生产运维要的从来不是刺激。
要的是出问题的时候能拦住,拦不住的时候能恢复,恢复不了的时候至少查得清。
还有一个我们不想拿来做噱头的点:它首先是你电脑里的工具
MaxTerm 的主机书签、SSH 密钥和命令记录都保存在用户自己的电脑上,产品本身不收集这些数据。macOS 和 Windows 都是原生客户端,下载安装以后就可以直接使用;AI 也不要求用户自己再准备一个 API Key。
我们没有把这一点单独包装成一个很宏大的概念,因为对终端来说,这本来就应该是一件正常的事情。
SSH 工具离公司的基础设施太近了。里面放的不是普通聊天记录,而是主机地址、密钥、内部环境、跳板关系以及每天真实执行过的命令。AI 进入以后,还会接触更多日志和系统上下文。这样的工具越智能,越应该对“什么东西留在本地”保持克制,而不是默认所有东西都围绕云账号重新组织。
所以 MaxTerm 不是为了做一个新的 SaaS 入口。
它还是那个装在自己电脑上、打开以后就去连接自己服务器的工具,只不过现在它开始能听懂你真正想做什么。
MaxTerm 最后想省下来的,不是几次敲键盘
如果一定要用一句话解释 MaxTerm,我现在反而不太愿意说它是“AI SSH 客户端”。
因为那很容易让人以为,我们只是在 SSH 上增加了一个大模型。
MaxTerm 真正想改变的是一条更长的链路:找到服务器、建立连接、理解问题、生成命令、判断风险、批量执行、传输文件、处理跳板、记录结果,最后在必要的时候让人做决定。
过去这些动作散落在不同工具里,也大量依赖人的记忆和复制粘贴。MaxTerm 现在做的,是把它们尽可能重新收进一个终端里:SSH 和 SFTP 不再分开,单机和多机不再重复操作,命令不用全部自己记,AI 可以理解自然语言,但最终执行权和风险边界仍然掌握在人手里。
所以我们并不想用 MaxTerm 证明“AI 终于可以替代运维”。
恰恰相反。
我们更想证明的是,当 AI 真正进入运维现场以后,人可以少做很多没有必要亲自做的事,但那些真正需要经验、责任和判断的部分,应该被保留下来。
一个好的 AI 终端,不应该只是比以前更会说话。
它应该让人一天少登录几次、少复制几十遍、少查几个参数、少切几个窗口,也少犯一次本来完全可以避免的错误。
这才是 MaxTerm 想重新做一遍终端的原因。