Documentation

User Manual

Everything you need to know about writing with Org-notes — from basic editing to spreadsheet formulas and LaTeX math.

Getting Started

Org-notes works with .org files — plain text files using Org-mode syntax. Open any .org file to start editing, or create a new one from the app.

The interface has two panes: an editor on the left and a live preview on the right. Changes in the editor are reflected instantly in the preview at 120 fps.

File header

Start your file with optional metadata:

#+TITLE: My Document
#+AUTHOR: Your Name
#+DATE: <2026-06-15 Sun>

Autosave

Your work is saved automatically — every 300 keystrokes and after 30 seconds of inactivity. A backup copy is also maintained for crash recovery.

Editor Basics

The editor supports Emacs-style navigation alongside standard macOS shortcuts. Text is stored in a rope data structure for fast editing of large documents.

Inline formatting

SyntaxResult
*bold*bold
/italic/italic
_underline_underline
+strikethrough+strikethrough
~code~code
=verbatim=verbatim

Checkboxes

- [ ] Unchecked item
- [X] Checked item
- [-] Partial item

Toggle a checkbox by placing the cursor on it and pressing C-c C-c.

Headings & Structure

Headings start with one or more asterisks. The number of asterisks sets the level:

* Level 1
** Level 2
*** Level 3

Folding

Press Tab on a heading to cycle its visibility: folded → children → subtree. Press Shift-Tab globally to cycle the entire document: Overview → Contents → Show All.

Structural editing

ActionShortcut
Insert heading at same levelAlt-Enter
Promote heading (decrease level)Alt-Left
Demote heading (increase level)Alt-Right
Move subtree upAlt-Up
Move subtree downAlt-Down
Promote subtreeShift-Alt-Left
Demote subtreeShift-Alt-Right

TODO keywords

Press C-c C-t to cycle a heading through TODO states: (none) → TODO → DONE → (none).

** TODO Write the report
** DONE Ship version 1.0

Tables

Org-notes includes a full-featured table editor. Tables are plain text, but behave like a spreadsheet — with auto-alignment, navigation, sorting, and formulas.

Creating a table

Type a pipe character | followed by your column headers and press Tab:

| Name | Age | City |

Pressing Tab auto-aligns the table and moves to the next cell. Pressing Enter moves to the next row in the same column.

Horizontal rules

Type |- and press Tab to insert a horizontal separator:

| Name    | Age | City        |
|---------+-----+-------------|
| Alice   |  30 | New York    |
| Bob     |  25 | Los Angeles |
| Charlie |  35 | Chicago     |

Navigation

ActionShortcut
Next cell (align & advance)Tab
Previous cellShift-Tab
Next row (same column)Enter
Beginning of fieldAlt-A
End of fieldAlt-E

Column & row operations

ActionShortcut
Move column leftAlt-Left
Move column rightAlt-Right
Insert columnShift-Alt-Right
Delete columnShift-Alt-Left
Move row upAlt-Up
Move row downAlt-Down
Insert row aboveShift-Alt-Up
Delete rowShift-Alt-Down
Insert horizontal ruleC-c -
Sort tableC-c ^
Transpose tableC-c C-x C-t

Column alignment

Add an alignment row using <l>, <c>, or <r> to control left, center, or right alignment in the preview:

| Left     | Center   | Right    |
| <l>      | <c>      | <r>      |
|----------+----------+----------|
| aligned  | aligned  | aligned  |

Table Formulas

Tables can compute values with the #+TBLFM: directive placed immediately below the table. Formulas reference cells by column ($N) or by exact position (@row$col).

Basic syntax

| Item   | Price | Qty | Total |
|--------+-------+-----+-------|
| Apple  |  1.50 |   3 |       |
| Banana |  0.75 |   2 |       |
#+TBLFM: $4=$2*$3

This fills column 4 with Price × Qty for every data row. Press C-c * to recalculate the current row, or C-u C-c * to recalculate the entire table.

Cell references

ReferenceMeaning
$2Column 2 (applies to all data rows)
@3$2Specific cell: row 3, column 2
@>$4Last row, column 4
@IFirst horizontal rule
@IISecond horizontal rule
@I..@IIRange: rows between first and second rule
$1..$3Range: columns 1 through 3 (current row)

Multiple formulas

Separate multiple formulas on the same #+TBLFM: line with :::

| a | b | sum | product |
|---+---+-----+---------|
| 2 | 3 |     |         |
| 4 | 5 |     |         |
#+TBLFM: $3=$1+$2::$4=$1*$2

Aggregate functions

These functions operate on ranges of cells:

FunctionDescription
vsum(range)Sum of values in range
vmean(range)Arithmetic mean
vmin(range)Minimum value
vmax(range)Maximum value
vcount(range)Count of values
vprod(range)Product of values
vmedian(range)Median value

Example: Sum column

| Item   | Amount |
|--------+--------|
| Rent   |   1200 |
| Food   |    400 |
| Travel |    150 |
|--------+--------|
| Total  |        |
#+TBLFM: @>$2=vsum(@I..@II)

Math functions

FunctionDescription
sqrt(x)Square root
abs(x)Absolute value
ceil(x), floor(x)Round up / down
round(x)Round to nearest integer
sin(x), cos(x), tan(x)Trigonometric (radians)
exp(x)e^x
log(x), ln(x)Log base 10 / natural log
pow(x,y) or x^yPower
if(cond, a, b)Conditional: a if true, b if false

Format specifiers

Append ;format to a formula to control output formatting:

| a | b | ratio |
|---+---+-------|
| 1 | 3 |       |
#+TBLFM: $3=$1/$2;%.2f

This formats the result as a decimal with 2 places (e.g., 0.33).

Recalculation

ActionShortcut
Recalculate current rowC-c *
Recalculate entire tableC-u C-c *
Auto-recalculate on Tab/EnterAutomatic

LaTeX & Math

Org-notes renders LaTeX math expressions in real time. Formulas are converted to SVG using Mitex/Typst and displayed inline or as display blocks in both the editor and preview pane.

Inline math

Wrap expressions in single dollar signs or \(...\) delimiters:

The equation $E = mc^2$ describes mass-energy equivalence.

The Greek letters \(\alpha + \beta = \gamma\) are common in physics.

In the editor, inline math is highlighted with a purple background and dimmed delimiters. In the preview, it renders as a crisp SVG image.

Display math (block)

Use double dollar signs or \[...\] for centered, block-level equations:

$$\int_0^\infty e^{-x^2}\, dx = \frac{\sqrt{\pi}}{2}$$

\[\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}\]

LaTeX environments

Standard LaTeX environments are fully supported:

\begin{equation}
  \nabla \times \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t}
\end{equation}

\begin{align}
  a &= b + c \\
  d &= e + f
\end{align}

Subscripts & superscripts

Outside of math mode, Org-notes can display sub/superscripts as Unicode characters (configurable in settings):

H_{2}O renders as H₂O
x^{2} renders as x²
e^{i\pi} renders as eⁱᵖⁱ

Greek letters & entities

Org-notes renders Org entities as their Unicode equivalents:

\alpha → α    \beta → β    \gamma → γ
\pi → π       \infty → ∞   \sum → ∑
\rightarrow → →   \leq → ≤   \geq → ≥

How rendering works

LaTeX expressions are rendered to SVG via Mitex (a Typst-based converter). Results are cached by content hash in a temporary directory, so repeated expressions render instantly. If the primary renderer is unavailable, a fallback pipeline using pdflatex → PDF → MuPDF is used.

Footnotes

Org-notes supports the full Org footnote system:

This sentence has a footnote[fn:1] and a named one[fn:details].

[fn:1] This is a numbered footnote.

[fn:details] This is a named footnote with more information.

Inline footnotes

This has an inline footnote[fn::The definition is right here].

Footnote commands

ActionShortcut
Jump to footnote definition/referenceC-c C-c
New footnoteC-c C-x f
Renumber footnotesC-c C-x d

In the preview, footnotes appear as superscript numbers with back-references.

Code Blocks

Source blocks provide syntax highlighting for 50+ languages:

#+begin_src python
def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b
#+end_src

Other block types

BlockSyntaxPurpose
Quote#+begin_quote...#+end_quoteBlock quotation
Example#+begin_example...#+end_examplePreformatted text
Verse#+begin_verse...#+end_versePoetry (preserves line breaks)
Center#+begin_center...#+end_centerCentered text

Fixed-width lines

: This line starts with a colon and space.
: It renders as preformatted monospace text.

Keybinding Reference

Org-notes uses Emacs-style key notation. C- means Ctrl, Alt- means Option/Alt. Many operations are context-sensitive — the same key behaves differently inside a table vs. on a heading.

Navigation

ActionShortcut
Forward charC-f
Backward charC-b
Next lineC-n
Previous lineC-p
Beginning of lineC-a
End of lineC-e
Forward wordAlt-f
Backward wordAlt-b
Page downC-v
Page upAlt-v

Editing

ActionShortcut
Kill to end of lineC-k
Yank (paste kill ring)C-y
UndoC-/ or Cmd-z
RedoC-? or Cmd-Shift-z
Set markC-Space
Universal argument (repeat)C-u N

Org structure

ActionShortcut
Fold/unfold headingTab
Global cyclingShift-Tab
New headingAlt-Enter
Promote/DemoteAlt-Left / Alt-Right
Move subtreeAlt-Up / Alt-Down
Cycle TODOC-c C-t
Set tagsC-c C-q
Set propertyC-c C-x p
Insert timestampC-c .
Insert deadlineC-c C-d
Insert scheduledC-c C-s

Tables (inside table context)

ActionShortcut
Align & next cellTab
Align & next rowEnter
Move column left/rightAlt-Left / Alt-Right
Move row up/downAlt-Up / Alt-Down
Insert/delete columnShift-Alt-Right / Shift-Alt-Left
Insert/delete rowShift-Alt-Up / Shift-Alt-Down
Insert hlineC-c -
Sort columnC-c ^
Recalculate rowC-c *
Recalculate tableC-u C-c *
TransposeC-c C-x C-t

Links & footnotes

ActionShortcut
Open linkC-c C-o
Insert linkC-c C-l
Go backC-c &
New footnoteC-c C-x f

View

ActionShortcut
Toggle previewC-c C-x C-v
Column viewC-c C-x C-c
Sparse tree (search)C-c /