Swift Markdown Kit · DOCS
Overview
Swift Markdown Kit
A commercial Markdown rendering SDK for iOS, delivered as
SwiftMarkdownKit.xcframework.
It is built for LLM output. Streaming tokens, whole-conversation chat, and reasoning folds are first-class — not bolted on.
A conversation in six lines
import SwiftUI
import SwiftMarkdownKit
struct ConversationView: View {
let messages: [MarkdownChatMessage]
var body: some View {
MarkdownChatRenderView(messages: messages)
}
}
That is a complete, working integration. With no configuration at all you get:
- Markdown, tables, code with syntax highlighting, KaTeX math, task lists.
- Streaming that stays smooth and costs O(n) over the whole answer.
<think>reasoning folded into a collapsible panel above the answer.- Links opening in an in-app browser, images opening full screen.
- Copy buttons on code blocks and messages.
- Light/dark, Dynamic Type, and safe handling of half-finished markdown.
Everything after this page is about the parts you may want to change.
Requirements
- iOS 17.0 or later
- macOS through Mac Catalyst — the same implementation, so a formula, a table or a streamed answer renders identically on both. Build against the My Mac (Mac Catalyst) destination; My Mac builds for native macOS, which has no UIKit and no slice to link. A native AppKit target is not supported.
- Xcode 16 or later
- A
.smklicenseissued for your Apple Team ID or bundle identifiers
Evaluate before you buy
The SDK never withholds a feature. Without a license every capability still
renders exactly as it will in production — an unlicensed build simply carries a
small Unlicensed · macdeer.com badge in the corner and prints one line to the
console explaining why.
That means you can integrate it, render your real content, measure your real scroll performance, and ship it through CI before paying anything. See Licensing for how trial and production licenses differ.
Where to go next
| If you want to… | Read |
|---|---|
| Get it into your project | Installation |
| Render an LLM conversation | Streaming & Chat |
| Render one document or article | Rendering |
| Decide who handles link and image taps | Interaction |
| Match your app's design | Theming & Syntax |
| Look up a type, event or error | Reference |