Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

For a new macOS app, use Apple’s ScreenCaptureKit framework. For a one-off screenshot, select the display, app, or window with an SCContentFilter, configure the capture, then call SCScreenshotManager. Your app also needs the user’s screen-recording permission and an NSScreenCaptureUsageDescription entry in its Info.plist. The example below captures a display and writes a PNG; check the API signatures and availability against the SDK you build with, because Apple’s documentation is versioned.

Choose the right macOS capture method

ScreenCaptureKit is Apple’s current framework for capturing screen content with control over displays, apps, and windows. It supports both continuous capture through SCStream and single-frame capture through SCScreenshotManager. If the feature needs one image, start with the screenshot manager; if it needs an ongoing sequence of frames, investigate SCStream instead. A single screenshot and a stream are different jobs, even though they use the same framework.

The older Core Graphics window-image approach, including CGWindowListCreateImage, belongs to a legacy path. Apple’s WWDC23 material describes the newer screenshot API as bringing ScreenCaptureKit’s streaming benefits to screenshots and explains how older window-list image options map to SCStreamConfiguration. For new code, prefer ScreenCaptureKit rather than building on the older path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The built-in Screenshot app is separate: it lets a person capture the full screen, a window, or a selected area manually. It is useful when a user simply wants to take a screenshot, but it does not provide an API integration for an app that must initiate, process, or save captures in code.

#1 Best Overall
Apple 2026 MacBook Neo 13-inch Laptop with A18 Pro chip: Built for AI and Apple Intelligence, Liquid Retina Display, 8GB Unified Memory, 256GB SSD Storage, 1080p FaceTime HD Camera; Blush
  • AN AMAZING MAC AT A SURPRISING PRICE — With an incredibly portable and durable aluminum design, up to 16 hours of battery life,* and the A18 Pro chip, MacBook Neo is ready to go wherever school takes you.
  • FOUR STUNNING COLORS. ONE DURABLE DESIGN — Choose from four beautiful colors — Silver, Blush, Citrus, or Indigo — each with a color-coordinated keyboard. And MacBook Neo is made with a durable recycled aluminum enclosure that helps it reach 60 percent recycled content by weight — the most ever in any Apple product.*
  • FLY THROUGH EVERYDAY ASSIGNMENTS — Whether you’re cramming for finals, using Apple Intelligence* to summarize class notes, creating presentations, or even playing the latest Apple Arcade game,* MacBook Neo delivers the performance and AI capabilities you need to get things done.
  • UP TO 16 HOURS OF BATTERY LIFE — MacBook Neo delivers all day battery life, so you can power through from early morning classes to late night study sessions without worrying about plugging in.
  • A VIBRANT 13-INCH DISPLAY* — The gorgeous Liquid Retina display on MacBook Neo supports 1 billion colors, so photos and videos pop and text is crisp for easy reading.

Set up the target and request permission

  1. Add the ScreenCaptureKit framework to the macOS target and import ScreenCaptureKit in Swift.
  2. Add an NSScreenCaptureUsageDescription string to the target’s Info.plist. Explain in plain language why your app needs to capture screen content.
  3. Request screen-recording permission through the system privacy flow before relying on capture. The user must grant access; a usage-description string is not itself permission.
  4. Handle denied or unavailable access as a normal failure path. Do not present an empty or invalid image as a successful screenshot.

Apple’s ScreenCaptureKit guidance says to request screen-recording permission before capturing content. On first use, the operating system may show a consent prompt. If permission is denied, tell the user what feature is blocked and direct them to the relevant macOS privacy settings; do not repeatedly trigger capture without explaining the requirement. The exact settings labels and authorization behavior can vary by macOS version, so validate the flow on the versions your app supports.

Select the content to capture

ScreenCaptureKit makes the capture source explicit. Obtain shareable content, identify the intended display, window, or running application, then create an SCContentFilter for that source. This is preferable to assuming that a particular screen index or window identifier will always represent the intended content.

Let the user choose

When the person using the app should decide what to share, Apple recommends SCContentSharingPicker. That system picker gives users a native way to choose a display, app, or window. It also avoids making your app invent a parallel selection interface for a sensitive action.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
Apple 2026 MacBook Air 13-inch Laptop with M5 chip: Built for AI, 13.6-inch Liquid Retina Display, 16GB Unified Memory, 512GB SSD, 12MP Center Stage Camera, Touch ID, Wi-Fi 7; Midnight
  • BUILT FOR COLLEGE. AND BEYOND — MacBook Air with the M5 chip packs blazing speed and powerful AI capabilities into an incredibly portable design. And with up to 18 hours of battery life,* this thin and light powerhouse is ready to take on almost any major, just about anywhere.
  • TEAR THROUGH TOUGH ASSIGNMENTS — With its faster CPU and unified memory, the M5 chip delivers even more performance and fluidity across apps, making multitasking and creative workflows smooth and responsive. A powerful Neural Engine and next-generation GPU with Neural Accelerators give you a powerful platform for AI.
  • MAKE QUICK WORK OF YOUR TO-DO LIST — Apple Intelligence helps you write, express yourself, and get things done effortlessly — whether it’s for school or everyday life. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
  • UP TO 18 HOURS OF BATTERY LIFE — MacBook Air delivers incredible battery life with amazing performance, so you can power through a full day of classes without worrying about plugging in.
  • A BRILLIANT 13.6-INCH DISPLAY* — The gorgeous Liquid Retina display on MacBook Air supports 1 billion colors, making photos and videos pop with rich contrast and sharp detail, and text appears supercrisp. So everything — from class presentations to movies to games — looks truly stunning.

Choose a source in app logic

For a capture initiated by your application, obtain the available shareable content and choose the intended SCDisplay, SCWindow, or application according to your product’s logic. Build the corresponding content filter and handle the case where the target is no longer available by the time capture begins. A window can close or a display configuration can change between selection and capture.

Configure and capture a display image in Swift

The following is an implementation outline using the asynchronous completion-handler style of the ScreenCaptureKit APIs. It selects the first available display, requests an image, and encodes that image as PNG. It is not a suitable source-selection policy for a multi-display product without adapting the selection step. Confirm the precise overloads and availability in the macOS SDK you target.

import AppKit
import ScreenCaptureKit
import ImageIO
import UniformTypeIdentifiers

func captureFirstDisplay(to destination: URL) {
    SCShareableContent.getExcludingDesktopWindows(
        false,
        onScreenWindowsOnly: true
    ) { content, contentError in
        if let contentError {
            print("Could not list shareable content: (contentError)")
            return
        }

        guard let display = content?.displays.first else {
            print("No display is available to capture")
            return
        }

        let filter = SCContentFilter(
            display: display,
            excludingApplications: [],
            exceptingWindows: []
        )
        let configuration = SCStreamConfiguration()
        configuration.width = display.width
        configuration.height = display.height

        SCScreenshotManager.captureImage(
            contentFilter: filter,
            configuration: configuration
        ) { image, captureError in
            if let captureError {
                print("Screenshot failed: (captureError)")
                return
            }
            guard let image else {
                print("Screenshot returned no image")
                return
            }
            guard let destination = CGImageDestinationCreateWithURL(
                destination as CFURL,
                UTType.png.identifier as CFString,
                1,
                nil
            ) else {
                print("Could not create PNG destination")
                return
            }
            CGImageDestinationAddImage(destination, image, nil)
            guard CGImageDestinationFinalize(destination) else {
                print("Could not finish writing PNG")
                return
            }
            print("Saved screenshot to (destination.path)")
        }
    }
}

This example shows the important control flow: content discovery can fail, there may be no display to select, capture can fail, the image may be absent, and file encoding can fail. In production, surface those errors to the caller or UI rather than relying only on console output. Run file writing off the main UI path when appropriate, and choose a destination policy that does not silently overwrite user data.

Rank #3
Apple 2026 MacBook Neo 13-inch Laptop with A18 Pro chip: Built for AI and Apple Intelligence, Liquid Retina Display, 8GB Unified Memory, 256GB SSD Storage, 1080p FaceTime HD Camera; Indigo
  • AN AMAZING MAC AT A SURPRISING PRICE — With an incredibly portable and durable aluminum design, up to 16 hours of battery life,* and the A18 Pro chip, MacBook Neo is ready to go wherever school takes you.
  • FOUR STUNNING COLORS. ONE DURABLE DESIGN — Choose from four beautiful colors — Silver, Blush, Citrus, or Indigo — each with a color-coordinated keyboard. And MacBook Neo is made with a durable recycled aluminum enclosure that helps it reach 60 percent recycled content by weight — the most ever in any Apple product.*
  • FLY THROUGH EVERYDAY ASSIGNMENTS — Whether you’re cramming for finals, using Apple Intelligence* to summarize class notes, creating presentations, or even playing the latest Apple Arcade game,* MacBook Neo delivers the performance and AI capabilities you need to get things done.
  • UP TO 16 HOURS OF BATTERY LIFE — MacBook Neo delivers all day battery life, so you can power through from early morning classes to late night study sessions without worrying about plugging in.
  • A VIBRANT 13-INCH DISPLAY* — The gorgeous Liquid Retina display on MacBook Neo supports 1 billion colors, so photos and videos pop and text is crisp for easy reading.

The configuration dimensions above use the selected display’s reported dimensions. Treat output dimensions, scaling, and pixel format as deliberate choices: higher-resolution output can require more memory and produce larger files, while smaller output may suit thumbnails or previews. Validate the resulting image on Retina and non-Retina displays rather than assuming logical points and output pixels are interchangeable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose an output type that fits the pipeline

SCScreenshotManager documents operations that return a CGImage, a CMSampleBuffer, or an SCScreenshotOutput, as well as rectangle-based capture methods. Use the image-returning operation when the app needs a normal image for encoding or display. Choose a sample buffer when the downstream media pipeline needs buffer-oriented data or metadata. Use the screenshot-output form when the newer screenshot configuration and its associated output are the right fit. Select the method supported by the SDK and deployment target you actually use.

For PNG or JPEG files, encode the returned image using an image destination API and check the finalization result. PNG is a lossless choice for interface captures; JPEG can reduce file size where lossy compression is acceptable. The capture API supplies captured content, not a complete product decision about file format, compression quality, destination, naming, or retention.

Rank #4
Apple 2026 MacBook Neo 13-inch Laptop with A18 Pro chip: Built for AI and Apple Intelligence, Liquid Retina Display, 8GB Unified Memory, 256GB SSD Storage, 1080p FaceTime HD Camera; Silver
  • AN AMAZING MAC AT A SURPRISING PRICE — With an incredibly portable and durable aluminum design, up to 16 hours of battery life,* and the A18 Pro chip, MacBook Neo is ready to go wherever school takes you.
  • FOUR STUNNING COLORS. ONE DURABLE DESIGN — Choose from four beautiful colors — Silver, Blush, Citrus, or Indigo — each with a color-coordinated keyboard. And MacBook Neo is made with a durable recycled aluminum enclosure that helps it reach 60 percent recycled content by weight — the most ever in any Apple product.*
  • FLY THROUGH EVERYDAY ASSIGNMENTS — Whether you’re cramming for finals, using Apple Intelligence* to summarize class notes, creating presentations, or even playing the latest Apple Arcade game,* MacBook Neo delivers the performance and AI capabilities you need to get things done.
  • UP TO 16 HOURS OF BATTERY LIFE — MacBook Neo delivers all day battery life, so you can power through from early morning classes to late night study sessions without worrying about plugging in.
  • A VIBRANT 13-INCH DISPLAY* — The gorgeous Liquid Retina display on MacBook Neo supports 1 billion colors, so photos and videos pop and text is crisp for easy reading.

Capture a window, app, or rectangle

  • Window: identify the intended SCWindow and construct a filter for that window. Check that it remains available at capture time.
  • Application: select the intended running application and use an application-based filter. Decide explicitly whether other windows should be included or excluded.
  • Display: select the desired SCDisplay rather than assuming the first item is the user’s intended monitor.
  • Rectangle: use the documented rectangle-based screenshot operation when the capture should be constrained to a region. Verify coordinate assumptions and bounds against the selected content and SDK documentation.

The comparison is about scope and output, not a promise that every surface is capturable:

Need ScreenCaptureKit choice Consideration
One image of a display, app, or window SCScreenshotManager with an SCContentFilter Handle permission, source changes, and capture errors.
One image of a region Documented rectangle screenshot method Validate rectangle coordinates and bounds.
Continuous frames SCStream Streaming adds ongoing lifecycle and media-buffer handling.
Manual user-initiated capture macOS Screenshot app Not an API for programmatic capture and processing.

Migration from CGWindowListCreateImage

For a migration, map the old capture intent—not just the old function name—to the new API. Decide whether the old code represented a display, a window, or a bounded area; build the equivalent content filter and configuration; then choose the output representation the rest of the application needs. Apple’s WWDC23 transition material discusses mapping older CGWindowList image options into SCStreamConfiguration. Review the current SDK reference for exact option equivalents and availability rather than assuming every legacy flag has a one-to-one replacement.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Replace implicit or index-based source assumptions with explicit display, app, or window selection.
  • Move image sizing and related capture decisions into ScreenCaptureKit configuration.
  • Review permission and Info.plist setup as part of the migration, not as a later polish step.
  • Test behavior for denied permission, missing content, and protected surfaces. Do not promise universal capture compatibility.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance, reliability, and privacy decisions

There is no useful universal latency or throughput figure for a screenshot call: results depend on OS version, hardware, resolution, and configuration. Measure on the devices and macOS versions your app supports. Capture only the size and scope needed, and avoid repeatedly capturing a full display when a smaller window or region satisfies the feature.

Best Value
Sale
Apple 2025 MacBook Pro Laptop with Apple M5 chip with 10‑core CPU and 10‑core GPU: Built for AI, 14.2-inch Liquid Retina XDR Display, 16GB Unified Memory, 1TB SSD Storage; Space Black
  • SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
  • HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
  • BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
  • ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
  • APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*

Keep capture work asynchronous so the UI remains responsive. Check every asynchronous error before updating the interface, and make cancellation or source disappearance understandable to the caller. If an operation is retried, avoid unbounded retry loops: a denied privacy permission will not be fixed by immediately submitting the same capture again.

Screen capture is sensitive. Explain the feature before invoking the system permission flow, capture only the selected scope, and avoid retaining images longer than the feature needs. Permission does not imply that all protected windows or media surfaces can be captured; the framework’s existence is not a universal compatibility guarantee.

Troubleshooting common failures

  • Capture is denied or returns unusable content: verify the user granted screen-recording access and that the target includes NSScreenCaptureUsageDescription. Explain how the user can review macOS privacy settings.
  • No display, window, or app appears: content discovery may have returned no matching source, or the target may have closed. Refresh shareable content and let the user choose again where appropriate.
  • The wrong display is captured: do not rely on displays.first in a multi-display setup. Present SCContentSharingPicker or implement a clear source-selection policy.
  • Capture call does not compile: check the overload and availability in the SDK used to build the target. Apple’s reference exposes versioned API material, so do not copy a signature from a different SDK without checking it.
  • Output dimensions are unexpected: inspect the selected source and configured dimensions, and verify the distinction between display points and image pixels on the target hardware.
  • PNG file is missing or invalid: check image-destination creation and finalization results, then verify the destination directory is writable.
  • A protected surface is blank or absent: do not assume all content is capturable. Handle unsupported or protected content as a limitation rather than repeatedly retrying.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server, not a replacement for capturing a local macOS display, app, or window with ScreenCaptureKit. If your goal is a screenshot of a public web page, one GET request can return an image or PDF instead of setting up browser automation. The API accepts parameters also used by other screenshot APIs, which can make switching simpler. See the ScreenshotNeo service and API documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Cookie banners, newsletter popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. An MCP server lets AI agents use screenshot tools. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month, with no card required.

Frequently Asked Questions

Can the built-in macOS Screenshot app be called as the screenshot API?

No. It is a manual capture tool; programmatic capture and processing require an API such as ScreenCaptureKit.

Does screen-recording permission guarantee every window can be captured?

No. Permission is required, but protected or otherwise unavailable surfaces are not guaranteed to be capturable.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.