Capso Screenshot & Screen Recording Skill
Skill by ara.so — Daily 2026 Skills collection.
Capso is a fully native, open-source macOS screenshot and screen recording app — a free alternative to CleanShot X. Built with Swift 6.0 and SwiftUI targeting macOS 15.0+. Its key strength for developers is a modular SPM architecture: 8 independent packages (CaptureKit, AnnotationKit, OCRKit, etc.) you can embed individually in your own app.
Installation
Download Pre-built App
Or download the signed DMG from GitHub Releases.
Build from Source
Requirements: Xcode 16+, macOS 15.0+, XcodeGen
CLI build:
Project Architecture
The app shell is intentionally thin — all logic lives in packages. This means you can pull individual packages into your own app via SPM.
Using Capso Packages in Your Own App
Add a package as a local or remote SPM dependency in your Package.swift:
Package API Examples
CaptureKit — Screen Capture
CaptureKit wraps ScreenCaptureKit for area, fullscreen, and window capture.
RecordingKit — Screen Recording
CameraKit — Webcam PiP
AnnotationKit — Drawing & Annotation
Screenshot Beautification (AnnotationKit)
OCRKit — Text Recognition
ExportKit — Video & GIF Export
SharedKit — Permissions & Settings
SwiftUI Integration Pattern
Embed a capture button in a SwiftUI view:
Running Package Tests
Each package is independently testable:
Required Entitlements & Info.plist
Your app using Capso packages needs these permissions:
Common Patterns
Pin Screenshot to Screen (Always-on-Top)
Global Keyboard Shortcut (via SharedKit pattern)
Troubleshooting
xcodegen generate fails
- Ensure XcodeGen ≥ 2.40:
brew upgrade xcodegen - Check
project.ymlis not modified with invalid YAML syntax - Run
xcodegen generate --spec project.ymlfor explicit path
"Screen Recording permission denied" at runtime
- Go to System Settings → Privacy & Security → Screen Recording and enable Capso
- For your own app using CaptureKit, you must trigger the permission prompt first via
PermissionManager.requestScreenRecordingPermission()
Build errors with Swift 6 concurrency
- Capso targets Swift 6 strict concurrency. Ensure all closures that touch UI are
@MainActor - Add
@preconcurrencyimport for ScreenCaptureKit if you see warnings in Xcode 16
GIF export is slow
- Lower the fps (e.g.
fps: 10) and scale (e.g.scale: 0.5) inExportKit - Use
.webquality preset for faster encoding
Camera not showing in PiP
- Verify camera permission is granted in System Settings
- Call
CameraManager.requestPermission()beforestartCapture() - Ensure your entitlement includes
com.apple.security.device.camera
License Note
Capso uses Business Source License 1.1:
- ✅ Personal use, internal company use, forking, modifying
- ❌ Selling a competing screen-capture product based on this code
- ✅ Automatically becomes Apache 2.0 in 2029 per release
When embedding packages in your own non-competing app, you are permitted under BSL 1.1.


