بنقرة واحدة
macos-screenshot
Capture and send screenshots from remote macOS nodes without context bloat
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Capture and send screenshots from remote macOS nodes without context bloat
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | macos-screenshot |
| allowed-tools | nodes, exec, message |
| description | Capture and send screenshots from remote macOS nodes without context bloat |
Capture screenshots from remote macOS nodes and send them to users. Avoids context bloat by using proper file-based workflows instead of base64 encoding.
# WRONG: Base64 encoding a screenshot will blow up your context
nodes.run: base64 -i /tmp/screenshot.png # 200K+ tokens = instant failure
Use screen_record with minimal duration (1ms) to capture a single frame:
{
"action": "screen_record",
"node": "<node-id>",
"durationMs": 1
}
Returns: FILE:/tmp/openclaw-screen-record-<uuid>.mp4
Use ffmpeg on the gateway host to extract a PNG frame:
ffmpeg -i /tmp/openclaw-screen-record-<uuid>.mp4 \
-frames:v 1 -update 1 -y /tmp/screenshot.png 2>/dev/null
Send the image file directly via the message tool:
{
"action": "send",
"channel": "telegram",
"target": "<chat-id>",
"media": "/tmp/screenshot.png"
}
# 1. Capture
result = nodes(action="screen_record", node="mac-xxx", durationMs=1)
# Returns: FILE:/tmp/openclaw-screen-record-abc123.mp4
# 2. Extract frame
exec("ffmpeg -i /tmp/openclaw-screen-record-abc123.mp4 -frames:v 1 -update 1 -y /tmp/mac-ss.png 2>/dev/null")
# 3. Send to user
message(action="send", channel="telegram", target="123456", media="/tmp/mac-ss.png")
To analyze what's on screen, use the image tool after extraction:
{
"image": "/tmp/screenshot.png",
"prompt": "Describe what's visible on this macOS screen"
}
Find available macOS nodes:
{
"action": "status"
}
Look for nodes with platform: "macos" and connected: true.
| Issue | Cause | Fix |
|---|---|---|
| Context overflow (200K+) | Used base64 encoding | Use file-based workflow |
screen_record timeout | Node disconnected | Check nodes status |
| ffmpeg not found | Missing on gateway | Install ffmpeg |
| Empty/black screenshot | Screen locked | Unlock Mac first |
media parameterTurn complex work into a goal-first plan with parallel agents and synthesized results
Interview user in-depth to create a detailed spec
Generate changeset entries following Changesets semantics
Validate commit messages against conventional commit format
Create GitHub PRs with proper formatting, labeling, and quality checks
Apply labels to PRs based on conventional commit types