Screen Capture
macOS 스크린샷, 웹캠, 화면 녹화 — 전체 화면, 영역, 윈도우, 클립보드, 다중 디스플레이, 비디오, 웹캠 캡처를 네이티브 macOS 도구로 수행합니다.
Default Active Utility
screen-capture는 모든 CLI-JAW 세션에서 기본적으로 활성화되어 있습니다. 별도 설치가 필요 없습니다. 스크린샷과 비디오에는 macOS 네이티브 screencapture를 사용하며, 웹캠 캡처에는 선택적으로 imagesnap을 사용합니다. 브라우저 전용 스크린샷은 CDP를 통해 캡처하는 cli-jaw browser screenshot을 사용하는 것이 좋습니다.
빠른 참조
| 스킬 이름 | screen-capture |
| 카테고리 | Utility |
| 기본 활성화 | 예 — 내장되어 있으며 항상 사용 가능 |
| SKILL.md 경로 | ~/.cli-jaw/skills/screen-capture/SKILL.md |
| 주요 도구 | screencapture (macOS 내장) |
| 웹캠 도구 | imagesnap (선택 사항, Homebrew를 통해 설치) |
| 플랫폼 | macOS 전용 |
| 출력 형식 | PNG (기본값), JPEG, PDF, TIFF, MOV (비디오) |
| 필요 권한 | 시스템 설정 > 개인정보 보호 > 화면 기록 |
| 관련 스킬 | vision-click, browser, desktop-control |
빠른 시작
바로 시작할 수 있는 세 가지 명령어입니다:
# Full screen capture (silent, no shutter sound)
screencapture -x ~/screenshot.png
# Interactive region selection
screencapture -i ~/selection.png
# Capture directly to clipboard
screencapture -c
명령어
전체 화면
전체 디스플레이를 캡처합니다. 셔터 소리를 끄려면 -x 플래그를 사용하고, 카운트다운 지연을 설정하려면 -T를 사용합니다.
# Silent full screen
screencapture -x ~/screenshot.png
# Full screen with shutter sound
screencapture ~/screenshot.png
# 3-second delay before capture
screencapture -T 3 ~/screenshot.png
영역 및 윈도우
대화형으로 특정 영역을 선택하거나 정확한 좌표로 지정합니다.
# Interactive: drag to select a region
screencapture -i ~/region.png
# Interactive: click to select a window
screencapture -iW ~/window.png
# Specific coordinates (x, y, width, height)
screencapture -R 0,0,1280,720 ~/region.png
특정 애플리케이션 윈도우
AppleScript를 통해 윈도우 ID를 확인하여 특정 애플리케이션 윈도우를 캡처합니다. 사용자 상호작용 없이 특정 앱을 캡처해야 하는 자동화 파이프라인에 유용합니다.
# Capture Google Chrome window
screencapture -l$(osascript -e 'tell app "Google Chrome" to id of window 1') ~/chrome.png
# Capture Safari window
screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') ~/safari.png
# Capture the frontmost window of whatever app is active
screencapture -l$(osascript -e 'tell app "System Events" to id of first window of (first process whose frontmost is true)') ~/front.png
-l 플래그는 CGWindowID를 받습니다. AppleScript 표현식 tell app "AppName" to id of window 1이 올바른 ID를 반환합니다. 앱에 여러 윈도우가 있는 경우 window 1을 window 2 등으로 변경하면 됩니다.
클립보드
파일 대신 시스템 클립보드로 캡처합니다. 채팅이나 다른 앱에 빠르게 붙여넣기할 때 유용합니다.
# Full screen to clipboard
screencapture -c
# Region select to clipboard
screencapture -ic
다중 디스플레이
디스플레이 번호를 지정하거나 모든 디스플레이를 한 번에 캡처하여 멀티 모니터 환경을 처리합니다.
# One file per display (auto-creates screen1.png, screen2.png, ...)
screencapture ~/screen1.png ~/screen2.png
# Main display only
screencapture -D 1 ~/main.png
# Secondary display
screencapture -D 2 ~/secondary.png
비디오 녹화
화면을 MOV 비디오로 녹화합니다. 시간 제한 녹화에는 -V와 함께 초 단위 시간을 지정하고, 수동 중지 녹화에는 -v를 사용합니다.
# Record screen video (stop with Ctrl+C)
screencapture -v ~/recording.mov
# Record exactly 10 seconds
screencapture -V 10 ~/recording.mov
웹캠 캡처
웹캠 캡처에는 선택적 Homebrew 의존성인 imagesnap이 필요합니다. FaceTime 카메라 또는 연결된 USB 카메라에서 정지 이미지를 캡처합니다.
# Install imagesnap
brew install imagesnap
# Take a photo from the default camera
imagesnap ~/camera.png
# 2-second warmup for better image quality (recommended)
imagesnap -w 2 ~/camera.png
# Use a specific camera by name
imagesnap -d "FaceTime HD Camera" ~/camera.png
# List all available cameras
imagesnap -l
-w 2(또는 그 이상)를 사용하세요. 워밍업 없이는 첫 프레임이 어둡거나 색상이 왜곡되는 경우가 많습니다.
출력 형식
이미지 형식을 지정하려면 -t 플래그를 사용합니다. 기본값은 PNG입니다.
# PNG (default, lossless)
screencapture -t png ~/screenshot.png
# JPEG (smaller file size, lossy)
screencapture -t jpg ~/screenshot.jpg
# PDF (vector-friendly, useful for documents)
screencapture -t pdf ~/screenshot.pdf
# TIFF (high quality, large file size)
screencapture -t tiff ~/screenshot.tiff
플래그 참조
이 스킬에서 사용하는 모든 screencapture 플래그의 전체 참조입니다.
| 플래그 | 설명 | 예시 |
|---|---|---|
-x | 무음 모드 (셔터 소리 끔) | screencapture -x out.png |
-i | 대화형 선택 모드 (영역 드래그 또는 Space 키로 윈도우 선택) | 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, 또는 tiff | screencapture -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로 애플리케이션을 포그라운드로 가져온 후, 렌더링을 기다린 다음 캡처합니다.
# Activate Finder, wait, then capture
osascript -e 'tell app "Finder" to activate'
sleep 0.5
screencapture -x ~/finder.png
캡처 및 분석
스크린샷을 찍고 즉시 에이전트의 비전 모델에 전달하여 분석합니다. 이것은 vision-click과 desktop-control에서 사용하는 패턴입니다.
# In a CLI-JAW session, just say:
"화면 캡처해서 뭐가 보이는지 설명해줘"
# The agent runs:
screencapture -x /tmp/screen.png
# Then reads the image and describes its contents
타이머 캡처로 UI 상태 기록
캡처가 실행되기 전에 특정 UI 상태(예: 드롭다운 열기, 툴팁 위에 마우스 올리기)를 설정할 시간을 확보하기 위해 지연 플래그를 사용합니다.
# 5-second delay: enough time to open a menu
screencapture -T 5 -x ~/menu-state.png
다중 디스플레이 문서화
작업 환경 문서화나 버그 리포트를 위해 모든 모니터를 한 번에 캡처합니다.
# Captures one PNG per connected display
screencapture ~/display-main.png ~/display-secondary.png
의존성
핵심 screencapture 명령어는 macOS에 내장되어 있어 별도 설치가 필요 없습니다. 웹캠 캡처에는 선택적 Homebrew 패키지 하나가 필요합니다.
built-in (macOS)
brew install imagesnap
설치 명령어
# Webcam capture (optional)
brew install imagesnap
# Verify installation
imagesnap -l # Lists available cameras
which screencapture # Should print /usr/sbin/screencapture
규칙 및 동작
screen-capture 스킬이 활성화되면 에이전트는 다음 규칙을 따릅니다:
| 규칙 | 상세 내용 |
|---|---|
| 기본 캡처 방법 | 도구별 캡처(Figma, Playwright, CDP)를 사용할 수 없을 때 screencapture를 기본으로 사용합니다. |
| 브라우저 스크린샷 | 웹 페이지에는 cli-jaw browser screenshot을 우선 사용합니다 (Chrome DevTools Protocol을 통해 픽셀 단위로 정확한 캡처). |
| 무음 모드 | 프로그래밍 방식의 캡처에서는 셔터 소리를 끄기 위해 항상 -x 플래그를 사용합니다. |
| 웹캠 워밍업 | 더 나은 이미지 품질을 위해 imagesnap에서 항상 -w 2 이상을 사용합니다. |
| 개인정보 보호 권한 | 화면 기록 권한이 필요합니다 (시스템 설정 > 개인정보 보호 > 화면 기록). 권한이 없으면 에이전트가 경고합니다. |
| 임시 파일 정리 | 분석용으로 촬영된 스크린샷(명시적으로 저장하지 않은 것)은 사용 후 정리해야 합니다. |
"~해줘" 사용 예시
자연어로 화면 캡처 작업을 요청하는 실제 사용 예시입니다. 한국어와 영어 모두 사용할 수 있습니다.
screencapture -x로 전체 화면을 무음으로 캡처하고 저장합니다. 에이전트가 결과 이미지를 읽어 성공적으로 캡처되었는지 확인합니다. 가장 간단하고 흔한 사용법입니다.screencapture -l로 해당 윈도우를 캡처한 다음, 비전 모델로 이미지를 분석하여 로그인 페이지가 올바르게 렌더링되는지 검증합니다. 캡처 + 시각적 QA를 결합합니다.imagesnap -w 2를 사용하여 적절한 워밍업 시간으로 웹캠 사진을 캡처합니다. 결과 이미지는 얼굴 감지나 신원 확인 워크플로우를 위해 다른 스킬(예: 비전 분석)에 전달할 수 있습니다.screencapture -V 10 ~/recording.mov로 10초 화면 비디오를 녹화합니다. 버그 재현 과정 문서화, UI 애니메이션 리뷰, 빠른 데모 클립 생성에 유용합니다.screencapture -D 2 -c로 보조 디스플레이를 대상으로 하여 캡처를 클립보드로 직접 전송합니다. 채팅, 문서, 이미지 편집기에 바로 붙여넣기할 수 있습니다.관련 스킬 비교
CLI-JAW에는 시각적 캡처와 관련된 여러 스킬이 있습니다. 작업에 맞는 올바른 도구를 선택하세요:
screen-capture | browser | desktop-control | vision-click | |
|---|---|---|---|---|
| 주요 기능 | 네이티브 macOS 스크린샷 및 녹화 | CDP 기반 브라우저 자동화 | 데스크톱 + 브라우저 통합 자동화 | 비전 기반 클릭 대상 지정 |
| 적합한 용도 | 빠른 캡처, 다중 디스플레이, 비디오, 웹캠 | 웹 페이지 스크린샷, DOM 상호작용 | 크로스 앱 워크플로우, 하이브리드 대상 | 시각적 인식으로 UI 요소 클릭 |
| 캡처 방법 | screencapture CLI | Chrome DevTools Protocol | CDP + Computer Use | 스크린샷 + 좌표 매핑 |
| 브라우저 필요 여부 | 아니오 | 예 (cli-jaw server) | 대상에 따라 다름 | 아니오 |
| 우선 사용 시기 | 브라우저 불필요, 시스템 수준 캡처, 비디오, 웹캠 | 웹 페이지 (픽셀 단위 정확도) | 복잡한 다중 앱 자동화 | 화면 상의 요소 클릭 |
screen-capture를 사용하세요. 웹 페이지에는 browser screenshot을 사용하세요. 데스크톱 앱을 캡처하면서 동시에 상호작용해야 할 때는 desktop-control을 사용하세요.
문제 해결
화면 기록 권한 거부
screencapture가 빈 화면이나 완전히 검은 이미지를 생성하는 경우, 터미널 앱(Terminal.app, iTerm2, 또는 CLI-JAW Electron 앱)에 화면 기록 권한이 없을 가능성이 높습니다.
# Fix: Grant permission in System Settings
# System Settings > Privacy & Security > Screen Recording
# Enable your terminal application
# Restart the terminal after granting permission
imagesnap을 찾을 수 없음
imagesnap이 설치되어 있지 않으면 웹캠 캡처 명령이 실패합니다. 이것은 선택적 의존성입니다.
# Install via Homebrew
brew install imagesnap
# Verify
imagesnap -l
# Expected: lists available cameras (e.g., "FaceTime HD Camera")
웹캠 이미지가 어둡거나 흐릿함
카메라 센서는 조정 시간이 필요합니다. 항상 워밍업 지연을 포함하세요:
# Bad: no warmup, likely dark/blurry
imagesnap ~/photo.png
# Good: 2-second warmup for proper exposure
imagesnap -w 2 ~/photo.png
# Better: 3-second warmup for low-light conditions
imagesnap -w 3 ~/photo.png
다중 디스플레이 캡처 시 파일이 하나만 저장됨
여러 디스플레이를 캡처할 때는 디스플레이당 하나의 출력 파일명을 제공해야 합니다:
# Wrong: only captures the main display
screencapture ~/screenshot.png
# Right: one filename per connected display
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/-V | MOV 형식, 시간 제한 또는 수동 중지 |
| 웹캠 사진 | imagesnap | 선택적 의존성, 워밍업에 -w 2 사용 |
| 형식 제어 | screencapture -t | PNG (기본값), JPEG, PDF, TIFF |