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.
| Type | Get |
|---|---|
# 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 language | Code block |
--- | Divider |
[[ | Wiki-link autocomplete |
Shortcuts work too, with Ctrl on Windows and Linux and ⌘ on macOS.
| Shortcut | Action |
|---|---|
| Ctrl+B / Ctrl+I | Bold, italic |
| Ctrl+E | Inline code |
| Ctrl+Shift+S | Strikethrough |
| Ctrl+Alt+1 to Ctrl+Alt+6 | Heading levels |
| Ctrl+Alt+0 | Back to a normal paragraph |
| Ctrl+Shift+8 / Ctrl+Shift+7 / Ctrl+Shift+9 | Bullet, numbered, task list |
| Ctrl+Shift+B | Blockquote |
| Ctrl+Alt+C | Code block |
| Tab / Shift+Tab | Indent or outdent a list item |
| Shift+Enter | Line break without a new paragraph |
| Ctrl+Shift+V | Toggle the pane to raw markdown and back |
| Ctrl+K | Open 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.
| Command | What it inserts |
|---|---|
| Heading 1, Heading 2, Heading 3 | A heading at that level |
| Bullet List, Numbered List, Task List | A list |
| Code Block | An empty fenced block |
| Quote | A blockquote |
| Divider | A horizontal rule |
| Date | Today's date, as 2026-09-17 |
| Time | The current time, as 14:30:00 |
| Timestamp | The current moment in ISO format |
| UUID | A random UUID v4 |
| Password | A 20-character random password |
| Secret | A 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:
| 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  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 it | What gets captured |
|---|---|
| You, in the editor | The 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 API | The state before every write, with no coalescing |
| You, right after an agent run | A 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.