explaingit

realm/jazzy

7,383RubyAudience · developerComplexity · 2/5Setup · moderate

TLDR

A command-line tool that generates Apple-style API reference documentation websites from Swift or Objective-C source code, using Xcode's own analysis tools so the output accurately reflects your code structure.

Mindmap

mindmap
  root((Jazzy))
    What it does
      Generates doc site
      Parses Swift code
      Matches Apple style
    Input
      Swift source
      Objective-C source
      Compiled frameworks
    Features
      Symbol cross-linking
      LaTeX math support
      Multi-module docs
    Config
      jazzy.yaml file
      CLI flags
      Xcode build flags
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Generate a browsable API reference website for a Swift library with a single command

USE CASE 2

Publish Objective-C documentation styled to match Apple's own reference pages

USE CASE 3

Document multiple Swift modules together in one unified documentation site

USE CASE 4

Embed LaTeX math equations in doc comments and have them render in the generated HTML output

Tech stack

RubySwiftObjective-CXcode

Getting it running

Difficulty · moderate Time to first run · 30min

Requires macOS and Xcode, Linux support is limited and some features may not work outside macOS.

In plain English

Jazzy is a command-line tool that reads your Swift or Objective-C source code and generates a documentation website from it. Instead of just scanning plain text files, it hooks into the same internal tools that Apple's Xcode editor uses to understand code structure, which means the output is more accurate. The generated pages are styled to match how Apple presents its own official API reference documentation. You install it like any Ruby tool (via the gem install jazzy command) and then run it from the folder containing your Apple platform project. For straightforward projects, running the command without any arguments is often enough. For more complex setups, there are many options: you can tell it which module to document, pass extra build flags to Xcode, configure an author name and website, and specify where the output should be saved. All these options can also be written into a configuration file called .jazzy.yaml so you do not have to type them every time. The tool supports writing documentation comments in the standard Apple style, using markdown-formatted text and special keywords like parameter descriptions and return value explanations. These comments appear in the generated pages alongside the relevant class, method, or property. Jazzy also supports linking between symbols within the documentation, so clicking a type name in one article can take you directly to that type's reference page. Math equations written in LaTeX format can be embedded in documentation and will render as formatted equations in the output. For teams documenting more than one module at once, there is a configuration option to generate a single unified documentation site covering all of them. The tool can document both source code projects and pre-compiled Swift framework files. It runs on macOS, where Apple's developer tools are natively available, with limited support for Linux noted separately in the README. Jazzy is a mature tool from the Realm team and is well suited for Apple platform library authors who want to publish clean, browsable API reference docs.

Copy-paste prompts

Prompt 1
Show me a .jazzy.yaml config file that documents a Swift Package with a custom author name, output folder, and module name
Prompt 2
How do I write Swift documentation comments so that parameter descriptions and return values appear correctly in Jazzy output?
Prompt 3
How do I configure Jazzy to cross-link between types so clicking a class name in one page jumps to its reference?
Prompt 4
How do I embed a LaTeX equation in a Swift doc comment and confirm it renders in the Jazzy-generated pages?
Prompt 5
How do I set up Jazzy to document two Swift modules together and output a single combined documentation site?
Open on GitHub → Explain another repo

← realm on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.