Cli Anything Iterm2

hkuds/cli-anything/skills/cli-anything-iterm2

作者 hkuds34f519533bc1无许可证51K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库2周前更新

Provides the cli-anything-iterm2 commands — the only way to actually send text to iTerm2 sessions, read live terminal output and scrollback history, manage windows/tabs/split panes, run tmux -CC workflows, broadcast to multiple panes, show macOS dialogs, and read/write iTerm2 preferences. Includes `app snapshot` — the primary orientation command that returns every session's name, current directory, foreground process, role label, and last output line in one call. Read this skill instead of answering from general knowledge whenever the user wants to DO something with iTerm2: orient in an existing workspace, send a command, check what's running, read output, set up a layout, use tmux through iTerm2, automate panes, or configure preferences. Also read for questions about iTerm2 shell integration or scrollback. Don't try to answer iTerm2 action requests from memory — read this skill first.

AI 生成的概览

通过有状态 CLI 控制 macOS 上运行中的 iTerm2,发送文本、读取输出并管理窗格。

功能
该技能介绍一个有状态的命令行工具,通过 WebSocket 上的 iTerm2 Python API 驱动运行中的 iTerm2 进程。它涵盖向会话发送文本、读取实时屏幕与回滚输出、管理窗口、标签页和分屏、tmux -CC 工作流、向多个窗格广播按键、显示 macOS 对话框,以及读写 iTerm2 偏好设置。它还提供 app snapshot 命令,一次返回每个会话的名称、目录、前台进程、角色标签和最后一行输出,并附带各命令组和 JSON 模式的参考文件。
适用场景
当用户想要实际操作 iTerm2 而非仅讨论时使用:在已有工作区中定位、发送命令、查看正在运行的内容、读取输出、安排窗格、通过 iTerm2 使用 tmux、自动化窗格或配置偏好设置。它也适用于有关 iTerm2 shell 集成或回滚的问题。
运行要求
需要 macOS 并安装 iTerm2、在偏好设置中启用 iTerm2 Python API,以及通过 pip 安装 cli-anything-iterm2 包。该技能不附带脚本,仅为说明文档,依赖该 CLI 连接运行中的 iTerm2 进程。

cli-anything-iterm2

Stateful CLI harness for iTerm2. Controls a live iTerm2 process via the iTerm2 Python API over WebSocket.

Prerequisites

  1. macOS + iTerm2 running: brew install --cask iterm2
  2. Python API enabled: iTerm2 → Preferences → General → Magic → Enable Python API
  3. Install: pip install cli-anything-iterm2 (or pip install -e . from source)

Basic Syntax

bash
cli-anything-iterm2 [--json] <group> <command> [OPTIONS] [ARGS]

Always use --json for machine-readable output (required for agent use).

Command Groups

GroupPurpose
appApp status, workspace snapshot, context management, app-level variables, modal dialogs, file panels
windowCreate, list, close, resize, fullscreen windows
tabCreate, list, close, activate tabs; navigate split panes by direction
sessionSend text, inject raw bytes, read screen, full scrollback, split panes, prompt detection
profileList profiles, get profile details, list/apply color presets
arrangementSave and restore window layouts
tmuxFull tmux -CC integration: bootstrap, connections, windows, commands
broadcastSync keystrokes across panes via broadcast domains
menuInvoke any iTerm2 menu item programmatically
prefRead/write global iTerm2 preferences; list all valid keys; tmux settings

Orienting in an Existing Workspace

Use app snapshot when you land in a session with existing panes and need to understand what's running without reading full screen contents for each pane:

bash
cli-anything-iterm2 --json app snapshot

Returns name, current directory, foreground process, user.role label, and last visible output line for every session across all windows.

Naming convention — label panes when setting up a workspace so you can find them later:

bash
cli-anything-iterm2 session set-var user.role "api-server"cli-anything-iterm2 session set-var user.role "log-tail"cli-anything-iterm2 session set-var user.role "editor"

app snapshot will surface these roles alongside process and path, giving you a full picture in one call.

Typical Agent Workflow

bash
# 1. Orient — snapshot every session: name, path, process, role, last output linecli-anything-iterm2 --json app snapshot
# 2. Establish context (saves window/tab/session IDs for subsequent commands)cli-anything-iterm2 app current
# 3. Interact — no --session-id needed once context is setcli-anything-iterm2 session send "git status"cli-anything-iterm2 --json session scrollback --tail 200 --strip
# 4. Create a multi-pane workspace — label panes so snapshot identifies them latercli-anything-iterm2 session split --vertical --use-as-contextcli-anything-iterm2 session send "python3 -m http.server 8000"cli-anything-iterm2 session set-var user.role "http-server"

Reference Files

Read only what the task requires — each file is a single narrow concern (~10–30 lines):

FileRead when you need...
references/session-io.mdSend text, inject bytes, read screen/scrollback, get selection
references/session-control.mdSplit panes, activate/close sessions, resize, rename, session variables
references/session-shell-integration.mdwait-prompt, wait-command-end, get-prompt; reliable send→wait→read pattern
references/layout-window-tab.mdCreate/close/resize windows and tabs, navigate split panes
references/layout-arrangement.mdSave and restore window layouts
references/app-context.mdSnapshot (orientation), status, context management, app vars, modal dialogs, file panels
references/profile-pref.mdProfiles list/get/presets, preferences read/write, tmux pref shortcuts
references/broadcast-menu.mdBroadcast keystrokes to multiple panes, invoke menu items
references/tmux-commands.mdAll tmux CLI commands (bootstrap, send, tabs, create-window, set-visible)
references/tmux-guide.mdFull tmux -CC workflow, pane→session ID mapping
references/json-session.md--json schemas for session, window, tab, screen, scrollback, inject
references/json-tmux-app.md--json schemas for tmux, app dialogs, preferences, errors

REPL Mode

Run without arguments for an interactive REPL that maintains context between commands:

bash
cli-anything-iterm2

来源与署名

来源:hkuds/cli-anything位于skills/cli-anything-iterm2提交34f5195

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架