What Sigla does.
A walk through Sigla — a reader, not a viewer.
Mermaid, PlantUML, Vega-Lite, math, code.
Sigla renders the formats technical specs contain — diagrams, charts, math, code, frontmatter — and checks the links between them. Markdown parses as GitHub-Flavored: tables, task lists, strikethrough, and autolinks all render.
Diagrams and charts render inline, locally, alongside your prose.
Mermaid and Vega-Lite render natively in the bundled WebView; PlantUML via a local plantuml binary you provide. No CDN calls, no remote rendering, no bundled Java runtime — the diagram renders the moment the document loads.
brew install plantuml PlantUML rendering requires the plantuml CLI on your PATH. Mermaid and Vega-Lite render without external dependencies. Inline and block math, rendered with KaTeX typography.
Wrap an equation in $…$ for inline math or $$…$$ for block math. Sigla renders both with KaTeX — the same engine the papers you're reading were typeset against.
Sixty-plus languages, paired with the document theme.
Fenced code renders with theme-paired highlighting — light themes get a light palette, dark themes a dark one. Tagged fences (```swift) get highlighted; untagged fences stay plain.
YAML and TOML render as a structured panel, not as prose noise.
Sigla parses frontmatter into a dedicated panel and strips it from the prose, so the document reads cleanly. Click any value to scope a folder search to documents matching that field.
Cross-file link checking, in real time as you read.
Markdown links ([text](./other-doc.md)) and wikilinks ([[other-doc]]) both resolve against the open folder tree. Missing or ambiguous targets get flagged inline with one of three glyphs:
- ⚠︎ after a link
- Target file is missing, or the embed type is unsupported.
- ◆ after a link
- Link is ambiguous; the tooltip names the alternate matching file.
- link text alone
- Heading anchor is missing in an otherwise-resolvable file (the link itself works; the fragment doesn't).
Toggle renderers. Add your own.
Three built-in renderers ship with Sigla — Mermaid, Vega-Lite, CSV/TSV tables — each toggleable in Settings › Renderers. Add your own by dropping a directory with a sigla.json manifest into ~/.config/sigla/extensions/<id>/. One kill switch disables them all if something misbehaves.
Comments live with the document.
Highlight a phrase, attach a note. Sigla's comments are personal annotation — not a collaboration channel.
Highlight a phrase, attach a note. The source file is never modified.
Comments are stored in a sidecar file next to the document, so the markdown source stays untouched — Sigla composes with whichever editor your team commits from. Open the document a year later; your annotations are still there.
Comments are notes for yourself, not threads for your team.
Sigla doesn't assume anyone else has Sigla. No team threading, no shared cursors, no presence. Comments are questions to answer while reading, notes to revisit, claims to verify — and they stay on your machine.
Hand the whole thing to the model.
Every comment is anchored to a position in the source. Export produces one structured XML payload — the document plus each comment, anchors preserved — ready to paste into the model of your choice.
The comments become the prompt.
Export wraps the document and every comment in structured XML. Each comment gets an anchor attribute pointing at the source phrase it's attached to, so the model has the context you had when you wrote the note. The template is configurable in Settings — rename tags, add or drop fields, swap the schema entirely.
01 — The source
The document you opened — an on-call postmortem.
## Summary Primary db-east-1 lost network at 14:22 UTC. Failover to db-east-2 completed at 14:31. Downtime: 9 minutes. SLA window was breached by 4 minutes.
02 — While reading
Highlight a phrase, drop a question. Add as many as the document needs — each anchored to the exact phrase it's about.
03 — Export
⌘⇧E packages the document and every comment into a single XML payload. Paste it into your LLM.
<document path="./postmortem-db-failover.md">
<content>
## Summary
Primary db-east-1 lost network at 14:22 UTC. Failover to
db-east-2 completed at 14:31. Downtime: 9 minutes.
SLA window was breached by 4 minutes.
</content>
<comments>
<comment anchor="Failover to db-east-2 completed at 14:31">
Was the failover automatic or did someone trigger it?
The runbook says auto, the timeline reads manual.
</comment>
<comment anchor="SLA window was breached by 4 minutes">
Why didn't auto-failover trip at the 4-minute mark?
Our SLA target was 5.
</comment>
</comments>
</document> The comments become the prompt — questions you want answered alongside the source they're attached to.
A real AppKit application.
Sigla uses macOS the way macOS expects to be used — native chrome, native shortcuts, native typography rendering.
A sidebar tree of the open folder, with live updates.
Native NSOutlineView source-list sidebar, the same control Mail and Notes use. Edits anywhere on disk reflect immediately via FSEvents — no refresh button. Click a file; it opens in place. The URL bar has a back button.
Full-text search across the open folder, in a native search modal.
Hit ⌘⇧F for the search modal. Results stream as you type, ranked by where the match falls. Match body, frontmatter, or both — the result row tells you which.
Three themes ship with Sigla. Each is a light/dark pair.
Apple Documentation, GitHub, and Technical Paper. Each pairs a light and dark variant that follows the system appearance. Tuned for long-form reading, not configurable to taste.
The small things macOS apps are supposed to do.
- ⌘+ ⌘− ⌘0 — document zoom, per document, remembered across launches
- Per-document table of contents in the sidebar
- PDF export with paginated typography
- Print, with
@pagestylesheet support for headers, footers, margins NSWindowstate restoration — same folder, same active file, same scroll position you left
If you're switching from these.
Sigla isn't trying to win a feature grid — it isn't in the same category as most markdown apps. But you already read markdown somewhere. Here's what changes when you read it in Sigla.
- Marked 2
- The render-on-save loop will feel familiar — keep writing in your editor; Sigla watches and reflects each save. What's new: inline comments that live with the document, frontmatter as a real panel, and the export-to-LLM flow that turns a reading session into a prompt.
- Obsidian preview mode
- Mermaid, PlantUML, and Vega-Lite render without plugins; math without a community theme. Annotations live in a sidecar next to the source, not inside a vault — so you don't have to move the document into its own world to read it.
- GitHub's web renderer
- The same Markdown your colleague linked from a PR, but offline — with the diagrams GitHub won't render (PlantUML, Vega-Lite), KaTeX math, wikilinks that resolve across the folder, and a place to write in the margins. Fine for skimming; not for the document you have to work through.
- The preview pane in your editor
- VS Code, Cursor, BBEdit, Nova all preview markdown in a pane beside the source. That pane is tuned for the writer; Sigla for the reader. The document gets its own window, its own typography, ⌘F that behaves like the rest of macOS, and shortcuts that don't fight the editor underneath.
A markdown editor. Sigla doesn't write; it reads. Pair it with the editor you already use — Sigla updates the moment you save.