Screen Capture

macOS 屏幕截图、摄像头和屏幕录制 — 支持全屏、区域、窗口、剪贴板、多显示器、视频和摄像头捕获,使用 macOS 原生工具。

默认启用 实用工具

内置技能: screen-capture 在每个 CLI-JAW 会话中默认启用,无需安装。它使用 macOS 原生的 screencapture 进行屏幕截图和视频录制,以及可选的 imagesnap 进行摄像头捕获。如果需要浏览器专用截图,建议使用通过 CDP 捕获的 cli-jaw browser screenshot

快速参考

技能名称screen-capture
分类实用工具
默认启用是 — 内置,始终可用
SKILL.md 路径~/.cli-jaw/skills/screen-capture/SKILL.md
主要工具screencapture(macOS 内置)
摄像头工具imagesnap(可选,通过 Homebrew 安装)
平台仅限 macOS
输出格式PNG(默认)、JPEG、PDF、TIFF、MOV(视频)
所需权限系统设置 > 隐私 > 屏幕录制
相关技能vision-clickbrowserdesktop-control

快速开始

三条命令即可立即上手:

# 全屏捕获(静音,无快门声)
screencapture -x ~/screenshot.png

# 交互式区域选择
screencapture -i ~/selection.png

# 直接捕获到剪贴板
screencapture -c

命令

全屏

捕获整个显示器画面。使用 -x 进入静音模式(抑制快门声),使用 -T 设置倒计时延迟。

# 静音全屏
screencapture -x ~/screenshot.png

# 全屏(带快门声)
screencapture ~/screenshot.png

# 3 秒延迟后捕获
screencapture -T 3 ~/screenshot.png

区域和窗口

通过交互方式或精确坐标选择特定区域。

# 交互:拖动选择区域
screencapture -i ~/region.png

# 交互:点击选择窗口
screencapture -iW ~/window.png

# 指定坐标(x, y, 宽, 高)
screencapture -R 0,0,1280,720 ~/region.png

指定应用窗口

通过 AppleScript 解析窗口 ID 来捕获指定应用的窗口。这在自动化流水线中非常有用,可以在无需用户交互的情况下捕获特定应用。

# 捕获 Google Chrome 窗口
screencapture -l$(osascript -e 'tell app "Google Chrome" to id of window 1') ~/chrome.png

# 捕获 Safari 窗口
screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') ~/safari.png

# 捕获当前活跃应用的最前窗口
screencapture -l$(osascript -e 'tell app "System Events" to id of first window of (first process whose frontmost is true)') ~/front.png
窗口 ID 解析: -l 标志接受一个 CGWindowID。AppleScript 表达式 tell app "AppName" to id of window 1 会返回正确的 ID。如果应用有多个窗口,将 window 1 改为 window 2 等。

剪贴板

捕获到系统剪贴板而非文件。适用于快速粘贴到聊天窗口或其他应用的工作流。

# 全屏捕获到剪贴板
screencapture -c

# 区域选择捕获到剪贴板
screencapture -ic

多显示器

通过指定显示器编号或一次性捕获所有显示器来处理多显示器设置。

# 每个显示器一个文件(自动创建 screen1.png、screen2.png 等)
screencapture ~/screen1.png ~/screen2.png

# 仅主显示器
screencapture -D 1 ~/main.png

# 副显示器
screencapture -D 2 ~/secondary.png

视频录制

将屏幕录制为 MOV 视频。使用 -V 加时长(秒)进行定时录制,或使用 -v 进行手动停止录制。

# 录制屏幕视频(按 Ctrl+C 停止)
screencapture -v ~/recording.mov

# 录制恰好 10 秒
screencapture -V 10 ~/recording.mov

摄像头捕获

摄像头捕获需要 imagesnap,这是一个可选的 Homebrew 依赖。它可以从 FaceTime 摄像头或任何已连接的 USB 摄像头捕获静态图像。

# 安装 imagesnap
brew install imagesnap

# 从默认摄像头拍摄照片
imagesnap ~/camera.png

# 2 秒预热以获得更好的图像质量(推荐)
imagesnap -w 2 ~/camera.png

# 通过名称指定摄像头
imagesnap -d "FaceTime HD Camera" ~/camera.png

# 列出所有可用摄像头
imagesnap -l
预热提示: 摄像头需要短暂的预热时间来调整曝光和白平衡。在生产环境中,务必使用 -w 2(或更高值)。不经过预热,第一帧通常会偏暗或色偏。

输出格式

使用 -t 标志指定图像格式。默认为 PNG。

# PNG(默认,无损)
screencapture -t png ~/screenshot.png

# JPEG(文件更小,有损)
screencapture -t jpg ~/screenshot.jpg

# PDF(矢量友好,适用于文档)
screencapture -t pdf ~/screenshot.pdf

# TIFF(高质量,文件较大)
screencapture -t tiff ~/screenshot.tiff

标志参考

本技能所使用的所有 screencapture 标志的完整参考。

标志描述示例
-x静音模式(无快门声)screencapture -x out.png
-i交互选择模式(拖动选区或按空格键选择窗口)screencapture -i out.png
-c将截图复制到剪贴板而非文件screencapture -c
-R x,y,w,h通过坐标捕获指定矩形区域screencapture -R 0,0,1280,720 out.png
-T seconds捕获前延迟 N 秒screencapture -T 3 out.png
-t format输出格式:png、jpg、pdf 或 tiffscreencapture -t jpg out.jpg
-l windowID通过 CGWindowID 捕获指定窗口screencapture -l12345 out.png
-D displayNum捕获指定显示器(1 = 主显示器)screencapture -D 2 out.png
-v录制屏幕视频(MOV)screencapture -v out.mov
-V seconds录制恰好 N 秒的视频screencapture -V 10 out.mov
-W以窗口选择模式启动(与 -i 组合使用)screencapture -iW out.png

常见工作流

捕获特定应用状态

通过 AppleScript 将应用切换到前台,等待其渲染完成,然后进行捕获。

# 激活 Finder,等待,然后捕获
osascript -e 'tell app "Finder" to activate'
sleep 0.5
screencapture -x ~/finder.png

捕获并分析

截取屏幕截图并立即传递给代理的视觉模型进行分析。这是 vision-clickdesktop-control 所使用的模式。

# 在 CLI-JAW 会话中,只需说:
"화면 캡처해서 뭐가 보이는지 설명해줘"

# 代理运行:
screencapture -x /tmp/screen.png
# 然后读取图像并描述其内容

定时捕获 UI 状态

使用延迟标志为设置特定 UI 状态(例如打开下拉菜单、悬停在工具提示上)留出时间,然后再触发捕获。

# 5 秒延迟:足够打开一个菜单
screencapture -T 5 -x ~/menu-state.png

多显示器文档

一次性捕获所有显示器,用于工作区文档记录或 Bug 报告。

# 每个已连接的显示器捕获一个 PNG
screencapture ~/display-main.png ~/display-secondary.png

依赖

核心的 screencapture 命令是 macOS 内置的 — 无需安装。摄像头捕获需要一个可选的 Homebrew 包。

screencapture 内置(macOS)
全屏、区域、窗口、剪贴板、多显示器和视频捕获。无需安装。
imagesnap brew install imagesnap
可选。从 FaceTime 或 USB 摄像头捕获静态图像。仅在需要摄像头相关任务时才需安装。

安装命令

# 摄像头捕获(可选)
brew install imagesnap

# 验证安装
imagesnap -l    # 列出可用摄像头
which screencapture    # 应输出 /usr/sbin/screencapture

规则和行为

screen-capture 技能处于活跃状态时,代理遵循以下规则:

规则详情
默认捕获方式当工具专用捕获(Figma、Playwright、CDP)不可用时,使用 screencapture 作为默认方式。
浏览器截图对于网页,建议使用 cli-jaw browser screenshot(通过 Chrome DevTools Protocol 捕获,像素级精确)。
静音模式在编程式捕获中始终使用 -x 标志以抑制快门声。
摄像头预热使用 imagesnap 时始终使用 -w 2 或更高值以获得更好的图像质量。
隐私权限需要屏幕录制权限(系统设置 > 隐私 > 屏幕录制)。如果权限缺失,代理会发出警告。
临时文件清理用于分析(非显式保存)的截图应在使用后清理。

"~해줌" 使用示例

自然语言触发屏幕捕获任务的实际示例。韩语和英语均可使用。

"지금 화면 스크린샷 찍어줌"
使用 screencapture -x 静音捕获全屏并保存。代理会读取生成的图像以确认捕获成功。这是最简单也最常见的用法。
"크롬 창 캠처해서 로그인 페이지 제대로 나오는지 확인해줌"
通过 AppleScript 解析 Chrome 的窗口 ID,使用 screencapture -l 捕获该窗口,然后利用视觉模型分析图像以验证登录页面是否正确渲染。结合了捕获与视觉 QA。
"웹캠 사진 찍어줌 — 얼굴 인식용"
使用 imagesnap -w 2 拍摄带有适当预热时间的摄像头照片。生成的图像可以传递给其他技能(如视觉分析)用于人脸检测或身份验证工作流。
"화면 록화 10초만 해줌 — 버그 재현 과정 기록용"
使用 screencapture -V 10 ~/recording.mov 录制 10 秒屏幕视频。适用于记录 Bug 复现步骤、UI 动画审查或创建快速演示片段。
"두번째 모니터 스크린샷 찍어서 클립보드에 복사해줌"
使用 screencapture -D 2 -c 捕获副显示器,将截图直接发送到剪贴板,以便立即粘贴到聊天窗口、文档或图像编辑器中。

与相关技能的比较

CLI-JAW 有多个涉及视觉捕获的技能。请根据需求选择合适的工具:

screen-capturebrowserdesktop-controlvision-click
侧重点macOS 原生截图和录屏基于 CDP 的浏览器自动化完整的桌面 + 浏览器自动化视觉引导的点击定位
最适合快速截图、多显示器、视频、摄像头网页截图、DOM 交互跨应用工作流、混合目标通过视觉识别点击 UI 元素
捕获方式screencapture CLIChrome DevTools ProtocolCDP + Computer Use截图 + 坐标映射
需要浏览器是(cli-jaw 服务器)取决于目标
何时优先使用无需浏览器、系统级捕获、视频、摄像头网页(像素级精确)复杂的多应用自动化点击屏幕上的元素
经验法则: 对于浏览器之外的任何内容或需要视频/摄像头时,使用 screen-capture。对于网页,使用 browser screenshot。当需要同时捕获和操控桌面应用时,使用 desktop-control

故障排除

屏幕录制权限被拒绝

如果 screencapture 生成了空白或全黑的图像,则终端应用(Terminal.app、iTerm2 或 CLI-JAW Electron 应用)可能缺少屏幕录制权限。

# 修复:在系统设置中授予权限
# 系统设置 > 隐私与安全性 > 屏幕录制
# 启用您的终端应用
# 授予权限后重启终端

找不到 imagesnap

如果未安装 imagesnap,摄像头捕获命令将会失败。它是一个可选依赖。

# 通过 Homebrew 安装
brew install imagesnap

# 验证
imagesnap -l
# 预期输出:列出可用摄像头(例如 "FaceTime HD Camera")

摄像头图像偏暗或模糊

摄像头传感器需要时间来调整。务必添加预热延迟:

# 不推荐:无预热,可能偏暗/模糊
imagesnap ~/photo.png

# 推荐:2 秒预热以获得正确曝光
imagesnap -w 2 ~/photo.png

# 更佳:低光环境下 3 秒预热
imagesnap -w 3 ~/photo.png

多显示器捕获只保存了一个文件

捕获多个显示器时,必须为每个显示器提供一个输出文件名:

# 错误:只捕获主显示器
screencapture ~/screenshot.png

# 正确:每个已连接的显示器一个文件名
screencapture ~/display1.png ~/display2.png

视频录制不停止

使用 screencapture -v(无时长限制)时,录制会一直持续直到被中断。使用 -V seconds 进行定时录制,或按 Ctrl+C 停止手动录制。

功能总结

功能工具备注
全屏捕获screencapture使用 -x 静音,使用 -T 延迟
区域选择screencapture -i交互拖选或使用 -R 指定坐标
窗口捕获screencapture -l通过 AppleScript 获取 CGWindowID
剪贴板捕获screencapture -c-i 组合实现区域到剪贴板
多显示器screencapture -D指定特定显示器或捕获全部
视频录制screencapture -v/-VMOV 格式,定时或手动停止
摄像头拍照imagesnap可选依赖,使用 -w 2 预热
格式控制screencapture -tPNG(默认)、JPEG、PDF、TIFF