Babysit:帮你看住所有进程的终端神器
如果你能控制任何一个正在运行的进程会怎样?
跑脚本的时候、跑构建流程的时候、或者让 AI 编程助手干活的时候,你是不是经常遇到这种情况:要么干等着它跑完,要么直接 kill 掉重跑?
但如果能实时操作它呢?
babysit 这个工具就能做到。它把任何命令包进一个伪终端(PTY),然后从外部完全掌控它的运行。说白了,就是给你配了一个终端的遥控器。
几个核心能力
实时看输出 babysit 会把命令的输出流式推出来,你随时能看到跑了多少、出了什么结果。不用一直盯着交互式终端盯着看。长时间跑的任务配个日志系统,简直不要太舒服。
随时给它发指令 脚本在等你输入?想模拟用户操作?给正在跑的进程按键?没问题,程序化就能搞定。再也不用面对"脚本卡在等待输入,我却什么都做不了"这种尴尬局面。
给屏幕截个图 这个功能说实话挺意外的。如果你跑的命令有视觉输出,可以直接抓图保存下来。调试 TUI 应用、记录终端操作流程,都用得上。
随时挂载和卸载 启动一个进程,然后断开连接,之后还能再连回去。有点类似 screen 或者 tmux 的玩法,但完全是从外部程序控制的。你的脚本本身就能当会话管理器用。
为什么 AI 编程助手会喜欢它
这部分最有意思。AI 编程助手经常要运行命令、看输出、处理报错或者响应提示。传统做法是这样的:
- 运行命令,然后祈祷一切顺利
- 等出错了再去看日志
- 助手卡住了就得人工介入
用 babysit,AI 助手可以:
- 实时监控命令输出
- 察觉命令在等输入
- 自动响应提示或报错
- 截取终端状态用于调试
这就形成了一个反馈闭环。AI 助手能处理那些以前必须有人盯着才能完成的复杂交互流程了。
不只是 AI 助手能用
- DevOps 脚本:监控部署过程,自动应对各种确认提示
- 测试框架:控制那些需要交互的测试运行器
- 构建系统:观察构建进度,必要时介入干预
- 远程调试:挂载到其他机器上跑的进程
- 自动化流水线:根据实时输出动态调整工作流程
怎么上手
项目在 GitHub 上:github.com/yusukeshib/babysit
它的定位是作为底层组件被其他工具集成,不是直接让你手动敲命令用的。所以如果你想搭建更复杂的自动化系统,它是个好基础。
往大了说
像 babysit 这类工具代表了一种趋势:自动化正在变得更智能、更灵活。以前那些假设一切都会按计划进行的脆弱脚本,我们可以换成能观察、能适应、能应对实际情况的系统。
不管你是在做 AI 编程工作流、DevOps 自动化,还是单纯想更自如地掌控自己的终端会话,babysit 这个思路都值得了解一下。
你遇到过哪些需要交互式操作终端的难题?有没有想过要是能远程控制就好了?