Supported File Types
Monofile picks an editor from the file's extension. This page maps the 54 extensions it recognises to the nine editors that open them, and says what happens to everything else.
How the type is chosen
Only the name matters. Monofile reads the last dot segment of the filename, lowercases it, and looks it up. report.final.md is markdown, server.test.ts is TypeScript. The extension gives a MIME type, and the MIME type picks the editor.
So the type is a property you can change. Rename notes.txt to notes.md and it opens in the markdown editor from then on. There is no conversion step, because both are plain text.
The nine editors
| Editor | Opens | What you get |
|---|---|---|
| WYSIWYG | Markdown, text, unknown types | Live formatted editing, slash commands, [[wiki-links]], mermaid, tables, task lists |
| Code | Code, config and data files | Syntax highlighting, minimap, bracket colouring, folding, find and replace |
| HTML | .html, .htm | A sandboxed live render of the page, with a toggle back to the source |
| Drawing | .draw | An Excalidraw whiteboard: shapes, arrows, freehand, text |
| Canvas | .canvas | A spatial board of file, note, link and group nodes joined by labelled edges |
| Slides | .slides | A markdown slide deck rendered as a presentation, with an inspector for editing, a presenter window and HTML or PowerPoint export. See Slide Decks |
| Attachment | .pptx, .pdf | A download card for exported decks and PDFs; the bytes live in object storage |
| Image | Images | An inline viewer |
| Video | Video | An inline player with controls and a generated poster frame |
Markdown, HTML and canvas files also have a raw toggle. Press Cmd+Shift+V (Ctrl+Shift+V on Windows and Linux) to swap the rendered view for the source in the code editor, and press it again to go back.
Every extension
| Group | Extensions | Opens in |
|---|---|---|
| Markdown and text | .md .mdx .txt, no extension, any unrecognised extension | WYSIWYG |
| JavaScript and TypeScript | .js .jsx .ts .tsx .mjs .cjs | Code |
| Data and config | .json .yaml .yml .toml .xml | Code |
| Shell | .sh .bash .zsh | Code |
| Stylesheets | .css .scss .sass .less | Code |
| Other languages | .py .go .rs .java .c .cpp .h .hpp .cs .rb .php .swift .kt .sql | Code |
| HTML | .html .htm | HTML |
| Drawings | .draw | Drawing |
| Canvas boards | .canvas | Canvas |
| Slide decks | .slides | Slides |
| Attachments | .pptx .pdf | Attachment |
| Images | .png .jpg .jpeg .gif .webp .svg .avif | Image |
| Video | .mp4 .webm .mov .mkv .avi | Video |
What actually gets stored
Monofile stores every text type as plain text, byte for byte what you see under the raw toggle. Markdown files hold markdown. .draw and .canvas files hold JSON, and .slides decks are plain markdown. There is no wrapper format and no export step. The API, the CLI and the editor all hand you the same bytes.
So the rest of the product applies to every text file: versions on every write, [[wiki-links]], share links, agent reads and edits, diffs and reverts.
Images and video are the exception. Their bytes live in object storage and the file record carries a CDN URL instead of content, so uploading is the only way to create one.
Limits
| Limit | Value |
|---|---|
| Large text file warning | 5 MB |
| Media upload size | 500 MB per file |
| Accepted upload types | Images and video only |
| Nodes per canvas board | 500 |
Next steps
Markdown FilesMarkdown files, the WYSIWYG editor, and the markdown Monofile stores.
Code FilesMonaco-backed editing for every supported language, and what it gives you.
DrawingsExcalidraw drawings stored as .draw files, drawn by hand or generated from mermaid.
Canvas BoardsSpatial boards of live file nodes, notes, links, groups and labelled edges.
Slide DecksMarkdown slide decks: write them, edit them in the inspector, present, and export to HTML or PowerPoint.
HTML FilesHTML files with live preview, and artboard rendering on canvas.
Images and VideoHow images and video render, stream and get thumbnails, and where PDFs fit.
Data FilesJSON, YAML, TOML, XML and friends: editing, validation and formatting, and where CSV stands.
LimitsSizes, counts, timeouts and rate limits in one table.