The Markdown Editor

The markdown editor renders as you type. Type ## and the line becomes a heading immediately. There is no preview pane to keep in sync. What you see is the rendering, and the file stays ordinary markdown the whole time.

Formatting as you type

Markdown syntax converts the moment you finish typing it. **bold** becomes bold text.

TypeGet
# through ###### Headings, all six levels
**bold** or __bold__Bold
*italic* or _italic_Italic
~~strike~~Strikethrough
`code`Inline code
> Blockquote
- , * , + Bullet list
1. Numbered list
[ ] or [x] Task list item
``` plus a languageCode block
---Divider
[[Wiki-link autocomplete

Shortcuts work too, with Ctrl on Windows and Linux and ⌘ on macOS.

ShortcutAction
Ctrl+B / Ctrl+IBold, italic
Ctrl+EInline code
Ctrl+Shift+SStrikethrough
Ctrl+Alt+1 to Ctrl+Alt+6Heading levels
Ctrl+Alt+0Back to a normal paragraph
Ctrl+Shift+8 / Ctrl+Shift+7 / Ctrl+Shift+9Bullet, numbered, task list
Ctrl+Shift+BBlockquote
Ctrl+Alt+CCode block
Tab / Shift+TabIndent or outdent a list item
Shift+EnterLine break without a new paragraph
Ctrl+Shift+VToggle the pane to raw markdown and back
Ctrl+KOpen the AI composer on your selection

There is no formatting toolbar and no menu on selection. A selection feeds the AI composer. Press Ctrl+K on selected text and it offers to rewrite it. See The Inline Composer.

Slash commands

Type / at the start of a line to open the insert menu, then keep typing to filter it. The filter matches the name, the shorthand and the description, so /list narrows to the three list commands. Arrow keys move, Enter inserts, Esc closes.

CommandWhat it inserts
Heading 1, Heading 2, Heading 3A heading at that level
Bullet List, Numbered List, Task ListA list
Code BlockAn empty fenced block
QuoteA blockquote
DividerA horizontal rule
DateToday's date, as 2026-09-17
TimeThe current time, as 14:30:00
TimestampThe current moment in ISO format
UUIDA random UUID v4
PasswordA 20-character random password
SecretA 64-character random key

Two more do not appear in the menu. Type /mermaid on an empty line for a diagram block, and /math for a math block. The menu says it found nothing while you type them, because they fire on the last character.

Tables

There is no table command in the menu. Type or paste the pipe syntax and it renders as a table as soon as the block is complete:

A table, as you type it
| Stage | Owner |
|---|---|
| Draft | You |
| Review | Reviewer |

Pasting from a spreadsheet or a web page works too. An HTML table in the clipboard stays a table. Once a table exists, drag a column border to resize it, use Tab and Shift+Tab to move between cells, and press Tab in the last cell to add a row. Select every cell and press Backspace to delete the table.

Dragging things in

Drag an image file from your desktop onto the editor. It uploads and lands where you let go, as ordinary ![alt](url) markdown. You can drop several at once. Each image can be up to 10 MB. Pasting an image from the clipboard does the same at the cursor.

The editor embeds images only. Drop a PDF or a zip and nothing happens.

Dragging a file out of the file tree opens that file. It does not insert a link. Drop it in the middle of the editor to open it in the current pane, or near an edge to split the pane. To link to a file, type [[ instead.

How saving works

There is no save button and no Ctrl+S. The editor saves about a third of a second after you stop typing. The footer shows "Saving…" while the request is in flight, "Saved" when it lands, and "save failed" if it did not. The tab shows a dot while a save is in flight.

When a version is captured

Not every save is a version. If it were, a morning of writing would leave hundreds of near-identical snapshots.

Who wrote itWhat gets captured
You, in the editorThe state before your first save in roughly a ten minute window. Keep typing and that window holds, so one editing session leaves one version
An agent or the AI assistant, through the APIThe state before every write, with no coalescing
You, right after an agent runA version, because the agent's writes do not reset your window. The handover point is always recoverable

A version stores the content as it was before the write, so restoring one takes you back to the state you had. Monofile keeps the newest 20 automatic versions per file. Checkpoints, which you create yourself, do not expire. See How Versioning Works.

A save that changes nothing captures nothing. Monofile compares the content before it writes.

Next steps

  • Markdown ReferenceEvery markdown feature Monofile renders, with examples.

  • Rich MarkdownTitled code, tabs, callouts, details, steps, cards, prompts and more: plain markdown that renders designed everywhere.

  • Wiki-LinksLinks between files: autocomplete, aliases, and links that survive renames.

  • Backlinks and GraphSee what links to a file, and navigate your workspace as a graph.

  • DiagramsMermaid in markdown, and turning mermaid into an editable drawing.

  • Themes and AppearanceTheme families, light and dark modes, and importing VS Code or base16 themes.

  • How Versioning WorksAutomatic version capture on every write, and how long versions last.

  • The Inline ComposerGenerate or rewrite text in place with the editor composer.

649 words