All tools

screen_record_start

Screen, windows & UI · macOS

Effect: write (strongest supported action). Status: gated.

Gated means the tool requires an installed app, a connected account, permission, or runtime availability. Check those requirements on the listed platform before using it.

macOS

Purpose

Begins a screen recording (ScreenCaptureKit) of a display, window, or region. Single active session in v1 — a second start returns already_recording. Returns a session_id used by record_marker and screen_record_stop. Requires Screen Recording permission; without it returns an explicit permission_required error, never a silent no-op.

Required inputs

Permissions and confirmation

No explicit confirmation parameter is exposed in this snapshot. This does not grant permission to act: obtain user authorization before any real action.

Full input schema — macOS
{
  "properties": {
    "fps": {
      "description": "Frames per second (default 60).",
      "type": "integer"
    },
    "output_path": {
      "description": "Where to write the .mov (default: temp file, returned by stop). Missing parent folders are created.",
      "type": "string"
    },
    "show_cursor": {
      "description": "Default true.",
      "type": "boolean"
    },
    "target": {
      "description": "What to capture.",
      "properties": {
        "display_id": {
          "description": "Required if kind=display.",
          "type": "string"
        },
        "kind": {
          "enum": [
            "display",
            "window",
            "region"
          ],
          "type": "string"
        },
        "region": {
          "description": "Required if kind=region: {x,y,w,h} global points.",
          "type": "object"
        },
        "window_id": {
          "description": "Required if kind=window.",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    }
  },
  "required": [
    "target"
  ],
  "type": "object"
}

Documentation example

Do not execute this example. These concrete inputs refer to a fictional demonstration dataset. Resolve real handles and obtain user authorization before any real call.

{
  "target": {
    "display_id": "1",
    "kind": "display"
  }
}