用途:cli-anything-iterm2 是 iTerm2 的有状态 CLI 封装,通过 iTerm2 Python API 经 WebSocket 控制正在运行的 iTerm2 进程,用于向会话发送文本、读取实时输出与回滚历史、管理窗口/标签/会话等。
前提条件:macOS 且 iTerm2 正在运行(brew install --cask iterm2);在 iTerm2 → Preferences → General → Magic 中启用 Python API;安装 pip install cli-anything-iterm2(或从源码 pip install -e .)。
基本语法:cli-anything-iterm2 [--json] <group> <command> [OPTIONS] [ARGS]。机器可读输出需始终加 --json。
命令组:app(状态、工作区快照、上下文、应用变量、模态对话框、文件面板)、window(创建/列出/关闭/调整/全屏)、tab(创建/列出/关闭/激活标签、按方向导航分屏)、session(发送文本、注入原始字节、读屏、完整回滚、分屏、提示检测)、profile(列出配置、详情、颜色预设)、arrangement(保存/恢复窗口布局)、tmux(完整 tmux -CC 集成)、broadcast(跨窗格同步按键)、menu(调用任意菜单项)、pref(读写全局偏好、列出有效键、tmux 设置)。
典型用法:先用 cli-anything-iterm2 --json app snapshot 获取每个会话的名称、当前目录、前台进程、user.role 标签和最后可见输出行;用 app current 建立上下文后,后续命令无需 --session-id;用 session send 发送命令,用 --json session scrollback --tail 200 --strip 读取回滚。可用 session set-var user.role 为窗格打标签,便于快照识别。
REPL 模式:不带参数运行可进入交互式 REPL,在命令间保持上下文。
限制:依赖 macOS 与运行中的 iTerm2,且需手动启用 Python API;具体平台兼容性、收费与效果等资料未提供。