Documentation

Mnemo User Guide

Everything Mnemo does, start to finish. Part 1 covers day-to-day use; Part 2 covers settings, storage, backup, and connecting external tools.

Open the app
Contents

Part 1 — Using Mnemo

Get started

Create an account

  1. Open the app and choose Get started / Sign up.
  2. Enter your name, email, and a password (at least 8 characters).
  3. If the app asks you to verify your email, check your inbox and follow the link before continuing.
  4. Create a workspace, or join one you’ve been invited to.

Already have an account? Use Log in. Forgot your password? Use Forgot password? on the login screen (sends a reset email when outbound email is configured).

You can change your password and optionally enable two-factor authentication under Settings → Profile (details in Part 2). When 2FA is on, login asks for a code from your authenticator app after the password.

Workspaces

A workspace is your team’s shared home for pages, whiteboards, and databases.

  • New workspace — pick a name; Mnemo creates a short URL slug for you.
  • Join a team — an admin can add your email. If you already have an account, the workspace appears under Shared with you in the workspace switcher (refresh if it was already open). If you’re new, they’ll share an invite link — sign up with that email, then accept.

Mnemo remembers the last page you had open and brings you back next time.


Around the workspace

Everything lives in the sidebar, top to bottom:

AreaWhat it’s for
HeaderMnemo logo, the Search icon (⌘K / Ctrl+K), and the collapse control
Workspace switcherSwitch spaces, New workspace, and Invite (admin/owner)
FavoritesPages you’ve starred. Collapses automatically past 8, and shows the first 10 with a Show all toggle
Filter stripA Filter box plus three icon controls — filter by type, filter by tag, and Collapse all — then + to add an object
Object treeYour pages, databases, and whiteboards, nested. This is the sidebar’s scroll region, so long trees never push the rest of the sidebar off screen
Account menuBottom row, under your name: Settings, Trash, Feedback (when configured), a light/dark toggle, and Sign out
NotificationsThe bell beside the account menu — workspace adds, comments/replies, and @ mentions (badge when unread)

Search is a header icon rather than a second input box, so it isn’t confused with the tree filter. Both ⌘K / Ctrl+K and the icon open the same command palette.

On desktop, drag the right edge of the sidebar to resize it (240–480 px). Collapse it to an icon rail — logo, expand, search, notifications, and your avatar — when you need space. On smaller screens the sidebar opens as a menu from the top bar, which also carries its own search icon. Tree and drag handles stay visible on touch devices.

After an upgrade you may see a What’s new dialog once — dismiss with Got it. If the app was redeployed while you were working, you may be asked to reload so the session stays in sync.


Pages

Create a page

  • + at the right of the sidebar filter strip → choose Page, Database, or Whiteboard, then a starter (pages and databases have templates; whiteboards start blank)
  • Empty workspace → Add
  • ⌘K / Ctrl+KNew page, New database, New whiteboard, or one of the page templates (members and above)
  • On a row: right‑click or Add sub-object (same type + starter flow, nested under that row), or slash Subpage / [[ create-as-child for a document under the current page

Title, icon, cover, and tags

  • Title — click in the header, or rename from the sidebar
  • Icon — click the smile/icon in the header. Choose from the Icons grid, tint with a Color, or pick a small set of Emoji. Recently used icons appear at the top; Remove icon clears your choice. Pages without a custom icon show a default for documents, databases, or whiteboards.
  • Cover — from the header menu (or Change cover on an existing cover): pick a gradient (Aurora, Mint, Dusk, Citrus, Ink) or remove it
  • Tags — colored chips under the title on pages, databases, and whiteboards (see Tags)
  • Favorite / Unfavorite — star from the header or sidebar
  • Duplicate — from the header menu or the sidebar row menu; copies the page (and database contents when relevant) as Copy of … under the same parent

Organize the tree

  • Add sub-object to nest a page, database, or whiteboard under the current row
  • Drag a row by its grip (or by the row itself) to move it. A line between two rows means drop as a sibling there; a highlighted row means drop inside it as a child
  • Hover over a collapsed row for about a second while dragging and it springs open, so you can drop deeper without letting go
  • Prefer a dialog? ⋯ or right‑click → Move under… opens a searchable list of every object you can see, each with its parent path, plus Top level (no parent). A page can’t be moved under itself or its own descendants, so those are hidden
  • Use the chevron to collapse or expand branches (remembered in your browser); Collapse all in the filter strip closes everything at once
  • Branches load as you open them, so a large workspace doesn’t pay for pages you never expand
  • Breadcrumbs show where you are

Viewers see the tree without drag handles or row menus.

Filter the tree

The Filter box above the tree searches the whole workspace by title, not just the branches you have expanded. Results render as a flat list, each with its parent path underneath, so you can see where a match lives.

  • The funnel icon filters by type — Pages, Databases, Whiteboards — and you can pick more than one
  • The tag icon filters by workspace tag. Selected tags also appear as chips under the strip (a closed menu would otherwise hide what you picked); click a chip to drop that tag
  • Tags match with any, the same way the command palette treats them
  • ↓ from the box moves into the results, ↑↓ walks them, Enter opens the top hit, Esc clears the filter
  • Up to 50 results show at a time; past that you get a n more matches — keep typing to narrow” line

Filtering only matches titles. For body text, use the command palette (see Find things).

Trash

  • Move to trash from the page header menu, or from a sidebar row’s / right-click menu
  • Open Trash from the account menu at the bottom of the sidebar (or ⌘KGo to Trash) to Restore
  • Admins/owners can Delete a single item forever, or Empty trash to permanently remove everything in Trash (uploaded files for those pages are removed too). Live pages nested under a trashed parent stay in the workspace.

Comments

Open Comments from the control in the top-right (keeps that corner clear of Live/presence). The panel floats over the page. A badge shows new comments since you last looked.

  • Reply on a comment to nest one level of replies under that thread
  • Resolve / Unresolve a top-level thread (author or admin); resolved threads collapse until you expand them
  • Type @ in a comment to mention someone (they get a notification, and email when available)
  • Page creators get a notification when someone comments; reply authors get notified on replies
  • Select text in the editor → Comment in the formatting bar to quote that selection
  • The thread updates for teammates on the page without a full reload

Under the editor, Linked from lists other pages that link here with page-link chips.


Tags

Workspace tags are flat labels shared across pages, databases, and whiteboards. They are not nested folders and do not sync with database multi-select properties.

Owners manage the tag catalog under Settings → Tags (see Tags (owners)). Admins and members can still assign existing tags on pages they can edit.

Assign on a page

Under the title, use the chip row: add tags from the picker, or remove a chip with its ×. The workspace owner can also create a new tag from the picker (type a name, pick a color, Create or press Enter).

Filter by tag in the sidebar

Tags are part of the sidebar filter strip rather than a separate browse list. Click the tag icon above the tree, tick one or more tags, and the tree becomes a flat list of matching objects. Each tag shows how many objects carry it. Selected tags echo as chips below the strip so you can see and remove them while the menu is closed. Private pages you can’t view stay hidden.

Find by tag

In the command palette (⌘K / Ctrl+K), use tag chips alongside type filters. With tags selected and an empty query, you browse pages that have any of those tags. API and MCP search accept the same tag ids.


Writing and editing

The editor tip says it well: type / for commands, @ for people, or [[ for page links. While a wiki query is open ([[… before the closing ]]), typing / (for example in a date like 2026/08/04) does not open the slash menu. The menu also stays closed for a / in a folder path — when there is text immediately before the slash, or when the caret is in the middle of a path like /home/user or src/lib. A standalone / at the start of a line or after a space still opens the menu, and you can type /heading to filter.

When the top-right shows Live (beside Comments), your edits sync with teammates in real time.

Paste markdown from ChatGPT or a text editor and it becomes headings, lists, code blocks, and the rest — not literal # heading. File → Import Markdown is still how you load a whole .md file (Replace or Append).

Live collaboration

Live status sits in the upper-right next to Comments on documents, whiteboards, and databases.

StatusMeaning
LiveConnected — changes sync with teammates
Connecting…Still connecting
Connection lostSync dropped; on documents/whiteboards you can keep typing on the open page and tap Retry when you’re back online
Auth errorSign-in issue — try Retry after logging in again

Documents and whiteboards use full collaborative editing. You’ll see presence avatars of who’s on the page, and on documents colored carets where others are typing. When an API or MCP tool appends to a document you already have open, new paragraphs usually appear the same way — no refresh — as long as sync is connected (see API and MCP).

Databases use a lighter live sync: row updates appear quickly for everyone on the list (including rows and columns created by agents or the API), and a soft lock shows who is editing a specific cell. Viewing the database alone does not show page-style presence avatars. If database sync drops, use Retry when you’re back online.

Mnemo is not a full offline app. If sync drops on a page you already have open, you can keep working and retry. Opening other pages, search, and most of the UI still need a connection.

Version history

On documents and whiteboards, open History from the page header menu (when you can edit). You’ll see up to 20 recent versions.

Versions save automatically after you pause editing for about 30 seconds (including if you leave the page). Long continuous editing still gets a checkpoint at least every 10 minutes. Changes made through the API or MCP also create a version.

To restore: pick a version → confirm. Mnemo saves your current content first, then reloads that version. A Current badge marks the newest version that matches what’s on the page right now. If you’ve edited since the last save, History notes that none of the rows match yet.

LabelMeaning
AutosaveSaved after you paused editing, or on the long-edit checkpoint
APICreated when content was added through an external tool or API
Before restoreSafety copy taken right before you restored an older version

Database pages don’t use this history — their data lives in the database itself.

Document outline

If the page has Heading 1–3 blocks, Outline appears in the page header menu (no empty button when there are no headings). Use it to jump to a section.

Formatting bar

Select text for Bold, Italic, Underline, Strike, inline code, smaller / larger text, Heading (toggles Heading 2), bullet list, to-do, Link, and Comment. Inside a callout you get a Color row with the five callout colors. Inside a table you can add / delete columns and rows, toggle the header row, or delete the table.

Hover a top-level block and a drag handle appears in the left gutter; drag from that handle to reorder. While dragging, the block fades in place and a same-width preview follows the pointer, with a drop line showing where it will land. Nested blocks (list items, table cells) move with their parent rather than on their own.

Beyond ⌘B / ⌘I, the usual editor chords work: ⌘U underline, ⌘E inline code, ⌘⇧S strikethrough, ⌘⌥1–3 headings, ⌘⌥0 paragraph, ⌘⇧8 / ⌘⇧7 / ⌘⇧9 bullet / numbered / to-do list, ⌘⇧B quote, ⌘⌥C code block, and Tab / ⇧Tab to move between table cells. Use Ctrl in place of on Windows and Linux.

Slash menu (/)

Type / at the start of a line (or after a space), then filter by typing. ↑↓ and Enter insert; Esc dismisses.

GroupCommands
BasicText, Heading 1, Heading 2, Heading 3
ListsBullet list, Numbered list, To-do list
MediaImage, File, YouTube / Loom (URL dialog — no browser prompt). Only YouTube and Loom become iframes; other HTTPS URLs show as an external link chip.
WikiPage link, Subpage
BlocksTable, Quote, Code block (language + lock + copy), Mermaid, Database view, Database query, Toggle, Divider, and five callouts — Callout · Info / Success / Warning / Alert / Note

Callouts are five separate commands rather than one command plus a color picker, so typing /warn lands on the one you want. You can still recolor an existing callout from the formatting bar.

Page templates

From sidebar + → Page or the command palette, start from Meeting notes, Project brief, Weekly update, or a blank page.

TypeHowResult
People@ then a nameMention + notification for that teammate
Pages[[ then a titleInline page link with a type-accurate icon (or create a new subpage)

@ only lists people in the current workspace — not pages, and not yourself. Click a mention to select it; it inherits surrounding text size and can take bold/italic/size from the formatting bar (same as page links).

[[ searches pages, databases, and whiteboards. Pick an existing item to link it, or choose Create to make a child page under the current page. Closing with ]] also commits the link (brackets are not part of the title). Links inherit the surrounding text size and can take bold/italic from the formatting bar.

Rename a linked page and the links to it follow — existing page links pick up the new title, icon, and type without you touching the pages that reference it.

Code blocks

Slash Code block inserts a fenced block with a language picker and Copy. Use the lock control to freeze the code so you don’t edit it by accident; unlock to change it again. Language and copy still work while locked.

Images and files

  • Paste, drag-and-drop, or use slash Image / File
  • Images up to 5 MB (JPEG, PNG, GIF, WebP) render inline on the page
  • Other files up to 25 MB: PDF, plain text, Markdown, CSV, JSON, zip, and common Word/Excel types. These insert as a download chip with the filename and size.
  • SVG is accepted but always served as a download, never as trusted inline artwork. Use PNG or WebP for images you want to see on the page.
  • Click an image for a lightbox (Esc to close). Images are resizable on the page.
  • On a public share link, images and files on that page open for anyone with the link.
  • Uploads count toward workspace storage (see Storage and plan).

Import/Export (single page)

Open Import/Export on the editor toolbar:

  • Export Markdown — download the page as Markdown (page links as [[title|id]], Mermaid as fenced mermaid blocks, mentions as @Name)
  • Export PDF — opens the print dialog (choose Save as PDF)
  • Import Markdown — load a .md file and Replace or Append (round-trips callouts, toggles, Mermaid, and [[title|id]] page links). Pasting markdown in the editor uses the same conversion; use this menu when you have a whole file.

For a full workspace archive you can restore later, use Backup and restore in Settings — not this menu.


Whiteboards

Whiteboards are collaborative drawing boards — freehand, shapes, text, and arrows. They sync live like documents (same Live status, presence photos, and History) and follow your light/dark theme. The board page uses a compact header so the canvas gets more vertical space.

When to use what

UseWhen
PageLong-form notes, structured writing, embeds
WhiteboardSketching, brainstorming, flowcharts — spatial thinking
DatabaseRows and properties you sort, filter, and group

Use the full whiteboard page to draw. In-note board previews and starter scenes are not offered yet — link to a board with Page link / [[ when you need a pointer from a note.

  • Create blank from the sidebar or command palette
  • Viewers and public share links are view only
  • Search finds whiteboards by title (drawing strokes are not searched)
  • Workspace backup includes each board’s drawing scene and collaborative state

This is a shared sketch board, not a handwriting or OCR notebook.


Databases

Create a database from the sidebar + and pick a starter. Each one seeds properties, a sample row or two, and saved views:

StarterYou get
BlankName, Status (To Do / In Progress / Done), Date — one table view
TasksTask, Status, Priority (Low / Medium / High), Due — a Board view (default) and a Table view
CRM / ContactsName, Stage (Lead / Qualified / Won / Lost), Company, Email, Last contact — All contacts (table, grouped by Stage) and Pipeline (board)
Content calendarTitle, Status (Idea / Draft / Scheduled / Published), Channel (Blog / Social / Email), Publish date — Calendar (default) and By status

New database from the command palette skips the starter picker and gives you a blank one.

When to use what

UseWhen
Database pageSource of truth — edit like a shared list (sort, filter, group, live updates with teammates)
Database view (slash embed)Interactive window of a saved view inside a note
Database query (slash block)Read-only answer in a note — configure via a form (database + filters/sort), no SQL

Views

ViewNotes
TableSpreadsheet-style rows and columns — click a column header to sort, use its filter control for a quick filter. Column headers stay opaque as you scroll.
KanbanNeeds a Select property — choose which one drives columns with Board by. Multi-select won’t work here.
GalleryCard grid
CalendarOnly offered once the database has a Date property; pick which one to plot with Date field

Group by (toolbar) applies to the table view and works on select, multi-select, and checkbox properties.

There are two rows of controls: your saved views, and the layout tabs. Saved views remember filters, sort, group-by, board property, and layout — use Save view to update the current one or New view to branch off. Members can rename a view, set it as the default, or delete it (not the last one). Viewers can switch views and layouts but can’t change them, and neither can anyone on a public link.

Large views scroll efficiently; the footer may show Showing n of m when more rows exist than are loaded on screen. Very large filtered sorts may show only the first chunk — narrow filters if you need a smaller set.

Working with data

  • Add, rename, reorder, and resize columns
  • Property types: text, number, select, multi-select, date, checkbox, relation (to another database), plus read-only lookup, rollup, and formula. There are no dedicated URL, email, person, or file types — the CRM starter’s Email column is plain text.
  • Lookup — pull a value through a relation (for example, related Contact → Email)
  • Rollup — aggregate related rows: Count, Count values, Sum, Average, Min, Max, Checked, Unchecked, Show unique
  • Formula — a same-row expression. Reference other columns with prop("Name"), and use if, empty, length, abs, round, the comparisons (==, !=, >, >=, <, <=), and / or / not, and arithmetic (+ also joins text). Results refresh when you reload or close the row dialog.
  • Filters — the toolbar builder matches all or any of your conditions, with operators for contains / does not contain, equals / does not equal, is empty / is not empty, and the numeric and date comparisons. Column headers offer a one-off filter (dates add is between). Save the view to keep them.
  • Live — teammates’ row edits appear quickly; a soft lock shows who is editing a cell
  • CSVImport CSV maps each column in your file to a property (or skips it); Export CSV downloads the rows currently in view, with your filters and sort applied
  • In documents — slash Database view for an interactive embed; slash Database query for a read-only filtered table configured with a popout form
  • Click the title (or a card title) to open the row detail dialog. Edits stay local until you Save. Closing with unsaved changes asks whether to Save, Discard, or Keep editing.

Database layouts use the full width of the workspace. Databases don’t use document History or Outline; they do show live sync and cell presence on the database page.

A database page has its own public share link, and it’s read-only like any other. A Database view or Database query inside a shared document can render for public visitors when that database is workspace-visible. Restricted or private databases stay hidden on someone else’s share link unless you publish the database page itself.


Find things

Command palette

Press ⌘K (Mac) or Ctrl+K (Windows/Linux), or click the search icon in the sidebar header.

  • Actions for members and above: New page, the three page templates (Meeting notes, Project brief, Weekly update), New database, New whiteboard, and Invite teammate for admins. Everyone gets Notifications, Go to Trash, and Go to Settings.
  • New items are created at the workspace root (nest later with Move under…, drag-to-nest, Subpage, or [[)
  • Empty query: actions + recent pages
  • While typing: matching actions, then pages by title and body text (ranked full-text search, with substring fallback)
  • Opening a page result scrolls to the first matching body text when the query appears in the document (no highlight). Title-only hits stay at the top.
  • Type chips (All types / Pages / Databases / Whiteboards) filter results and recents; your choice is remembered
  • Tag chips filter by workspace tag (OR); empty query + tags browses within that set; choices are remembered
  • ↑↓ moves the highlight (list scrolls to keep it visible) · Enter runs · Esc closes
  • Whiteboards match by title (drawing strokes are not searched); databases match by title (row/cell values are not searched)

Keyboard shortcuts

ShortcutAction
⌘K / Ctrl+KCommand palette
/Slash command menu
@Mention a person
[[Link a page
↑↓ · Enter · EscNavigate menus
EscClose lightbox / dismiss menus
⌘B / Ctrl+BBold
⌘I / Ctrl+IItalic

The rest of the editor chords are listed under Formatting bar.


Teamwork and sharing

Who can open a page

On a document, whiteboard, or database (page creator or workspace admin):

  • Share — primary header action for a public read-only link
  • Access — in the header menu: who in the workspace can open the page
AccessMeaning
Same as parentFollow the nearest parent (defaults to the whole workspace)
Everyone in workspaceAll members can open it (viewers stay read-only)
Only meJust you and workspace admins
Specific peopleAdmins plus the people you pick

Children default to Same as parent, so a private folder keeps subpages private until you change them.

Share creates a public read-only link — anyone with the URL can view without logging in. Revoke anytime. Attachments on a shared page work with that link.

Invite teammates

Admins and owners can add people from the workspace switcher or Settings → Workspace (open a workspace → Access):

  1. Enter their email and choose a role.
  2. If they already have an account — they’re added right away (they may also get an email).
  3. If they don’t — you get a shareable invite link (and an email when available). They sign up with that email and accept. If email is configured but the send fails, the UI tells you and still offers the copy-link fallback.

Roles

RoleTypical access
OwnerFull control, including deleting the workspace and managing the tag catalog
AdminManage members and settings; permanent delete in trash; download workspace backups
MemberCreate and edit pages, whiteboards, and databases; create API/MCP tokens
ViewerRead and comment (including @ mentions); cannot edit content, create/move pages, share links, or upload files

Workspace role controls edit vs read. Page access controls who can open a page at all — including databases on that page. Teammates without access won’t see private pages or databases in search or relations.


Part 2 — Settings and integrations

Settings overview

Open Settings from the account menu at the bottom of the sidebar (or ⌘KGo to Settings). Tabs:

TabWhoWhat
ProfileEveryoneName, photo, password, two-factor authentication
AppearanceEveryoneLight / Dark / System
WorkspaceEveryone (actions vary by role)List of your workspaces, General/Access dialogs, Backup / Restore, Import from Notion
TagsOwner (tab hidden for everyone else)Workspace tag catalog
API & MCPTab visible to everyone; token tools need Member+Personal access tokens, usage meter, and recent machine activity
StorageEveryone (plan actions admin+)Usage, Free/Pro quotas, and plan for the active workspace

Older bookmarks that used ?tab=billing open the Storage tab.


Profile

  • Display name and photo
  • Email is fixed (the address you signed up with)
  • Change password — set a new password while signed in
  • Forgot password? on the login screen when you need a reset email
  • Two-factor authentication (TOTP) — scan the QR code with Google Authenticator, Authy, 1Password, or similar. During setup, save the backup codes (shown once; each code works once). Download them if offered. When 2FA is on, login asks for an authenticator code after your password.

Appearance

Choose Light, Dark, or System. The account menu in the sidebar has a quick light/dark toggle; come here when you want to follow your operating system instead.


Workspace settings

Settings → Workspace lists every workspace you belong to. Open one to manage it. Opening a workspace here does not switch the active workspace in the sidebar — use the workspace switcher for that.

Each workspace dialog has:

  • General — rename, edit the URL slug (when allowed), and (owner) permanently delete the workspace
  • Access — members and invites (admin/owner)

Delete workspace

Only the owner can permanently delete a workspace (danger zone under General). Delete applies only to the workspace that is active in the sidebar switcher — switch to that workspace first, then delete it. Opening another workspace from the Settings list does not make it active, so delete there will fail until you switch.


Backup and restore

On Settings → Workspace, below the workspace list, use Backup / Restore.

Download a backup

  1. Choose a workspace you administer (admin or owner).
  2. Click Download backup.
  3. Save the zip archive (mnemo-workspace-backup-v2 format).

Backups are meant to be restorable. They keep page formatting, whiteboards, databases and views, files, comments, and access settings.

Two things can go wrong, and they behave differently:

  • Too much attachment data — the export stops with an error and you get no zip at all, rather than a quietly truncated archive. Your host controls the budget.
  • A file couldn’t be read from storage — you still get a zip, but the app warns that it is incomplete and says how many attachments were left out. Don’t rely on that backup until you know what’s missing.

Restore a backup

  1. Choose a backup zip.
  2. Enter a name for the new workspace.
  3. Restore.

Restore always creates a new workspace you own. It never overwrites an existing workspace. You become the owner of the restored space; teammates are not copied as members — invite them again if needed.

Day-to-day single-page Markdown/PDF export stays in the editor Import/Export menu. Use Backup / Restore when you want a full workspace archive.


Import from Notion

On Settings → Workspace, below Backup / Restore, use Import from Notion (admin or owner on the active workspace).

  1. In Notion, export as HTML and include files (not the Markdown export).
  2. Upload that zip in Mnemo.
  3. Choose a parent (workspace root, or an existing page).
  4. Leave Wrap in a folder page on if you want everything nested under “Imported from Notion” (you can rename the folder).
  5. Import. You’ll get a short report: pages created, databases created, rows imported, and anything skipped.

The import lands in this workspace. It does not create a new workspace (that’s Restore).

What comes through:

  • Nested pages from the HTML folder tree
  • Notion CSV databases as Mnemo databases (text, number, select, date, checkbox when the columns are obvious; otherwise text)
  • Images and files referenced by those pages, within storage quota

What does not:

  • Live sync or a Notion login
  • Toggles, callouts, and relation columns at full fidelity
  • Database row pages as extra tree pages (those rows are imported as database rows)

Caps match workspace backup (page count, zip size). Oversized or unsupported files are skipped and listed in the report.


Tags (owners)

Open Settings → Tags to create, rename, recolor, or delete tags (workspace owner only). Deleting a tag removes it from every page that used it.

Everyone who can edit a page can still assign tags from the chip row under the title. See Tags in Part 1.


Storage and plan

Settings → Storage applies to the workspace that is active in the sidebar.

  • See how much attachment storage the workspace is using versus its limit
  • Default quotas: Free about 1 GiB, Pro about 50 GiB (hosts may configure different numbers)
  • When you hit the limit, new uploads fail until you free space or upgrade

Plan / checkout UI may appear for admins when billing is configured. Pro pricing hasn’t been announced yet — every feature is available on both plans. Storage quotas and the Free API/MCP call cap apply on each.


API and MCP

Members and above can connect Cursor, Claude, or similar tools with a personal access token.

API & MCP usage: Free workspaces get 200 successful API and MCP calls per month (UTC calendar month), shared across REST /api/v1 and MCP for all tokens in the workspace. Only calls that succeed count — errors and failed tool runs do not. Pro is unlimited. Hosts can override the Free allowance with MCP_QUOTA_FREE_CALLS_PER_MONTH. A usage meter on Settings → API & MCP shows how much of the Free allowance you’ve used. When the limit is reached, both surfaces return an error asking you to upgrade.

Create a token

  1. Open Settings → API & MCP
  2. Name the token
  3. Optionally turn on Limit to specific pages / databases — pick page subtrees and/or databases (recommended for agents)
  4. Set access:
    • Limits off (unrestricted workspace): one Read only checkbox — off by default, which means write
    • Limits on: each page or database you add has its own Read only checkbox — off by default, which means write. New adds default to write.
  5. Create the token and copy the mnemo_… secret immediately — it’s shown only once
  6. Paste it into your tool

Tokens are Bearer secrets for:

  • REST: $APP_URL/api/v1/…
  • MCP (Streamable HTTP): $APP_URL/api/mcp

The token list has Edit (pencil). It opens the same grant editor. Save updates the name and grants only — it does not re-show or rotate the secret. Revoke is unchanged.

Write is the default. Check Read only to store a read-only token or grant. The server derives scopes from those grants, so the UI and the stored scope cannot disagree. Read access still follows your page permissions, then any resource limits on the token. Write also requires a Member (or higher) role. Limited tokens must create new pages under a write-granted parent. Creating or updating database rows needs a write grant on that database (or a write-granted parent page). A token that only has read on the database is refused — not “database not found.” Existing tokens are not silently upgraded. Older keys that stored database access as read stay read until you edit and save (or create a new token).

If a page is already open in the editor when an external tool appends or replaces its content, the markdown usually appears live (same sync channel as collaborative editing). Plain paragraphs still work; headings, lists, and callouts land in the live editor. If sync is down, refresh once to pick up the change. Each append or replace is limited to 100,000 characters.

What agents can do

MCP exposes seventeen tools:

list_pages · get_page · search · create_page · create_subpage · update_page · archive_page · append_page_content · replace_page_content · list_databases · list_database_rows · create_database_property · create_database_row · update_database_row · delete_database_row · list_comments · create_comment

REST covers the same ground:

EndpointMethods
/api/v1/pagesGET, POST
/api/v1/pages/{pageId}GET, PATCH, DELETE
/api/v1/pages/{pageId}/contentPOST (append), PUT (replace)
/api/v1/pages/{pageId}/commentsGET, POST
/api/v1/databasesGET
/api/v1/databases/{databaseId}/propertiesPOST
/api/v1/databases/{databaseId}/rowsGET, POST
/api/v1/databases/{databaseId}/rows/{rowId}PATCH, DELETE
/api/v1/searchGET

Notes: search takes the same type and tag filters as the command palette; update_page / PATCH covers title and icon; archiving sends a page to trash rather than deleting it; create_subpage requires parentId; POST /api/v1/pages may include optional bodyMarkdown; GET page / get_page returns body (plaintext) and bodyMarkdown; content is markdown (plain paragraphs still work; headings, lists, and callouts land in the live editor); replace_page_content / PUT overwrites the body; comments include replies; create_database_property / POST /api/v1/databases/{databaseId}/properties adds a column (name, type, optional options as an array of names); types are text, number, select, multi_select, date, checkbox; for select and multi_select, pass option names (for example Todo, Doing, Done) — omit them and the column gets To Do / In Progress / Done, the same as adding a select in the UI; relation, lookup, rollup, and formula are not available on this tool; the write grant is the same as creating rows (write on that database or a write-granted parent page) — a read-only database grant is refused; a database can have 40 properties; duplicate names (case-insensitive) are rejected; title is reserved (the row title column is Name).

Working with agents

A few habits make agents more reliable:

  • Prefer a database’s title (for example Tasks) when a tool asks for a database id — long hex ids are easy to mistype.
  • Property fields and select options can use names, not only internal ids.
  • Have the agent call list database rows (or the REST equivalent) before creating or updating rows so it sees the current schema and options.
  • After adding a column, call list database rows again if the agent needs the new property id. If the database page is already open, the new column and row usually appear live — refresh only if sync is down.
  • Set the row title (the first text column, usually Name) with title on create/update, or properties.Name / properties.title — if the agent only sets select fields, the row stays Untitled.
  • Keep the target page open if you want to watch appends and replaces land live (see above).

Machine-oriented details: OpenAPI description at $APP_URL/api/v1/openapi.json (no token needed to read it).

Cursor example

Add to your Cursor MCP config (mcp.json):

{
  "mcpServers": {
    "mnemo": {
      "url": "https://app.meetmnemo.com/api/mcp",
      "headers": {
        "Authorization": "Bearer mnemo_…"
      }
    }
  }
}

Use your token secret in place of mnemo_….

Recent activity

The same settings page lists recent API and MCP calls. Admins see activity across the whole workspace; members see only their own. The token list itself is always personal — nobody, admin included, sees another person’s tokens. Revoke your own tokens anytime from this section.


Tips and gotchas

  • After upgrades, skim What’s new, then Got it
  • If you see Mnemo was updated — reload?, reload so the session matches the new build
  • You may get invite and password emails (branded), or just a copyable invite link — both work
  • Comments support one-level replies and resolve; deeper nesting and digests come later
  • The sidebar filter searches titles across the whole workspace, including branches you haven’t expanded — reach for it before scrolling the tree
  • Drag a row onto another to nest it; drop between rows to reorder. Move under… does the same thing from a searchable dialog when the two rows are far apart
  • Settings, Trash, Feedback, theme, and Sign out all live in the account menu at the bottom of the sidebar
  • Document blocks reorder with the gutter handle; use Duplicate in the page menu to copy a page
  • Lock a code block when you’re referencing a snippet you don’t want to nudge by accident
  • Paste markdown into a document to get real blocks; use Import Markdown when you have a whole .md file
  • Prefer Backup / Restore for full workspace archives; use editor Markdown/PDF for a single page
  • Restored workspaces are new spaces you own — invite teammates again
  • Storage quotas apply on every plan — about 1 GiB on Free, 50 GiB on Pro
  • Free workspaces have a monthly API & MCP allowance (see Settings → API & MCP); Pro is unlimited. Failed calls don’t count
  • Agent or API edits to an open page usually show up live — markdown appends, replaces, and new database columns included
  • Database embeds on a public share link show when the database is workspace-visible; restricted databases stay private unless you share the database itself
  • Import from Notion uses an HTML export zip under Settings → Workspace (not Markdown export, not live sync)
  • Not a full offline app — retry sync on the open page if the connection drops

Send feedback

When Feedback appears in the account menu at the bottom of the sidebar, use it to send:

  • a bug report
  • a feature request
  • or other notes

Include a short title and details. You can attach up to five screenshots or files, and the current page URL is included by default (untick it if you’d rather not). Submissions go to the Mnemo team as GitLab issues. If your host hasn’t configured that, the menu entry simply won’t be there.

Helpful to include:

  1. What you were trying to do
  2. What happened instead
  3. Whether you were alone or collaborating

Thanks for trying Mnemo — happy writing.