HermesMarkdown Documentation

How can we help?

Everything HermesMarkdown does, feature by feature. Plain .md files, saved straight to your machine.

Get Started

Open a folder or a browser vault and write your first note.

Installation

HermesMarkdown is a web app — there's nothing to download or install in the traditional sense.

Every modern browser can run HermesMarkdown. What differs is where a vault can live: opening a folder on disk needs the File System Access API, which only Chromium-based browsers implement. Everywhere else, you use a browser vault.

Chrome / Edge / Brave / Arc / OperaDisk folders, browser vaults, GitHub
FirefoxBrowser vaults, GitHub
Safari (macOS, iOS, iPadOS)Browser vaults, GitHub

Install it as an app: use Install in the address bar (Chromium), Add to Dock (Safari on macOS), or Share → Add to Home Screen (iOS). The installed app opens in its own window and starts without a network connection once it has been loaded online.

Browser vaults

A vault stored in the browser's private storage — for Safari, Firefox, phones, and tablets.

Choose Browser vaults… from the command palette (or Browser Vault on the start screen), name the vault, and click Create. It works like any other vault — folders, WikiLinks, tasks, attachments — but the files live inside this browser's storage instead of a folder you can see on disk.

Browser vaults…Create, reopen, rename (pencil), or delete browser vaults
Rename vault…Rename the open browser vault; its notes stay as they are
Export vault as zipDownload every file as a backup (any vault)
Export vault to folder…Copy the vault into a folder on disk (Chromium)
Import files into vault…Add a zip, notes, or attachments
Import folder into vault…Add a whole folder (desktop browsers)

Imports never overwrite: a file whose name is taken is saved as name (1).md. To move a vault to another browser or device, export it as a zip there and import the zip into a new browser vault.

Need the same notes on several devices? Use a GitHub vault instead: it syncs through a repository you choose.

Create a vault

A vault is any folder on disk that HermesMarkdown reads and writes Markdown files in directly.

Choose Open Vault from the command palette and pick an existing folder, or create a new one in the picker.

The browser grants HermesMarkdown direct read/write access to that folder for the session. Nothing is uploaded — files stay where they are on disk.

Everything in the folder — your notes, your subfolders — is yours; HermesMarkdown never restructures it. The only thing it adds on its own is an assets/ folder at the vault root, created the first time you paste or drop an image into a note.

Opening folders on disk needs a Chromium-based browser. In Safari and Firefox, choose a browser vault instead.

New vault

Create a fresh, empty vault — name it, pick a location, and start writing.

Choose New Vault from the command palette.

Type a vault name (this becomes the folder name on disk) and click Choose parent folder to pick where the folder will be created, then click Create Vault.

HermesMarkdown creates the folder and opens the vault on its home feed. No example content is added.

Your first note

Start typing. On its first save the note asks which folder to go in, and it is named after its first line.

Press CTRL+ALT+N, click + on the home feed, or choose New file from the command palette. A blank note opens, ready to type, with no name prompt.

The note is saved to your vault once you finish the first line, or when you press CTRL/CMD+S. The file is named after the first line, for example Trip ideas.md. If the first line has no usable text, the date and time are used instead, like 2026-09-28 1432.md. An existing file is never overwritten: a taken name becomes Trip ideas (1).md.

The first save asks which folder the note goes in, with your default folder already selected: press Enter to accept it, or type to filter the list or name a new folder. If you dismiss the picker, the note stays an unsaved draft and nothing asks again, even after a reload; press CTRL/CMD+S when you're ready to choose.

A note you leave empty is never saved, so no empty files pile up in your vault. Renaming the first line later does not rename the file; use Rename current file for that.

Default folder for new notesVault root · Settings → New Notes Folder
Pick a folder and name firstNew file in folder… command
Create from a searchType a title in the palette, then Create "…"

No template or metadata is added. Want frontmatter? Type /frontmatter to insert a starter block. See Frontmatter. Autosave can be changed under Settings → Autosave. With autosave set to manual, a new note is saved only when you press CTRL/CMD+S.

Home feed

Your recent notes, newest first. It's where a vault opens.

The first note under Today is always today's sheet, a note named after the date (like 2026-10-09.md), marked with a small dot. Until you write it, that row reads Start today's sheet. The first time, you choose its folder: journal/{{year}} keeps one folder per year, and {{month}} works too. Change it later in Settings → Files → Daily Sheets Folder. If you have a template named Journal or Daily, new sheets use it. Press t, or run Today's sheet from the command palette, to get there from the keyboard, or type /daily in any note. For a timestamped line, make a template from the Log entry starter and insert it with /template.

Tasks lists the unchecked - [ ] tasks from notes you changed in the last 7 days. Click one to open its note with the cursor on that task. The list starts folded: click N open tasks to open it, and it stays the way you leave it. Tasks from sensitive notes aren't listed.

Each row shows a note's title, the first few lines of its text and its file name. The column on the left groups notes by the day they were last changed: Today, Yesterday, the weekday for the rest of the week, then the date. If you add your name in Settings → Guide, the feed greets you with it.

To keep a note at the top, hover its row and click the pin. On a phone or tablet, touch and hold the row, then choose Pin to Home; right-clicking a row opens the same menu. You can also open the note and run Pin to Home from the command palette. Pinned notes sit under Pinned above the days, newest pin first. Click the pin again, or run Unpin from Home, to put the note back. Each vault keeps its own pins.

The feed works from the keyboard, Vim-style, as soon as it opens: j and k move, gg and G jump to the newest and last note, o or Enter opens, p pins, t opens today's sheet, / searches and Escape goes back to your open notes.

With no vault open, the feed is where you start. It offers Open Vault, Create Vault and Browser Vault, or you can skip the vault: New Note opens a blank draft and Open File… opens a file from your device. Once a vault is open, your notes appear here.

At the bottom, Search or create a note… opens the command palette. Type to find a note, or type a new title and pick Create "…" to start that note. The > button opens the palette's command list, and + starts a blank note.

Move between notes↑ / ↓ or J / K
Open the selected noteENTER
Open today's sheetT
SearchStart typing
Back to your open notesESCAPE
Come back to the feedHome at the top of the sidebar
Back to the top of the feedHome again while the feed is open

On desktop, Home is at the top of the sidebar. On phones it's at the top left.

In a large vault, notes appear right away in the correct order. Their previews fill in from the top down while Indexing notes… is shown. Notes that haven't changed since last time load instantly from a cache kept in your browser.

A vault always opens on the feed, with the notes you had open last time waiting behind it. The bar at the top names the open vault and where it lives (a folder on this device, this browser or GitHub; on a phone, just the name). Click the name for the vault menu: your five most recent other vaults, then Open vault…, Create vault… and Browser vaults…, then Refresh vault and Close vault. A folder on your device may ask for access again when you switch back to it.

Close vault disconnects the vault after you confirm, and the feed becomes the start screen, with your recent vaults listed so you can reopen one with a click. The × next to a recent vault removes it from the list; its notes stay where they are.

Daily to yearly

Write each day. Give your weeks, months, quarters and years a sheet of their own, shaped by your templates.

Your worklog has five levels. Each one is a plain note in your vault, and every word in it is yours.

Daily sheet2026-10-09.md, one per day
Weekly sheet2026-W41.md, an ISO week from Monday to Sunday
Monthly sheet2026-10.md, a calendar month
Quarterly sheet2026-Q4.md, a calendar quarter (Q1 is January to March)
Yearly sheet2026-year.md, a calendar year

A week belongs to the year that holds its Thursday, so the week from Dec 28, 2026 to Jan 3, 2027 is 2026-W53. All of these sheets go in your Daily Sheets Folder (Settings → Files). If that folder has {{month}} in it, a week that spans two months goes in the month that holds its Thursday, a monthly sheet goes in its own month, and quarterly and yearly sheets go in the folder of their first month.

This week's sheet / Last week's sheetOpen the week's sheet, or create it
This month's sheet / Last month's sheetOpen the month's sheet, or create it
This quarter's sheet / Last quarter's sheetOpen the quarter's sheet, or create it
This year's sheet / Last year's sheetOpen the year's sheet, or create it

At the top of every worklog sheet, a line moves you between them: Day · Week · Month on the left, each with its own colour (days clay, weeks green, months slate), and ‹ date › on the right. Each level jumps to the sheet for the same date at that level: Oct 6 → week 41 → October. Quarter (plum) and Year (ochre) join the line once you have a quarterly or yearly sheet; open one from the command palette the first time. The arrows step back and forward at the current level. Days skip to the nearest day that has a sheet, and stepping forward from your latest one goes to today. Nothing goes past today, and browsing never creates empty sheets for past days; a weekly, monthly, quarterly or yearly sheet that doesn't exist yet is created when you open it. Sheet tabs carry the same coloured dot.

You can also run them from the command palette. Last week's sheet on a Monday morning and Last month's sheet on the 1st are for the period that just ended. If the sheet already exists, it opens as it is. The commands need an open vault.

Shape them with templates

A new weekly, monthly, quarterly or yearly sheet starts as a heading. Create a template named Weekly, Monthly, Quarterly or Yearly (see Templates) and each new sheet of that level starts from it instead. Its dates are the period's, so last month's sheet says October even on November 1. After that the sheet is yours: the app never changes it.

Four extra fields work here: {{period}} (the sheet's name, like 2026-W42), {{periodHeading}}, and {{previousPeriod}} / {{nextPeriod}} for links to the sheets either side. A starting point for your Weekly template:

---
type: weekly
---
# {{periodHeading}}

## Focus
- [ ] {{cursor}}
- [ ] 
- [ ] 

## Retrospective
- What went well?
- Where did momentum stall?
- Adjustments for next week:

← [[{{previousPeriod}}]] · [[{{nextPeriod}}]] →

In your daily template, [[{{weekSheet}}]] links each day to its week; see Templates for the other sheet names.

Editor layout

A full-screen editor with a slim header. Everything else is in the command palette and a few dedicated views.

There's no formatting toolbar above the text. Formatting happens through Markdown syntax, keyboard shortcuts, and the slash command menu.

The toolbar at the top shows your open notes as tabs, even when only one is open. Each pane keeps up to 20 open: opening another closes the one you looked at least recently, never one with unsaved changes. Worklog sheets share one tab: opening a day, week, month, quarter or year replaces the sheet already open in that pane, so the sheet switcher never piles up tabs. On the left: the Sidebar button, while the sidebar is hidden. On the right: Save, Search (the command palette) and AI Chat (when an AI key is set). The … More menu holds Copy Markdown, Export as PDF, Settings, Help and Hide Toolbar — every one of them is also in the command palette.

Toolbar buttons are icons; hover one to see its name and shortcut. Right-click the toolbar to hide it.

The sidebar starts with Home and lists your open notes across every pane. With a vault it adds Today (today's sheet) and Tasks below Home, and ends with the file tree. Show it with the Sidebar button at the toolbar's far left and hide it with the button in its own header, or toggle it with CTRL/CMD+ALT+S or the Show sidebar command, and drag its edge to resize it (double-click the edge to reset; with the edge focused, the arrow keys resize it too). Folded sections stay folded. The Explorer below remains the place for bigger file work.

Open the dedicated Explorer with CTRL/CMD+SHIFT+E (or CTRL/CMD+B when the cursor isn't in a note, where it means Bold) or the Open Explorer command. It provides a full workspace view for browsing, organizing, renaming, moving, and deleting files and folders without covering the editor. Tasks uses a matching dedicated view; file search, tags, and headings are available through the command palette.

Home feedHome button in the toolbar
SidebarShow: Sidebar button at the toolbar's far left / Hide: button in the sidebar's header / CTRL/CMD+ALT+S
ExplorerDedicated files view / CTRL/CMD+SHIFT+E
Quick switcherCTRL/CMD+K or CTRL/CMD+P
Command paletteCTRL/CMD+SHIFT+K or CTRL/CMD+SHIFT+P
Search note textCTRL/CMD+SHIFT+F
Palette modes# vault tags · > commands · ! tasks · @ current-note headings · / note text
Commands on or offThe > button in the search field
Explorer controlsRefresh, new note, new folder, and file actions
AI ChatCTRL+SHIFT+B
Keyboard shortcutsShow keyboard shortcuts command

Open several files side by side: run Split pane right from the command palette (or Open in pane on a tab), drag tabs between panes, and resize with the divider.

To be alone with the text, choose Hide Toolbar from the More menu (or press Ctrl/Cmd+Alt+T, or run Hide toolbar) and the tabs and toolbar slide away. A small chevron in the top-right corner brings them back.

Keyboard shortcuts

The full reference, grouped by where you're using it.

Editor

SaveCTRL/CMD+S
BoldCTRL/CMD+B
ItalicCTRL/CMD+I
StrikethroughCTRL/CMD+SHIFT+X
Inline codeCTRL/CMD+E
Heading 1–6 (press again to remove)CTRL/CMD+ALT+1…6
LinkCTRL/CMD+SHIFT+L
Code blockCTRL/CMD+ALT+C
Find and replace in noteCTRL/CMD+F
Undo / redoCTRL/CMD+Z / CTRL+Y
Indent / outdent list itemTAB / SHIFT+TAB
New list item (Enter twice ends the list)ENTER
New line inside the same list itemSHIFT+ENTER
Cycle task statusCTRL/CMD+ENTER
Open helper at cursor (link, date, diagram, image)CTRL/CMD+SHIFT+ENTER
AI ChatCTRL+SHIFT+B
Dismiss / closeESCAPE

Tabs & files

Open ExplorerCTRL/CMD+SHIFT+E
New fileCTRL+ALT+N
Close current tabCTRL/CMD+ALT+W
Select workspace tabCTRL/CMD+1–9
Hide / show toolbarCTRL/CMD+ALT+T
Show / hide sidebarCTRL/CMD+ALT+S

Table

Next / previous cellTAB / SHIFT+TAB
Cell below (adds a row at the end)ENTER
Move across cells, leave the tableARROWS
Leave the tableESCAPE
Insert row belowCTRL/CMD+ENTER
Delete rowCTRL/CMD+SHIFT+BACKSPACE
Move row up / downALT+↑ / ALT+↓
Move column left / rightCTRL/CMD+ALT+← / →
Row, column & table actionsRIGHT-CLICK a cell

Navigation

Open Link or DateCTRL+CLICK
Toggle task checkboxCLICK [ ] / [x]
Cycle lifecycle tagCLICK ‹ #tag ›

Home feed

Move between notes↑ / ↓ or J / K
Newest / last noteG G / SHIFT+G
Open the selected noteENTER or O
Pin or unpin the selected noteP
Open or start today's sheetT
Search/ or start typing
Back to your open notesESCAPE

Command Palette

Open Quick SwitcherCTRL/CMD+K or CTRL/CMD+P
Open Command PaletteCTRL/CMD+SHIFT+K or CTRL/CMD+SHIFT+P
Search note textCTRL/CMD+SHIFT+F
FilterKeep typing
Switch between files and commandsCLICK >
Navigate results↑ / ↓ or TAB
Pin / unpin the selected itemCTRL/CMD+D
Run commandENTER
DismissESCAPE

Free tools

Small, single-purpose tools that run in your browser without a vault or an account, and hand their result to the editor.

The tools page lists them. Each one is useful on its own: copy the result, or download it.

Markdown Table GeneratorEdit a table like a spreadsheet and copy clean Markdown. No syntax to remember.
Mermaid in MarkdownWrite a diagram as text, watch it draw itself, and drop it into any Markdown file.
Markdown CleanerPaste anything with text in it and get clean, standard Markdown back.
AI TokenizerSee how language models read your text: every token, highlighted, with a live count.
Token Cost CalculatorPaste a prompt or a document and see what it costs on each model, input and reply.

Open in HermesMarkdown carries the result into the editor as your draft: a table with its formulas still calculating, a diagram rendered inline, the cleaned Markdown, or the text you tokenized. If the draft already has text, the editor asks before replacing it; cancel and your draft stays as it was, with the tool's work still on its page (press Back). The draft then saves like any other: into your vault once it has a first line or, with no vault open, as a download when you save.

The work on a tool page is kept in that browser tab only, so a refresh doesn't lose it and a new tab starts fresh. Open in HermesMarkdown stays in the same tab for the same reason.

To price a note you already have, run Token cost of this note from the editor's command palette. It counts the note in the focused pane and shows what sending it costs on each model.

Editor

Writing, Markdown marks, tables, templates, tabs, split panes and PDF export.

Writing

Write Markdown with inline highlighting and click actions.

You always edit the Markdown source, styled as you type: headings, emphasis, links, tags and dates are highlighted in place, and tables render as an editable grid. Word wrap, line numbers, Show Invisibles (¶ on empty lines, dots for spaces), font and theme live under Settings.

The text sits in a column about as wide as a page, so lines stay easy to read on a wide screen. Changing the text size never moves the column's edges; it only changes how much fits on a line. To use the whole editor instead, turn on Full Width under Settings → Editor, or run Enable full width from the command palette.

Dates (2026-09-27, 27/09/2026, [[2026-09-27]], @due(…), a task's @started(…) and @done(…)) and @priority annotations show as pills around their text. CTRL+Click a date to open the date picker.

Press CTRL/CMD+F to find and replace in the note, with match case, whole word and regex options. CTRL/CMD+ALT+1…6 turns the line into a heading (press it again to remove it), CTRL/CMD+SHIFT+L wraps the selection as a link and CTRL/CMD+ALT+C wraps it in a code block, or removes the block around the caret.

Paste or drop an image and it's saved to the vault's assets/ folder and linked with ![](assets/…). Paste comma- or tab-separated data outside a table and HermesMarkdown offers to convert it into a Markdown table.

Paste rich text from a web page, Google Docs, Word or an email and it arrives as Markdown: headings, lists, links, tables, bold and italics, converted the same way as the Markdown Cleaner in Free Tools. A toast offers Paste as plain text if you wanted the bare text instead, and CTRL/CMD+SHIFT+V always pastes plain text. Pastes into code blocks, bare URLs and copies with no formatting paste as usual.

Shortcodes

Type a shortcode and it expands in place.

{date} · ..d · {time} · {datetime}Current date / time
..tomorrow · ..yesterdayRelative dates
{iso} · {unix} · {day} · {week} · ..logTimestamps & log prefix
{todo} · {done} · {table}Task line / starter table
{check} {error} {idea} {warn} {fix} {bug} {star}Emoji
calc(2*21)=Inline calculation

For running totals that keep their working, use the inline calculator instead.

Vim mode

Use familiar Vim motions and editing modes in the source editor.

Turn on Vim mode under Settings → Editor (or the Enable Vim mode command). Outside Insert mode, a small pill at the bottom right of the note shows the current mode and any keys of a command you haven't finished. Typing : or / opens the command line in that pill.

Flow mode

Fade everything but the paragraph you're writing and keep the current line centered.

Turn on flow mode under Settings → Editor (or the Enable flow mode command). It's off by default.

Paragraph focusOther paragraphs fade while you write
Typewriter scrollingThe caret line stays centered

The current paragraph is the run of non-blank lines around the caret. Everything else dims while the editor has focus and returns to full strength when you click away. Typing, deleting, undo/redo and moving with the keyboard keep the line centered; clicking or selecting with the mouse never scrolls the view.

Hide interface while typing

Once you start typing, the toolbar, tabs and sidebar fade away and only the page is left.

Move the mouse over the tabs or the sidebar and everything comes back; moving it over the text leaves the page alone. On a phone, tap anywhere outside the text. The layout never moves, so the line you're typing stays where it is.

It's on by default. Turn it off under Settings → Editor, or with the Keep interface visible while typing command.

Markdown marks

Notes read like a page: Markdown marks appear only where you're editing.

Bold, italic, strikethrough and inline-code marks are hidden until the caret touches the text they wrap. A heading's # and a quote's > show faintly in the margin while the caret is on their line, so the words never move. Lists look the same whether you're editing them or not, and a long item wraps under its own text. Typing - at the start of a line adds the space after it, so you can go straight to the item; keep typing dashes for a --- rule. Tags and dates keep their chip while you edit the text inside it.

**bold**, *italic*, ~~strike~~, `code`Marks show while the caret is inside
# Heading, > QuoteMarks show in the margin while the caret is on the line
- List itemAlways shown as • (◦ when nested)
- [ ] TaskAlways shown as a checkbox; click it to tick the task
1. Numbered itemThe number sits in a muted column
> [!note] TitleShown as a rounded card with the type's icon and label; press Home on the line to edit the type
> [!note]- TitleStarts collapsed when the note opens (+ starts expanded); folding with the chevron writes the sign for you
```js … ```Fences fade out away from the caret; the language shows in the corner
#tag, 2026-10-08Stay chips while you edit them
Other editorA split pane you're not typing in shows no marks

Tables

Tables always render as a clean grid you edit like a spreadsheet: click a cell and type. The pipe syntax stays out of sight.

Type /table in the slash menu, or the {table} shortcode. Both drop a 3×2 starter table and put you in its first cell.

Click any cell to edit it in place. Tab moves to the next cell, and tabbing out of the last one adds a row. Enter moves down a column. The arrow keys cross cell edges and step out of the table at its borders. The file is updated as you type, so undo, autosave and split panes always match what you see. The file on disk is still a plain Markdown pipe table.

A focused cell shows its raw Markdown, such as **bold** or links. Every other cell shows the rendered result. Ctrl/Cmd+B, I and E wrap the selection in bold, italic or code, and Ctrl/Cmd-click opens a link. A pipe you type is stored escaped, so it can't split the cell.

While you edit a table, column letters (A, B, C…) and row numbers (1, 2, 3…) appear around it, like in a spreadsheet, with the current cell's row and column highlighted. Click a letter or number for that column's or row's menu, or right-click any cell (long-press on touch). Nothing is drawn on top of the cells.

RowInsert above / below, move up / down, delete
ColumnInsert left / right, move, sum, sort, align, delete
TableEdit as Markdown, copy as CSV or JSON, delete (confirm with a second click)

Paste a range copied from a spreadsheet (or multi-line CSV) into a cell. It fills the cells from there, adding rows and columns as needed. Smart sorting recognizes dates, currency and plain numbers. Each structural change is a single undo step.

If a table looks wrong (say, a line you typed just below it turned into a row), choose Edit as Markdown from the menu or press Ctrl/Cmd+Shift+Enter in a cell. The table shows as plain pipe text so you can fix it by hand, and turns back into a grid when you move the caret out of it.

Formulas

Start a cell with = to compute it, like a spreadsheet. The cell shows the result, and clicking it shows the formula for editing. Columns are lettered A, B, C… and the header is row 1, so the first data row is row 2, matching the letters and numbers shown around the table while you edit. Sum column in the table menu adds a totals row for you. Rows you add at the end (Tab or Enter) go above the totals row, and its ranges grow to include them.

Cell & range=B2 · =SUM(B2:B5) · =AVERAGE(B2:D2)
FunctionsSUM, AVERAGE, COUNT, COUNTA, MIN, MAX, ROUND, ABS, IF, AND, OR, NOT, CONCAT
Another table=SUM(Income!B) — named by the heading above it
Another note=[[Budget]]!B5 · =[[Budget#Income]]!B5

Amounts like $2,000 or 1000 RON count as numbers, and totals keep their currency. Errors show spreadsheet-style (#REF!, #DIV/0!, #CIRCULAR!, #NAME? for an unknown function, #VALUE! for text where a number is needed). Rows containing a formula are treated as summary rows and are never moved by sorting.

AI features know this syntax too. See AI & table formulas.

Inline calculator

Type math into any note and see the answer at the end of the line, with named values you can reuse further down.

Write an expression on its own line and its result appears in faint text at the end of that line. Give a value a name with name = … and use it on any later line of the same note. Names can be several words and ignore case, so Monthly rent and monthly rent are the same value. In this example you type the left side; the editor adds the = … results:

rent = 1200
utilities = 180
rent + utilities          = 1380
rent + utilities + 15%    = 1587
+ − * / ( )Arithmetic
450 + 15%= 517.5 · percent of the left side
15% of 200= 30
1,200 * 3= 3600 · thousands separators
rent = rent + 100Redefines a value from its old one

Only lines that are math get a result. Prose, headings, plain numbers (1200), simple definitions (rent = 1200), dates and phone numbers are left alone, and so is everything in frontmatter, code blocks and $$ math blocks. List items work: - rent + utilities still shows its total. Comparisons such as a == b or a >= b never define a value.

Results are rounded to four decimals and have no thousands separator. If a line can't be worked out, for example because it uses a name that isn't defined above it, it simply shows no result.

Code, diagrams & math

Fenced code blocks get real syntax highlighting, and Mermaid diagrams and LaTeX math render right in the note.

Any fenced code block (/code in the slash menu, or typing ```` ```lang ```` yourself) is syntax-highlighted as you type, for any language CodeMirror recognizes from the fence's language tag. Inserting one from the slash menu offers a language picker.

Insert a diagram with /mermaid or type a ```mermaid fence. Once the fence is closed, the editor shows the rendered diagram in its place. Double-click it (or use its Edit button, or press CTRL/CMD+SHIFT+ENTER with the cursor next to it) to edit the source with a live preview. From there, Open viewer lets you zoom, fit-to-width, and download the SVG. Syntax errors show in place of the diagram.

Display math works the same way: put LaTeX between $$ lines (or on one line, as $$ E = mc^2 $$), or in a ```math fence, and it renders with KaTeX.

```mermaid
graph TD
  A[Start] --> B{Decision}
  B -->|Yes| C[Do it]
  B -->|No| D[Skip it]
```

Slash menu

Type / at the start of a line or after a space for a searchable menu of insertable content, plus AI actions when AI is configured.

Keep typing after / to fuzzy-filter by name; ↑/↓ to move the selection, Enter to insert, Escape to dismiss.

Link · WikiLinkOpen the link dialogs
DatePick a date from a calendar
TaskChecklist task with status, due date & tags
TableStarter table
Code · MermaidFenced code / diagram block
Callout · CollapseCallout / collapsed callout
FrontmatterInsert or reveal the YAML block
Template (/template, /tpl)Insert a template from your vault
Daily (/daily)Open today's sheet (with a vault)
AI Chat & AI actionsOnly when AI is configured

Templates

A template is a note you start other notes from. Fields like Today's date or Ask: Owner fill in each time you use it.

Make a template

Run New template… from the command palette, pick a starter and give it a name:

  • Basic: a title, today's date and one question.
  • Journal: today's date as the heading, room to write, and what you're grateful for.
  • Log entry: one line starting with the time (- 14:20 ). Insert it with /template to log something in today's sheet.
  • Meeting notes: agenda, decisions, action items, open questions, next steps.
  • Spec: author, status and version, then summary, objective, prerequisites, design, open questions and references.
  • Report: summary, findings, next steps and notes.

Or turn a note you already like into one: run Save as template… from the command palette, or type /save-template in the note. Only a name is asked, prefilled from the note's first heading. The note is copied into your templates folder as a plain .md file.

Edit a template like any note: open it from the file tree, or hover it in the template list and press the pencil (⌘E / Ctrl+E). The line at the top says Editing template. Changes save as you type and apply the next time you use it.

Add fields

A field is a spot that fills itself in when the template is used. Press + Add field in the line at the top of the template, or type /field, and pick one:

Ask a question…Asks you each time, e.g. Owner. Questions you already ask are listed first, so reusing one fills in the same answer
Today's date2026-10-05
Current time14:30
Weekday, Month nameMonday, October
Year, Month number, Day of the month2026, 10, 05
Note titleThe new note's title
Title as file nameauth-spec
ClipboardWhat you last copied
Start typing hereWhere the caret lands
Selected textWhat you had selected when inserting the template
Tomorrow's date2026-10-06; also any other day, week, month or year away
Blank to fill in…Stays in the new note as a highlighted blank, e.g. Task 1

In a template, fields show as small labelled boxes. Click one to see what's really written in the file. If something won't fill in, such as a misspelled field, the line at the top tells you.

Fill in the blanks

Blanks left by a template show as grey boxes in the new note. Press Tab to select the next one and type to replace it, or Shift+Tab to go back. Clicking a blank selects it too. When none are left, you'll see Template ready ✦. Press Esc to use Tab normally again in that note.

Where new notes go

The line at the top of a template also says New notes go in. Click the folder to pick another one, or to create one. By default, notes go to your New Notes folder.

Use a template

  • Start from an empty note: a new, empty note shows your templates as small buttons under the first line. Click one to fill the note. They disappear as soon as you type.
  • New note from template… in the command palette: pick a template, type a title, answer its questions, and the note opens.
  • /template in a note: inserts a template where you're typing. The list shows what each template contains (like "3 sections • Action items") and a preview: click a template to see it, then press Use template (or double-click it). Press ⌘1–⌘9 (Ctrl+1–9) to use one straight away.
  • Adding a link ([[ or the WikiLink dialog): the From template tab creates the linked note from a template. The template its name points to is picked for you, so "Meeting notes 2026-10-05" suggests Meeting notes and a date suggests your journal.
  • Clicking a link to a note that doesn't exist yet, like [[rfcs/auth-spec]]: pick a template (or a blank note) for it. A template named after the folder, like rfc, is suggested first.

Under the hood

Templates are the .md files in your templates folder (the first of templates/, _templates/ or Templates/, or the one set in Settings → Files → Templates Folder). They stay plain text: a field is written {{date}}, a question {{prompt:Owner}}, and the folder is a target_folder line in the frontmatter. You can also type these by hand. Typing {{ opens the same field list. An optional file_name line names new notes, and fields work in it too:

Dates take a format after a colon, such as {{date:dddd, D MMMM}} (Monday, 5 October) or {{time:H.mm}}, using YYYY YY MMMM MMM MM M dddd ddd DD D HH H mm ss and [literal text]. Date math works too: {{date+1d}}, {{date-2w}}, {{date+1m}}, {{date+1y}}, and with a format, {{date+1d:dddd}}. {{selection}} is the selected text. Any other name, like {{task_1}}, is a blank.

Worklog sheet names have fields too: {{weekSheet}} (2026-W42), {{monthSheet}}, {{quarterSheet}} and {{yearSheet}}, with date math, so [[{{weekSheet-1w}}]] links last week. Templates named Weekly, Monthly, Quarterly or Yearly shape new weekly, monthly, quarterly and yearly sheets; see Daily to yearly.

---
target_folder: rfcs
file_name: rfc-{{date}}-{{slug}}
---
# {{title}}
Owner: {{prompt:Owner}}
{{cursor}}

Other frontmatter lines (author, status, …) are copied into each new note. Templates stay out of the Tasks page and the home feed. AI Chat can write templates for you; see AI templates.

Tasks page

A vault-wide checklist — every checkbox task across every note, in four lists: Now, Today, Upcoming and All.

Open it from the command palette (Open Tasks). The page scans every file in the vault for Markdown task lines.

- [ ] taskTo Do
- [/] taskIn Progress
- [!] taskOn Hold
- [x] taskDone
- [-] taskCancelled

A task's status is the character in its box, and nothing else: tags on the line never change it. In the editor, a click on the box completes the task (or reopens a done or cancelled one), Ctrl/Cmd+Enter cycles To Do → In Progress → Done, and the command palette has Task: Start, Task: Put on hold, Task: Cancel and Task: Reset to To Do.

Status changes date the task for you. Starting it adds @started(2026-10-12) (once: pausing and resuming keeps the first date), and completing it adds @done(2026-10-12), both at the end of the line. Reopening a done task removes @done; resetting it to To Do removes both, as if it was never started. The Tasks page shows them under the task, like Started 2 days ago or Done today, and you can edit or delete them like any other text.

A task can also carry a due date (@due(2026-01-31)), a priority (@priority(high|med|low)), and any number of custom #tags — all stripped from the display text and shown separately under the task. Due dates are color-coded: overdue tasks are flagged in red, tasks due today in amber.

NowIn Progress, then Up Next: the next five to-dos by due date
TodayOverdue, then due today
UpcomingLater due dates, one section per day
AllEvery task, grouped by status or by note

Switch lists with the control under the title; each shows how many tasks it holds, and the page remembers the last one. Now, Today and Upcoming list only open tasks (to do, in progress, on hold). Type in the search field to filter by text, or type # to pick a tag; picked tags show as chips under the field, and a task must carry every one. Search and tags apply to every list. In All, the ⋯ menu groups by status or by note and sorts by due date, priority, status, note or title, ascending or descending.

Click a task's status ring to complete it, or to reopen a done or cancelled one. For any other status, right-click the ring (long-press on touch) or use the ⋯ button at the end of the row. The change writes straight back to the source line in the file, no need to open it first. Click the task text instead to open its note and jump to that line.

After a change, the task stays where it is for a moment, already showing its new status, so you can tick off several in a row without the list moving under you; then it moves to its new place. A toast says what changed, with Undo to put the line back exactly as it was, dates included.

On a touch screen, swipe a task. Swipe right to move it forward: Start a to-do, Complete a task in progress, Resume one on hold, or Reopen a done or cancelled one. Swipe left to set it aside: Hold, or Cancel a task already on hold. The action runs once the row passes the point where its label brightens; let go before that to leave the task as it was.

Frontmatter

The YAML block at the top of a file — edited as plain text, with a shortcut to add one.

Type /frontmatter to insert a starter block with title and tags and put the cursor on the title. If the file already has frontmatter, the same command unfolds it and jumps to it instead.

---
title:
tags: []
---

The editor gives frontmatter a subtle background. Collapsed, it shrinks to one quiet Properties row at the top of the note. A status and the first few tags show as chips, followed by the names of the other keys (for example Properties · draft #work #ideas · title, created). Click the row, or press the up arrow from the first line, to expand it; the same row, now the top of the frontmatter panel, collapses it again. Clicking the row changes the note in front of you (in every split pane showing it) and is remembered: notes you open next start the same way.

Callout blocks

Obsidian-compatible callout syntax — a typed, foldable blockquote, written in plain Markdown.

> [!tip] Optional title
> Body text, same as a regular blockquote.

Insert one from the slash menu: /callout adds a plain [!note] callout and /collapse adds a foldable one that starts collapsed. Change note to any type below.

Add + or - after the type to make it foldable: + starts expanded, - starts collapsed. No suffix means a plain, non-foldable callout.

> [!warning]- Collapsed by default
> Click the title to expand.

The type is case-insensitive and any word works, but these have dedicated colors and icons:

note📝
abstract📋
infoℹ️
tip💡
success✅
question❓
warning⚠️
failure❌
danger🔥
bug🐛
example📑
quote💬

Command palette

A fuzzy-searchable list of every app-level action — open it instead of hunting for a menu.

Open it anywhere with CTRL/CMD+K (files) or CTRL/CMD+SHIFT+P (commands). On mobile, tap the active-file bar. The palette opens in Quick Open mode, where plain text searches note names and paths. To search inside notes, start with / or press CTRL/CMD+SHIFT+F.

Plain textFiles by name or path
#All unique vault tags; choose one to filter Files
>Commands by name, description, category, or keyword
!Tasks; choose one to open its note at the source line
@Headings in the active note; choose one to place it at the top
/Note text across the vault; choose a line to open the note at that match

Note text search ignores case and finds notes that contain every word you type, in any order (at least 2 characters; no fuzzy matching). Frontmatter isn't searched; code blocks are. Exact phrases rank first, and each note shows up to three matching lines. Sensitive notes never appear in note text results, whatever the Privacy Mode. Right after a vault opens, a footnote shows how many notes are still being indexed.

Matching is fuzzy and deterministic. Recently opened files and recently run commands receive a ranking boost. Commands that need a vault, active note, selection, AI provider or another pane remain visible when useful and explain why they are disabled. Async commands show a running state and cannot be submitted twice. Press CTRL/CMD+D to pin the selected file or command (up to five) to the top of the palette.

SaveCTRL+S
FilesNew, import, export, copy, rename, duplicate, move, move to Trash
FoldersNew folder (one level at a time)
EditingUndo, redo, focus, formatting, tasks, and templates
AIChat and selection/document actions
Home feedYour recent notes
This week's / Last week's sheetOpen or create the week's sheet
This month's / Last month's sheetOpen or create the month's sheet
This quarter's / Last quarter's sheetOpen or create the quarter's sheet
This year's / Last year's sheetOpen or create the year's sheet
Export as PDF…Print the note, or save it as a PDF
Open ExplorerCTRL/CMD+SHIFT+E
Open Tasks—
PanesOpen in pane, split down, next/previous, close
TabsNext/previous, close current/other/all
TasksGrouping, due-date filters, and clear filters
Show / hide hidden files—
AppearanceTheme, full width, word wrap, and line numbers
SettingsEditor font, autosave, Vim, and AI provider
GitHubCommit, push, sync, pull — GitHub vaults only
Open Vault / Close Vault / Refresh Vault—
Create new vault—
New fileBlank note, named from its first line
New file in folder… / New folderChoose a vault folder, then enter a name
Rename / DeleteUses the same prompts for files and folders
Open AI ChatCTRL+SHIFT+B · when AI is configured
NavigateHome, editor, settings, documentation, and welcome tour

Searching for a note that doesn't exist? The last result, Create "…", starts a new note with that title. The > button in the search field switches between searching files and searching commands.

Use ↑/↓ (or Tab/Shift+Tab) to move through results, Enter to run the selected item, and Escape to close. The controlled clear button resets the query without closing the palette and returns focus to the search field.

Combine this with the per-context shortcuts in Keyboard shortcuts and the slash command menu (/) for inserting content, and the editor is fully operable without ever reaching for the mouse.

Export as PDF

Save a clean, printable PDF of any note. It's made on your device; the note never leaves it.

Run Export as PDF… from the command palette, or choose it from the toolbar's More menu. Your browser's print dialog opens with the note laid out for paper; choose Save as PDF as the destination (on iPhone and iPad, share the preview or save it to Files).

PrintedHeadings, lists, task boxes, tables, code, callouts (folded ones open), Mermaid diagrams, math and vault images
Left outFrontmatter, raw HTML and comments
LinksWeb links stay clickable; wikilinks print as their text
LookAlways light, whatever your theme, with page breaks that keep rows, code blocks and headings together

The PDF's title comes from the note's first heading, or its file name. A note marked sensitive can only be exported once you've shown it. CTRL/CMD+P still opens the command palette.

Vault

How notes are stored: folders on disk, browser vaults and GitHub.

Vault overview

A vault is a folder. HermesMarkdown reads and writes plain Markdown files in it and otherwise leaves it alone.

Any folder you open becomes a vault. Subfolders, file names, and organization are entirely yours — HermesMarkdown doesn't enforce a structure or move files around.

my-vault/
  projects/         ← yours
    roadmap.md
  daily/            ← yours
    2026-06-25.md

Every note is a plain .md file, optionally with a YAML frontmatter block. Open the folder in any other editor, sync it with Dropbox or Google Drive, or move it to another machine — nothing about it depends on HermesMarkdown being installed. The only folders HermesMarkdown creates on its own are assets/, for images you paste or drop into a note, and the hidden .hermes/trash/, which holds what you delete for 30 days.

Folder on diskChrome, Edge, Brave, Arc, Opera
Browser vaultEvery modern browser, including Safari, Firefox, iPhone, iPad
GitHub vaultEvery modern browser; syncs with a repository

A browser vault holds the same plain files, just inside the browser's private storage instead of a folder you can see. Nothing is locked in: Export vault as zip hands you every file, and Import files into vault… brings a zip or folder into any vault.

Organizing files

The file tree in the sidebar, the Explorer and the mobile Files panel works like a Finder list: select, drag, rename in place, and undo.

Click a row to select it, CMD/CTRL-click to add or remove rows, and Shift-click to select a range. Drag a selected row onto a folder to move the whole selection; hovering a closed folder while dragging opens it. Right-click a row (or use its ⋯ button) for its actions, or empty space for New Note and New Folder. Empty folders always show, so you can set up a structure before filling it.

New notes and folders, and renames, are named right in the list: type, then press Return or click away to keep the name, or Esc to back out.

↑ / ↓Move the selection (Shift extends it)
→ / ←Open or close a folder; step in or out
Return (Mac) / F2Rename
CMD+O or CMD+↓ (Mac) / EnterOpen
CMD+Backspace (Mac) / DeleteMove to Trash
CMD/CTRL+ZUndo the last rename, move or move to Trash
CMD/CTRL+ASelect all

GitHub vaults

Optionally keep a Markdown vault in a GitHub repository you control, with explicit commits instead of background uploads.

Choose Connect GitHub Vault when opening a vault. You can select a repository you can access or create a new private repository. HermesMarkdown imports Markdown files and files under .hermes/; other repository files are left outside the vault workspace.

New repositoryPrivate
Imported content*.md and .hermes/**
BranchRepository default branch
CredentialsEncrypted HttpOnly session cookie

Branches

A GitHub vault opens on the repository's default branch, commonly main. The branch remains fixed for that vault workspace. Branch switching and branch creation are not available in HermesMarkdown yet; create or select the desired default branch in GitHub before connecting it.

Commit and sync

Save your notes, then use the command palette's GitHub: Commit, GitHub: Push, or GitHub: Sync command. All three create a commit directly on the connected branch, so there is no separate local Git staging area or push step.

HermesMarkdown compares the branch head recorded when the vault was opened before updating it. If somebody else advances the branch, the app stops rather than silently overwriting their changes. Run GitHub: Pull to bring in their changes, then commit again.

Privacy and access

Connecting GitHub uses OAuth with the repo permission so the signed-in user can read and write repositories they own or can access. The access token stays server-side in an encrypted HttpOnly cookie and is never written to note files, IndexedDB, or client-side application state.

Frontmatter conventions

Frontmatter is optional and free-form. A few fields are read by the app.

titlestring · optional
tagslist · optional
sensitivetrue · optional
Anything elseKept as-is

title

A display title for the note. Notes save fine without it — the file name is the identifier.

tags

Free-form tags. Together with inline #tags, they feed the palette's # mode.

sensitive

sensitive: true, private: true, or a sensitive / private tag, marks a note as sensitive.

Sensitive notes

Keep notes with revenue figures, keys or personal details off the screen while you share or record it.

Mark a note in its frontmatter, so the marker travels with the plain Markdown file:

---
sensitive: true
---

or

---
tags: [finance, private]
---

Or type /privacy in a note: on a normal note the slash menu offers Privacy: mark as sensitive, which adds sensitive: true to its frontmatter, creating the frontmatter block if the note has none. On a sensitive note it offers Privacy: mark as public instead, which removes every marker: the sensitive and private keys and any sensitive / private tag.

Only frontmatter counts: an inline #private hashtag in the body doesn't mark the note. Any marker wins, so sensitive: false with a private tag is still sensitive.

Privacy Mode

Choose how sensitive notes appear in the home feed, the command palette and the Tasks page under Settings → Privacy → Privacy Mode, or with the Privacy mode: … commands in the palette. The choice is remembered.

Show titles (default)Title with a lock; preview and task text replaced by bullets
Hide notesLeft out of the home feed, search results and the Tasks page

Opening a sensitive note

A sensitive note opens behind a veil showing only its title. Show note reveals that note; Show all sensitive notes this session (also a palette command) reveals every one. Both last until you reload the app. Marking a note you have open as sensitive doesn't hide it: it stays revealed for the rest of the session and is veiled the next time you open it after a reload.

AI Features

Bring your own key for chat, drafting, formulas and more.

BYOK setup

AI features need your own Anthropic or Google Gemini key — there's no default model HermesMarkdown provides.

Anthropic ClaudeModels fetched from your account
Google GeminiModels fetched from your account

Settings → Provider Config → choose a provider → paste your API key → Test Connection, then pick a model (use the refresh button to reload the list). Once a key validates, AI Chat, the Ask AI toolbar, and the AI items in the slash menu appear. The palette's AI: … actions are always listed and explain that a key is needed until one is set.

The key is stored in your browser. Each AI request passes through HermesMarkdown's servers on its way to Anthropic or Google — the key is never logged or saved there. See Privacy model for the full picture.

AI commands

One place to talk to the AI — AI Chat — plus one-click rewrite actions, all once a key is configured.

AI Chat

Open it with CTRL+SHIFT+B, the Open AI Chat command, or the 💬 Ask AI button in the toolbar that appears on a text selection. The chat sees the current note and your selection. Type @ to reference another note by name, or use @folder:path / @vault to share an index (paths, titles, tags) of a folder or the whole vault. Attach images or files, ask follow-ups, and switch models per chat.

Nothing changes your note until you choose: each reply can be edited, then used to replace the selection (or insert at the cursor) or replace the whole note.

One-click actions

Common rewrites skip the conversation. Run them from the command palette (AI: …) or the slash menu; they work on the selection, or on the note where that makes sense. Each result opens in a diff review — red for removed, green for added — with Replace, Insert Below, or Cancel.

RewriteImprove writing · Fix spelling and grammar · Shorten · Expand
ToneFormal · Casual · Direct · Polished
StructureSummarize · Extract tasks · Create outline · Generate title
OtherContinue writing · Explain selection

AI templates

Ask AI Chat for a template and it writes one you can save into your templates folder with one click.

Mention a template in AI Chat, for example “make me an RFC template that asks for an owner”, or start a message with /template. From then on, the chat knows the template tokens and the target_folder / file_name keys. Each template in a reply shows a card with its path (for example templates/rfc.md) and any problems it spotted, like an unknown token.

Nothing is saved until you click Save template. If a template with that name exists, the button reads Replace template. Saved templates show up in /template straight away. You need an open vault to save.

The template instructions are only added to chats that mention templates, as part of the same AI request. Nothing else is sent.

Weekly review and tasks in AI Chat

Ask AI Chat for a weekly review, or about your tasks, and it works from your own daily sheets and open tasks.

Ask for a weekly review (“write my weekly review”, “recap last week”) or start a message with /review. The chat reads this week's daily sheets, or last week's when you say so. It sees what got done, what is blocked and what is still open, and drafts Highlights, Blocked, Carry over and Next week. The draft links each day, ready to paste into the weekly sheet's Notes.

Mention tasks, to-dos or action items, or start with /tasks, and the chat sees your open tasks: in progress, to do and on hold, with their due dates, priorities and notes. Ask what to work on next, what's overdue, or paste meeting notes and ask for tasks. You get task lines with real @due() dates, worked out from today. The chat can't change your notes: apply its lines yourself.

AI Chat tools: search, tasks and today's sheet

With a vault open, AI Chat can look things up in your notes and tasks, and add to today's sheet once you say yes.

Ask about your own notes and the chat looks them up instead of guessing. It can search your notes (by text, name or tag), read a note, and list your open tasks: all of them, in progress, due today, overdue or upcoming, or by tag. Each lookup shows as a quiet line in the thread, like Searched notes for “pricing” · 3 found.

It can also add to today's sheet, for example the tasks from a meeting you pasted. It shows you the lines first, and nothing is written until you click Add. Don't add, or closing the chat, leaves your sheet as it was.

AI & table formulas

The AI knows how table formulas work. It writes totals as live formulas and never replaces your formulas with numbers.

Ask AI Chat for a table with totals, averages or counts, and you get formulas like =SUM(B2:B5) in a totals row, not numbers the AI worked out itself. The table keeps computing correctly as you edit it. You can also ask it to add or fix a formula, or explain why a cell shows #REF! or #CIRCULAR!.

Every AI action that rewrites text (improve, fix grammar, shorten, change tone, expand, continue, fix document) is told to keep formulas exactly as written. It never swaps a =SUM(...) for its current result.

AI & your notes' syntax

The AI writes tasks, links, callouts and worklog sheets the way HermesMarkdown reads them, and keeps them intact when it rewrites text.

AI Chat, Continue writing and new notes from a prompt know HermesMarkdown's own syntax. Tasks get their status in the box ([ ] [/] [!] [x] [-]), never a #todo tag, with @due() and @priority() at the end of the line. Links to other notes are [[wiki links]], and callouts use the > [!tip] form.

It also knows the worklog: daily sheets, and the weekly, monthly, quarterly and yearly sheets you keep alongside them.

Every action that rewrites text keeps task boxes, their @started() and @done() dates, links, tags and callout headers exactly as written.

Privacy model

No AI request leaves your machine unless you've configured a key, and the key itself is never stored on HermesMarkdown's servers.

HermesMarkdown is local-first: your vault is read and written directly from the browser, with no upload step and no HermesMarkdown database holding your notes.

Local vault filesNever leave your machine
GitHub vault filesSent to GitHub only when you commit or pull
AI requestsRelayed to Anthropic / Google, not stored
App settings (theme, font, editor layout)Browser localStorage / IndexedDB
AI API keyBrowser localStorage

Settings

Appearance, Home and vault options, and keyboard shortcuts.

Appearance

Theme and a small editorial typeface pair shape the editor's paper-like writing surface.

System/light/dark theme controls are available in Settings → Appearance and from the command palette. System follows your operating system automatically. The editor font is set under Settings → Typography and applies to every pane in a split workspace. Word wrap, line numbers, Show Invisibles (¶ on empty lines, dots for spaces), Vim mode, flow mode and Hide Interface While Typing live under Settings → Editor.

ThemeSettings → Appearance
SidebarShow Sidebar: open notes and the vault's files on the window's left edge (desktop)
TypefacePlus Jakarta Sans by default, with Source Serif 4, Inter, and Geist Mono options

New notes & templates

Choose where new notes go and where templates live.

New Notes FolderEmpty = vault root, or a folder like inbox
Daily Sheets FolderWhere Today's sheet and the weekly and monthly sheets go, e.g. journal/{{year}}
Templates FolderPer vault. Empty = templates, _templates or Templates

Every .md file directly in the Templates Folder is a template. Folders starting with . can't be used, because they aren't indexed.

These live under Settings → Files. A folder that doesn't exist yet is created the first time a note is saved there.

Keybindings

Shortcuts are fixed — there's no remapping screen yet.

Every shortcut in HermesMarkdown is built in and not user-configurable. See Keyboard shortcuts for the full reference grouped by context.

Mobile

Using HermesMarkdown on a phone or tablet.

Mobile layout

Below a 768px viewport, the tab bar is replaced by a fixed file indicator bar and full-screen overlays.

A thin bar stays fixed at the top of the screen showing the active file's name and save status — there's no keyboard shortcut for the command palette on mobile, so tapping this bar is the one always-present way to open it. From there, Open Explorer, Search, Open Tasks, New file, and every other command work exactly as they do on desktop.

The Home button at the left of that bar takes you back to the home feed. On the feed, the search bar and the + button sit at the bottom, within reach of your thumb.

Explorer and Search open as full-screen overlays rather than docked panels.

Vaults on phones and tablets

iPhone and iPad use browser vaults; install the app to your home screen to write offline.

iPhone / iPad (Safari)Browser vault or GitHub vault
Android (Chrome)Folder on the device, browser vault, or GitHub vault
Other mobile browsersBrowser vault or GitHub vault

Open the file overlay (or the command palette) and choose Browser Vault to create or reopen one. On iOS, use Share → Add to Home Screen: the installed app opens full-screen and starts without a connection.

Table editor on mobile

Tables edit in place, same as desktop.

Tables use the same in-place cell editing as desktop. Tap a cell to type in it, and tap a column letter or row number (or long-press a cell on Android) for the table menu.

Cell navigation works the same as desktop. Only the surrounding chrome changes.

Differences from desktop

Mobile trades some desktop-only surfaces for touch-first equivalents — the underlying editing model is unchanged.

ExplorerFull-screen file-management view
Selection toolbarBold, Italic, Link only
VaultsBrowser vaults on iPhone/iPad; see Vaults on phones and tablets

Selecting text shows the same toolbar on both: Turn into (text, headings, lists, quote), Bold, Italic, Link, and Ask AI when AI is set up. On desktop it sits above the selection; on mobile it sits at the bottom of the screen, above the keyboard, clear of the phone's own Copy/Paste bar. AI Chat is also in the command palette.