paperkit

Create/edit structured drawings and annotations with PaperKit's PaperMarkupViewController in SwiftUI apps.

Updated May 10, 2026
One-click install
npx skills add https://github.com/FelixRauch/medat-figuren --skill paperkit-felixrauch
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: paperkit
Source: https://github.com/FelixRauch/medat-figuren/tree/main/.agents/skills/paperkit
Command: npx skills add https://github.com/FelixRauch/medat-figuren --skill paperkit-felixrauch

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

PaperKit removes the fragmentation of drawing and structured annotations by giving you one consistent, platform-aligned markup system for canvases and document editors.

Core Features & Use Cases

  • Unified markup canvas via PaperMarkupViewController: Use a scrollable, zoomable controller that supports both PencilKit drawing and structured markup elements.
  • Structured, persistable markup model: Serialize and restore all markup content using PaperMarkup dataRepresentation for reliable document storage and exchange.
  • Consistent insertion UI and toolbar behavior: Embed the standard markup insertion menu/toolbar through MarkupEditViewController (iOS/iPadOS/visionOS) or MarkupToolbarViewController (macOS/Mac Catalyst).
  • FeatureSet-based capability control: Enable or restrict capabilities (drawing, text, shapes, images, etc.) with a shared FeatureSet across the view controller and insertion UI.
  • Practical integrations: Wrap it in SwiftUI (UIViewControllerRepresentable), compose it with PencilKit tools, and render thumbnails or content for review flows.

Quick Start

Use the paperkit skill to embed PaperMarkupViewController in your app and wire up PencilKit’s PKToolPicker so users can draw and insert structured markup using the system-standard toolbar and controllers.

Frequently Asked Questions about paperkit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a markup canvas to my SwiftUI app using PencilKit?

To add a markup canvas to your SwiftUI app, wrap PaperMarkupViewController using UIViewControllerRepresentable and wire up PencilKit's PKToolPicker for unified drawing and structured annotations.

How do I serialize and persist structured drawings and annotations in iOS?

You serialize and persist structured drawings and annotations by using the PaperMarkup dataRepresentation for async-safe saving, loading, and compatibility checks on document restore.

Can I restrict available markup tools like text, shapes, and images on the canvas?

Yes, you can restrict markup tools by applying a shared FeatureSet across the PaperMarkupViewController and insertion UI to enable or disable specific capabilities like drawing and text.

Does PaperKit markup work on macOS and Mac Catalyst, or only iOS?

PaperKit markup works on iOS, iPadOS, visionOS, macOS, and Mac Catalyst. macOS uses MarkupToolbarViewController, while iOS uses MarkupEditViewController for the insertion UI.

What's the best way to unify PencilKit drawing with structured markup elements?

Unifying PencilKit drawing with structured elements is best achieved via PaperMarkupViewController, which provides a scrollable canvas supporting both freehand drawing and structured annotations.

What Swift and SDK versions are required to use the unified PaperKit markup workflow?

Using the PaperKit markup workflow requires Swift 6.3 with the iOS or macOS 26+ SDK to ensure correct setup of tool picker, responder state, and FeatureSet configuration.