Skip to content

macOS Control

MetadataValue
Categorymacos
Capabilitiesshell
Websitehttps://www.apple.com/macos/
  • image — from screenshot_display, screenshot_window

Read-only macOS inspection skill for local computer awareness. This first pass is intentionally limited to discovery and screenshots only.

  • system_profiler for installed apps and display metadata
  • ps for running processes
  • Swift with AppKit and CoreGraphics for display and window geometry
  • JXA via System Events for window state like minimized, fullscreen, hidden, and focused
  • screencapture for window and display PNG captures

For best results, grant:

  • Accessibility access to the host process so System Events can inspect windows
  • Screen Recording access so screencapture can capture window and display images

Without those permissions, list_windows and screenshot tools may return incomplete data or fail.

Returns installed applications from system_profiler SPApplicationsDataType -json.

run({ skill: "macos-control", tool: "list_apps", params: { limit: 10 } })

Returns stable process fields from ps, including pid, ppid, cpu_percent, memory_percent, and command.

run({ skill: "macos-control", tool: "list_processes", params: { limit: 25 } })

Returns display IDs, 1-based display indices for screenshot capture, geometry, scale, and relative position to the primary display.

run({ skill: "macos-control", tool: "list_displays" })

Returns useful user-facing windows only. Each result includes window_id when it could be matched to a CoreGraphics window and a capture_eligible flag for screenshot safety.

run({ skill: "macos-control", tool: "list_windows", params: { limit: 20 } })

Captures a PNG for a window_id returned by list_windows.

run({ skill: "macos-control", tool: "screenshot_window", params: { window_id: 12345 } })

Captures a PNG for a display. You can pass display_id, display_index, or neither to default to the primary display.

run({ skill: "macos-control", tool: "screenshot_display", params: { display_index: 1 } })

This skill currently does not mutate app or window state. It does not open, focus, move, resize, quit, or force-quit anything in this first pass.