Add drawings, shapes, and a consistent markup experience using PaperKit. Use when integrating PaperMarkupViewController for markup editing, adding shape recognition, working with PaperMarkup data models, embedding markup tools in document editors, or building annotation features that need the system-standard markup toolbar. New in iOS 26.
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/paperkit/SKILL.mdCombine freeform PencilKit drawings with structured markup elements (shapes, text boxes, images, connectors) using PaperKit (PaperMarkupViewController, PaperMarkup). Targets Swift 6.4 / iOS 26+.
Beta-sensitive: PaperKit is new in iOS/iPadOS 26, macOS 26, and visionOS 26. Verify availability guards and SDK versions before production release.
PaperKit provides an interactive document canvas hosting both vector PencilKit strokes and structured document annotations.
┌────────────────────────────────────────────────────────┐
│ PaperMarkupViewController │
│ ┌───────────────────────┐ ┌────────────────────────┐ │
│ │ PKToolPicker │ │ MarkupEditController │ │
│ │ (PencilKit Inking) │ │ (Shapes, Text, Images) │ │
│ └───────────────────────┘ └────────────────────────┘ │
│ │
│ Canvas: PaperMarkup (Strokes + Shapes + Text Objects) │
└────────────────────────────────────────────────────────┘pencilkit: Use for pure freehand sketchbooks, drawing-only canvases, raw vector stroke analysis, or when supporting iOS 17 and earlier.paperkit: Use when users need to place shapes, typed text, sticky notes, or signature annotations alongside freehand drawings in document editors.| Component | Role |
|---|---|
PaperMarkupViewController | Scrollable interactive markup canvas hosting drawings and elements |
PaperMarkup | Serializable document model representing canvas elements and bounds |
MarkupEditViewController | System UI for inserting shapes, text, arrows, and signatures |
MarkupToolbarViewController | Toolbar controller coordinating tools on desktop and iPad |
FeatureSet | Capability configuration declaring supported tools and element types |
PaperMarkup using markup.dataRepresentation().FeatureSet.latest or targeted subsets) to prevent forward-compatibility loading errors.UIViewControllerRepresentable, read SwiftUI PaperKit Integration.PaperMarkupViewController on every SwiftUI view update rather than using coordinator pattern.PaperMarkup serialization synchronously on the main thread for large multi-element documents.@available(iOS 26.0, *)) when deploying to earlier OS versions.PaperMarkup and the hosting view layout.PaperMarkupViewController hosted in a stable UIKit container or SwiftUI CoordinatorPKToolPicker added as observer to the paper markup controllerUndoManagerthienqo/ios-skills
6bf8b62
Canonical home
since May 23, 2026
Also appears in
on Oct 29, 2026
since May 22, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.