WikiUsing it

The interface

MarkdownSource

On this page

This page describes the frame around your content: the sidebar, the document tabs, the topbar above a page, the account menu, the theme, every keyboard shortcut, and what changes when the window gets narrow. It does not describe writing in a page — that is Pages and Editor blocks — or working inside a collection, which is Views.

The layout

Left to right, salt.md is up to four columns:

ColumnWidthWhen it is there
Sidebar292 px, fixedalways on a wide screen; a drawer on a narrow one
Notes list292 px, fixedonly when Notes mode is on and the window is wider than 900 px
The pagethe restalways
Structure or comments panel340 pxwhen you open one of them

None of the columns can be dragged wider. The sidebar can be collapsed, the notes list is a setting, the right-hand panel is a toggle in the topbar.

Most of the time two of the four are on screen — the sidebar and the page:

The whole application: workspace switcher and tree on the left, the document and its actions on the right.
The whole application: workspace switcher and tree on the left, the document and its actions on the right.

Inside the page column: a tab strip (only from two open tabs), then the topbar, then the page itself. Everything below the topbar scrolls as one — the cover image, the icon, the title, the tags and the content leave the screen together. Only the topbar stays.

The sidebar

The workspace switcher

Top left: the workspace picture, its name, and a chevron. The picture is the uploaded logo if there is one, otherwise the workspace’s icon, otherwise the first letter of the name on a colour derived from that name.

The menu lists every workspace you are in. The current one carries a tick. Two labels can appear beside a name: own space for a personal workspace, and open to all for one that every new account joins automatically. Below the separator:

  • Workspace settings — only for an admin of that workspace
  • New workspace — opens the blueprint shelf, if the instance lets you create one
  • With nobody in charge… — only for the instance owner; lists workspaces nobody can look after any more

The sidebar shows the pages of the selected workspace only, and the choice is remembered in this browser. The tags, the tree, the templates, the trash and their counts are all scoped the same way. Favourites are the exception: that list is built from your starred pages across every workspace, so a favourite filed elsewhere still shows up here. See Workspaces.

Workspace settings

One dialog holding everything about the current workspace. Settings you can read at a glance sit in it directly; the four bigger screens are rows that open a dialog of their own.

GroupWhat is in it
GeneralName (opens a rename prompt), Picture — an emoji from the picker or an uploaded logo; setting one clears the other
AccessMembers (who is in, and in which role), What agents may do here, Open to every new user, and for the instance owner Emergency access log
LayoutHow the sidebar is arranged — see the two shapes below
ConventionsWorkspace rules — the row says so when a proposal is waiting for review
DataFiles, Export workspace, Export as Markdown, Import workspace…, Delete workspace

What agents may do here has three settings: Anything they were granted, Only signed-in connections (a permanent token is refused, even one naming this workspace) and No agents at all. See Agent access.

Delete workspace takes every page in it along, so it asks you to type the workspace name rather than clicking Yes. See Workspaces and Permissions.

Library and collapse

Two round buttons top right:

  • Library — every page opens the full-screen library over the page. It has its own tab strip — Recently used, Favorites, Shared, Private, All pages, Graph and Tree · agent view — with a workspace picker, a filter box and a sort menu. See Library.
  • Collapse the sidebar slides it away. On a desktop it does not disappear: move the pointer to the left edge of the window and it slides back in as an overlay, and the same button is now Pin the sidebar, which puts it back for good. Right after you click collapse the reveal is locked until the pointer has actually moved away, so the click does not look as if it did nothing.

The collapse button is not shown on a narrow screen — there the sidebar is a drawer instead.

A single row under the header, labelled Search, with ⌘K on the right. Pressing that shortcut opens the same dialog. It shows your recently opened pages under Recently opened until you type. See Search.

Sections

Everything below is a collapsible section: an icon, a label, a count, a chevron, and often a +. Trash is built differently — icon, label and count, no chevron — and it scrolls inside its own 180 px.

Whether a section is open is remembered per section, in this browser. Trash is the exception again: it starts closed every time.

SectionShown whenThe + does
Favouritesyou have starred at least one page
Tagsthe workspace has at least one tag
Documents (or Pages)unless Notes mode is on or a tag filter is activeNew page
Collectionsthe workspace uses two sections, and no tag filter is activeNew collection
Templatesthe workspace has at least oneNew page from a template — opens the gallery
Trashsomething is in it

Favourites is a flat list; the ★ on a row removes it again.

Tags is a cloud of chips, each with its count, ordered by count and then alphabetically. The section’s own count is how many distinct tags there are, not how many pages carry them; a chip’s tooltip reads “n pages”. Tags differing only in case are one chip.

Documents and Collections, or one tree. A workspace decides this for itself under Workspace settings → Layout → How the sidebar is arranged:

  • Documents and collections apart (the default) gives two sections. A collection filed under a document is shown in Collections, not under its document.
  • One tree, filed where you put it gives a single section, called Pages, which holds documents and collections wherever you filed them.
The sidebar: documents and collections in separate sections, each with a count.
The sidebar: documents and collections in separate sections, each with a count.

The two shapes do not report the same number. Collections counts every collection in the workspace, wherever it is filed. Documents counts pages whose ancestry never passes through a collection — and in one-tree mode the same count is called Pages and includes collections, so it is the larger number. Templates are left out of that count in both shapes, although a template page is still drawn in the tree, so a workspace with three templates shows a count three lower than the rows under it.

Templates starts closed. A row’s + creates a new page from that template; its offers Remove template flag and Move to trash. See Templates.

Trash lists only the top of each thrown-away branch and gives each entry Restore and Delete forever. Deleting forever asks first: “Delete this page and all its sub-pages forever?”. See Trash and recovery.

When a section has nothing in it the body says so: No pages yet under Documents, No collection yet under Collections.

Filtering by tag

Clicking a tag chip does not narrow the tree — it replaces it. Documents and Collections both disappear and a flat list of every page in the workspace carrying that tag takes their place, collections included, no matter how deep they are filed. A banner above it shows the tag and a Clear filter × button. With no matches the list says No pages.

Those rows are for going somewhere and nothing else: they carry no + and no . Templates and Trash stay where they are below the filter.

A row in the tree

Each row is a chevron, an icon and a title. What you can do with it:

GestureResult
Clickopens the page in the tab you are in
⌘-click / Ctrl-clickopens it in a new tab
Middle-clickopens it in a new tab
Right-clickopens the same menu the shows
Click the chevronfolds the row open or shut
Dragmoves the page

Hovering a row reveals two buttons: + (Add inside) and (More). On a touch device they are always visible, because there is no hovering.

The + asks what to add: Page or Collection. The section headers keep a direct + instead, because there the section already answers the question.

The menu, in order:

EntryNote
Open in new tab
Add to favorites / Remove from favorites
Duplicate
New collection inside
Move to top levelonly when the page has a parent
Move to workspace → one entry per other workspaceonly with more than one workspace; takes the whole subtree along and files it at the top level there
Files in this subtreeevery upload on this page and everything under it — see Files
Save as templatetakes a copy as the template; this page stays a normal page
Export Markdown
Move to trash

Collections in the tree

A collection has a chevron even though its rows are not part of the page tree. Unfolding it loads the first 50 rows and lists them. A row that carries sub-pages gets a chevron of its own and unfolds them, so a dossier under a deal is reachable from the sidebar four levels down. Rows carry the same + and as any other row, and a right-click opens the same menu.

Rows cannot be dragged, and nothing can be dropped on them. Only tree items carry the drag handlers, so the gesture below does not exist inside an unfolded collection — use Move to workspace or the row’s own page to move it.

A collection nested inside another collection is not one of its rows — it is drawn as a full tree item, with the whole menu, so it can be moved back out.

While the rows load the list says Loading…; an empty collection says No entries.

Moving pages by dragging

Drag a row onto another one. Where you release decides:

  • the top 30 % → before that page
  • the bottom 30 % → after it
  • the middle 40 % → inside it, and the target unfolds

A page cannot be dropped on itself or on anything below it. Drops are live for everyone: the tree reloads from the server’s change feed, so a page an agent moves appears in your sidebar without a reload.

Your avatar and name, and beside them the theme switch.

The account menu

Clicking your name opens it. It closes again when you click anywhere outside it, and opening any of its dialogs closes whatever else was open.

EntryWhat it opens
Agents & MCPconnecting an agent — see Agents
Profilesee below
API tokenssee Agent access
Activity logsee History and audit
Subscribe to calendarsee Automation
Two-factor (2FA)see Account
Language and timesee Language and time
Notes modetoggle, with a dot showing its state
Salt fontstoggle, with a dot showing its state
Manage usersinstance admins only — see Administration
Instance settingsinstance admins only
Sign out

Profile

Your picture, name, email, colour and password in one dialog.

  • Upload picture takes any image; once there is one, Remove picture appears beside it. Without a picture the circle shows your initial on your colour.
  • Colour is a fixed palette of ten swatches — the same ten the server hands out when an account is created. It is the colour you appear in beside a comment and in the presence dots.
  • New password (blank = unchanged), at least 8 characters, with a confirmation field that only appears once you start typing one.
  • Changing the email or the password asks for your current password. The field appears as soon as either changes and Save stays disabled until it is filled in — a session left open must not be enough to take over the account.
  • Two-factor authentication is a row with a Manage button that opens the 2FA dialog in place of this one.

Changing your password signs your other sessions out and says so.

The tabs

Open pages are chips across the top of the page column. The strip appears from the second tab — one document needs no tab bar.

  • Clicking a page anywhere does not add a tab. It navigates the tab you are in, the way a browser tab does. Use ⌘-click, middle-click or Open in new tab to add one.
  • A new tab opens directly after the active one and is focused.
  • closes a tab, and so does a middle-click on it.
  • Closing the active tab activates the neighbour that slides into its place. Closing the last one does not leave you on an empty screen; a page is picked for you.
  • Back and forward restore the exact set of tabs that entry had, not just the address.
  • Switching workspace leaves the tabs alone. A tab can go on showing a page from a workspace the sidebar is no longer displaying.
  • The set of open tabs is remembered in this browser. A tab whose page was trashed or deleted elsewhere drops out on its own, within a moment of the change arriving, so no ghost tabs pile up.

The topbar

Above every page: a breadcrumb from the top of the tree down to where you are, each part clickable, and a row of icons on the right.

Left of the breadcrumb, a hamburger appears in exactly two situations: on a narrow screen, and on a desktop where you collapsed the sidebar. It opens the sidebar again.

The icons, left to right:

IconTooltipWhat it is
an agent’s markits name, the account it signed in through, its note, how long it has been here, and either active just now or when it was last heard fromwhich agent says it is working on this page. The note stands beside the name only while one agent is here; with two it is in the tooltip alone
coloured dotsAlso here: …up to three people editing right now, then +n
speech bubbleShow comments / Hide commentsopens the comment panel; carries the number of open comments. Not shown on a collection — its rows carry comments, not the collection itself
panelShow structure / Hide structurethe structure panel — see below
starAdd to favorites / Remove from favorites
padlockPrivate (only you) — click to share with the workspace / Visible to the workspace — click to make it privatesee Permissions
globeShare to web (read-only link)see below
Moreeverything below

If an agent said how long it expected to be, the tooltip ends with checked in for about …. See Agents.

The structure panel

Four things, top to bottom:

  1. Where this page sits — the chain of parents from the top of the tree down, each one clickable, closed by a row reading This page. It is left out on a top-level page, where it would say nothing.
  2. Sub-pages — the whole subtree, not just its first level, indented. Empty: No sub-pages. A collection has no such section at all: its rows are its sub-pages and they live in the table.
  3. Files — every upload on this page and the pages under it, with its size, and the page it hangs off whenever that is not the one you are on. Empty: No files. See Files.
  4. Linked from — the pages that link here. Empty: Nothing links here.

Clicking a PDF opens it full-screen in a preview with Download and Close; Escape closes it too. Every other kind of file opens in a new tab.

The structure panel and the comment panel share the same strip on the right, so opening one closes the other. Both remember whether they were open, in this browser, across pages.

Sharing to the web

The globe opens a small menu: the read-only link in a field that selects itself when you click it, Expires: with Never, In 1 day, In 7 days or In 30 days, an optional Password (optional) field, and two buttons — Copy and Stop sharing. See Sharing.

The ⋯ menu

It holds: Add a description (or Remove description), To the comments, Version history, Import (.md / .zip), an Export group with Markdown (.md), Web page (.html) and Print / as PDF, and Move to trash. On a narrow screen it also holds the three icons that stepped aside — comments, Make it private / Make it visible to the workspace, and share to web.

With the viewer role in a workspace the menu is shorter. Everything that changes the page is dropped: Add a description, Remove description, Import (.md / .zip) and Move to trash. What is left is To the comments, Version history and the Export group. See Permissions.

Theme and typeface

The theme switch has three states, not two:

OptionBehaviour
Lightalways light
Automatic — follows the systemfollows your operating system, and changes the moment it does
Darkalways dark

Automatic is the default for a new browser. A choice you made before this existed is kept. The setting lives in the browser, not in your account, so each device can differ — and it is also offered on the sign-in screen, in the top right corner, so arriving at a login page at night does not mean a screen of white.

Salt fonts in the account menu switches between the bundled typefaces (Inter for text, JetBrains Mono for code and labels) and your system font. Bundled is the default; the font files are only fetched once they are used.

Printing the browser window ignores the theme: it is always a light, chrome-free document — no sidebar, no topbar, no tabs, no panels. The Print / as PDF entry only takes that route for a collection. On a document it opens a standalone print view in a new tab instead, which is what makes the entry work on a phone, where a browser’s own print command does nothing. See Import and export.

Notes mode

A third column between the sidebar and the page: documents in the workspace as cards with a snippet, a thumbnail, when the page changed and its first two tags, most recently changed first. It is not quite every document — templates are left out, and so are pages filed directly under a collection. Collections and their rows are not in it either.

The head carries the word Notes, a count and a pen button (New note (⌥N)). Below it, All and Untagged; pick a tag chip in the sidebar and those two are replaced by the tag itself with an × to clear it. An empty list says No notes yet — write the first one., Everything is tagged. 🎉 or No notes tagged #… depending on why it is empty.

Turn it on in the account menu. It is off by default. Two things change while it is on: the sidebar drops its document tree (the middle column is the document list now), and the tag chips filter that list instead of the tree.

The column is there when the window is wider than 900 px. At 900 px and below it is gone and the sidebar takes its tree back — except at exactly 900 px, where both switches fire at once and neither list is shown; one pixel either way brings navigation back.

Keyboard and pointer

KeysDoes
⌘K / Ctrl+Kopens the search dialog — pressing it again closes it
⌥N / Alt+Na new page at the top level of the current workspace
Ctrl+Alt+← / Ctrl+Alt+→previous / next tab, wrapping around. Ignored while you are typing, and needs at least two tabs. is deliberately not part of it: that combination belongs to the browser
Enterin the search dialog, once you have typed: move through the results, open the selected one. The recently-opened list is click-only
Escapecloses the search dialog, any open menu, an image opened full-screen, a file preview, the icon picker, and a confirmation
Enterconfirms a dialog that asks for a single line of text
Enter in the tag field of a pagecommits the tag — and so do , and Tab. move through the suggestions, Escape closes them, and Backspace in an empty field removes the last tag
⌘Enter / Ctrl+Enterposts a comment
Enter in a page’s raw trailposts the note; Shift+Enter makes a new line. See Comments and notes
Enter in a page titlejumps into the body instead of breaking the title over two lines
⌘-click, Ctrl-click or middle-clickopens a page in a new tab
middle-click on a tabcloses it
right-clickopens the ⋯ menu of a sidebar row, a collection row in the sidebar, or a board card

The shortcut badge beside Search reads ⌘K on every platform; Ctrl+K works just as well.

What happens on a narrow screen

WidthWhat changes
1200 px and belowan agent’s note beside its name is dropped — it is in the tooltip
900 px and belowthe notes list is gone; whichever right-hand panel is open floats over the text instead of pushing it aside. The structure panel narrows to 280 px, the comment panel takes the full width
768 px and belowthe sidebar becomes a drawer over the page with a dark backdrop; the hamburger in the topbar opens it, the backdrop closes it, and picking a page closes it. Every input grows to 16 px so tapping a field does not zoom the page on iOS
640 px and belowthe topbar keeps the structure toggle, the star and ; comments, private/visible and share to web move into that menu

The drawer has no close button of its own. Below 768 px the collapse button in the sidebar header is hidden, so the backdrop and picking a page are the two ways out.

On a device without a mouse, everything that is normally revealed on hover is permanently visible — the row buttons, the tab’s ✕, the section +, the cover buttons — and the hit areas grow: a tree row is at least 44 px tall, a tag chip 32 px. Decorative hover effects are switched off, because with no pointer to leave the element they stay stuck after a tap and look like a fault.

If you have asked your system to reduce motion, every transition and animation is effectively switched off.

Messages and overlays

Toasts appear centred at the bottom of the window and disappear after four seconds. They are announced to screen readers. They carry both failures and confirmations — “Workspace renamed” arrives the same way a failed save does, and every one of them is drawn in the warning colour with a ⚠ in front of it.

Toasts are not the only way the app reports a problem. Dialogs and the sign-in screen show their errors inline, in the dialog itself. A page that will not load replaces the document with its own screen — “This page could not be loaded.” and a Back to workspace button.

The upload bar is a three-pixel line across the top of the window while a file is uploading.

Images in a page open full-screen on a click. Click the dark area around the picture, or press Escape, to close it — clicking the picture itself does nothing, so a mis-aimed click does not shut the view. Images narrower than 80 px never open at all, and neither do avatars, cover images, bookmark previews, pictures inside a button, and anything inside the editor or inside a link.

One dialog at a time. Opening any dialog closes whatever else was open and closes the mobile drawer. Confirmations are the exception: they layer on top, so “are you sure” can appear over the dialog that asked.

A file dropped anywhere other than a page is swallowed on purpose. Without that, the browser’s own behaviour would replace the whole application with the dropped file and lose what you had open. See Files.

Two full-screen messages you may meet:

  • Cannot reach the server — “salt.md could not load your workspace”, with a Retry button. See Troubleshooting.
  • No pages yet — the first-run state, with New page and Import (.md / .zip). If your account is in no workspace at all it says No workspace instead, and offers to create one if the instance allows it.

After the server is updated under you, a message says A new version is available — reload the page. It comes both from the first request after load and from the live change feed, so an open tab learns about a deploy without being touched.

What this browser remembers

These are stored per browser, not on your account. A second device starts with the defaults.

Remembered
the selected workspace
the open tabs, and the last eight pages you opened
whether the sidebar is collapsed
which sidebar sections are open — Favourites, Tags, Documents, Collections and Templates. Trash is not: it starts closed every time
whether the structure or comment panel is open
theme, typeface, notes mode

Your language, region, time zone, clock and week start are the opposite: they live on the account, so your phone and your laptop agree. See Language and time.