Features & commands.
Everything Lineform does, and every shortcut for doing it — pulled straight from the app.
Getting started
What Lineform is
A local-first Markdown and plain-text editor for macOS. Documents live on your Mac as ordinary files — nothing is uploaded, there's no account, and no analytics run by default.
Requirements
Any Mac, Apple Silicon or Intel, running macOS 14 or later.
Private by design
Your documents are ordinary files, kept where you already keep them — on your Mac or in your iCloud Drive. Lineform doesn't upload them, doesn't send them to an AI, and has no account, no sync service of its own, and no analytics by default. If your files sync through iCloud, that's Apple's sync, not Lineform's. It makes one network call: a daily check for updates and news from Lineform, which sends no personal data and can be turned off with the In-app notifications toggle in Settings.
Opening & creating files
Lineform reads and writes two formats: Markdown (.md) and plain text (.txt). A document can be flipped between the two in place with Convert to Markdown / Convert to Plain Text. Your Workspace — the folders shown in the Files sidebar tab — can include both iCloud Drive and local folders.
Writing
Write, Read, Preview
Three ways to look at a document: Write shows the raw Markdown source, Read shows it rendered, and Preview is a split view with both side by side.
Formatting commands
Every Format-menu command works in Write mode, from headings down to tables.
| Command | Shortcut |
|---|---|
| Title (H1) | ⌘1 |
| Section (H2) | ⌘2 |
| Heading 3–6 | ⌘3–⌘6 |
| Body text | ⌘0 |
| Bold | ⌘B |
| Italic | ⌘I |
| Inline code | ⌘` |
| Strikethrough | ⌘⇧X |
| Bulleted list | ⌘⇧8 |
| Numbered list | ⌘⇧7 |
| Link | ⌘L |
| Insert table | ⌘⌃T |
| Reformat table | ⌘⌃R |
| Blockquote | — |
Outline navigation
A live outline of every heading in the document, so you can jump straight to any section.
Jump to File
A fuzzy-search quick-open palette across every file in your workspace.
Find & Find and Replace
In-document Find, plus an All Files search scope that searches across your whole workspace.
Tabs
Multiple documents open side by side in one window.
Formatting & rendering
Callouts
Five GitHub-style admonitions, written as a blockquote starting with > [!TYPE]. They render as a plain title row — an icon and a bold label, no background or border — over the quoted body. An unrecognized type just renders as an ordinary blockquote, so callouts degrade gracefully in any other editor.
Neutral, useful context while reading.
A helpful suggestion.
Crucial information the reader needs.
Something that needs attention.
A risk of negative consequences.
Code blocks
Fenced code blocks are syntax-highlighted for eight languages — Swift, JavaScript/TypeScript, Python, JSON, Bash/Shell, HTML, and CSS. Any other language still renders in a clean monospace block, just without color. Hover a block for a one-click copy button.
// Eight languages get real syntax highlighting
let languages = ["Swift", "JS/TS", "Python", "JSON", "Bash", "HTML", "CSS"]
Math
LaTeX math, inline like \(E = mc^2\) or as a display block:
Mermaid diagrams
Flowchart, sequence, class, entity-relationship, state, and xy-chart diagrams render natively, plus pie charts. A recognized-but-unsupported type — gantt, mindmap, timeline, and the like — shows a clean fallback instead of a broken diagram.
Tables & task lists
Standard GFM tables (with Insert Table and Reformat Table commands) and task lists that render as clickable checkboxes in Read and Preview.
| Feature | Mode |
|---|---|
| Tables | Read / Preview |
| Task lists | Read / Preview |
- ☑ Like this
- ☐ And this
Images
A local image alone on its own line renders inline — block-only, left-aligned, and capped in height so a tall photo can't take over the page. If the file can't be found, you'll see a placeholder with a Reconnect pill: click it, pick any local image, and Lineform rewrites the link for you. Remote (http://) images are never downloaded — they always stay a placeholder, by design.
Reading experience
Themes & fonts
Five themes — Original, Paper, Calm, Quiet, and Night — plus an optional High Contrast overlay on top of any of them. Body text can use SF Pro, New York, a monospaced face, or two accessibility-focused fonts: Atkinson Hyperlegible and OpenDyslexic.
Reading Experience popover
Fine-tune how rendered text looks: font, font size, line height, block spacing, letter spacing, column width, a reading ruler, and a typewriter-scroll mode. Six built-in presets — Original, Quiet, Paper, Code, Calm, and Focus — bundle these into one click.
Read-aloud
Have the rendered text read aloud. It skips code blocks, math, and diagrams automatically, and never reads the # or * symbols. Select a paragraph first to read only that.
Exporting & printing
Export formats
Four formats, each a separate menu item — there's no single "export" dialog with a format picker.
| Format | What you get |
|---|---|
| HTML | A web page — image and link paths kept exactly as written. |
Plain markdown source — shows #, ** as typed. | |
| Styled PDF | Rendered like Read mode — with images, tables, math & diagrams. |
| Rich Text (.rtf) | Styled text for Word, Pages & Google Docs. |
Print always renders the way Read mode does — a white page, black ink — no matter which mode you're currently viewing in.
Files & privacy
Real local files
Markdown and plain text saved right on your Mac. Nothing is uploaded anywhere. Documents autosave in the background, with the status line noting "Saved" for a manual ⌘S or "Autosaved" otherwise.
Files sidebar
Browse iCloud and local folders side by side, sorted by name or date. Right-click a file to open it in a new tab or window, rename, delete, or reveal it in Finder — Rename and Delete are deliberately not bound to any keyboard shortcut.
No account, no cloud
There's no account system and no analytics by default. The one optional network call is a daily check for updates and news from Lineform, sending no personal data. Turn it off with the In-app notifications toggle in Settings.
Reference
All keyboard shortcuts
| Shortcut | Command |
|---|---|
| ⌘, | Settings… |
| ⌘S | Save |
| ⌘⇧S | Save As… |
| ⌘P | Print… |
| ⌘1 | Title (H1) |
| ⌘2 | Section (H2) |
| ⌘3–⌘6 | Heading 3–6 |
| ⌘0 | Body text |
| ⌘B | Bold |
| ⌘I | Italic |
| ⌘` | Inline code |
| ⌘⇧X | Strikethrough |
| ⌘⇧8 | Bulleted list |
| ⌘⇧7 | Numbered list |
| ⌘L | Link |
| ⌘⌃T | Insert table |
| ⌘⌃R | Reformat table |
| ⌘E | Toggle Write / Read |
| ⌘⌥0 | Toggle Outline |
| ⌘⇧. | Show Hidden Folders |
| ⌘⌥R | Reading Experience |
| ⌘F | Find |
| ⌘⌥F | Find & Replace… |
| ⌘: | Show Spelling and Grammar |
| ⌘; | Check Document Now (spelling) |
| ⌘T | New Tab |
| ⌘K | Jump to File… |
| ⌘⇧W | Close Tab |
| ⌘] | Select Next Tab |
| ⌘[ | Select Previous Tab |
Blockquote, Export As… (any format), Rename…, Delete…, and Speech (Start/Pause/Resume/Stop) are deliberately unbound — some things shouldn't be one accidental keystroke away.