Notebook
A Notebook is Mottainai's collaborative wiki and note-taking space. You organize knowledge as pages arranged in a tree structure — nest pages under other pages to create chapters, sections, or any hierarchy that suits your needs. Multiple people can edit the same page at the same time, with changes synced in real time.
How it works
Think of a notebook as a personal wiki. Each entry is a page with a title and rich text content. Pages can be nested under other pages to form a tree, much like folders and subfolders. Link between pages with [[Page Title]] wiki-links, and the notebook automatically tracks backlinks so you can navigate in both directions.
Getting started: Create a notebook from your dashboard. Once open, add pages and start writing. Drag pages in the sidebar to rearrange or nest them.
Pages
Pages are the building blocks of a notebook.
- Create a page with the "+" button in the sidebar — a title is all you need
- Add an optional emoji icon to visually distinguish pages in the tree
- Nest pages by dragging them under a parent page — there is no depth limit
- Reorder pages by dragging them up or down within the same level
- Lock a page to prevent edits by other members (creator and admins can still edit)
- Delete a page to remove it and all its child pages permanently
Rich text editing
Pages use a rich text editor (TipTap) with support for:
- Headings, bold, italic, strikethrough, code
- Bullet lists, numbered lists, task lists (checkboxes)
- Tables, blockquotes, horizontal rules
- Code blocks with syntax highlighting
- Images and file uploads (drag-and-drop or paste)
- Keyboard shortcuts for common formatting
Real-time collaboration
When multiple people open the same page, their changes merge automatically using Yjs CRDT technology. You can see who else is viewing a page via the presence indicators. No manual saving is needed — content syncs continuously.
Wiki-links and backlinks
Type [[ to insert a wiki-link to another page in the same notebook. Wiki-links make it easy to cross-reference related topics.
- Wiki-link —
[[Page Title]]creates a clickable link to that page - Backlinks — each page shows which other pages link to it, so you can navigate the knowledge graph in both directions
Version history
Save snapshots of a page at important milestones. You can browse previous versions and restore any earlier snapshot to replace the current content.
Page templates
Save a page as a template to reuse its structure and content when creating new pages. Templates are available across all your notebooks.
Encryption
Individual pages can be encrypted with a passphrase. Encrypted pages are stored securely on the server — only someone with the passphrase can read the content. AI assistants and the CLI see an [encrypted] placeholder instead of the actual text.
Import and export
- Markdown — export any page as a
.mdfile, or import Markdown content when creating a page - Obsidian vault — import an entire Obsidian vault as a ZIP file; the folder structure becomes the page tree and
[[wiki-links]]are preserved
Sharing
Share a notebook with teammates or family members via an invite link from the share panel.
| Role | What they can do |
|---|---|
| Owner | Full control — manage members, delete the notebook |
| Admin | Manage settings and members, edit locked pages |
| Member | Create and edit pages |
| Guest | View only — cannot make changes |
You can also link a contact group to add all group members at once.
For developers
The following sections are for programmatic access via CLI, AI assistants (MCP), or direct API. See MCP setup and CLI docs for how to connect.
CLI
# Notebooks
mo notebook list
mo notebook create "Project Wiki"
mo notebook get NOTEBOOK_ID
mo notebook update NOTEBOOK_ID --name "Project Wiki (v2)"
mo notebook delete NOTEBOOK_ID --yes
# Pages
mo notebook page list --container NOTEBOOK_ID
mo notebook page get PAGE_ID --container NOTEBOOK_ID
mo notebook page create --container NOTEBOOK_ID --title "Getting Started" --content "# Welcome"
mo notebook page create --container NOTEBOOK_ID --title "Sub Page" --parent PARENT_PAGE_ID
mo notebook page update PAGE_ID --container NOTEBOOK_ID --title "New Title"
mo notebook page update PAGE_ID --container NOTEBOOK_ID --content "Updated content"
mo notebook page update PAGE_ID --container NOTEBOOK_ID --icon "📝"
mo notebook page move PAGE_ID --container NOTEBOOK_ID --parent NEW_PARENT_ID --position 0
mo notebook page delete PAGE_ID --container NOTEBOOK_ID --yesMCP tools
list_notebooks— list all notebookscreate_notebook— create a new notebookget_notebook— fetch a notebook with its settingsupdate_notebook/delete_notebooklist_notebook_pages— list all pages in a notebook with tree structure (path, depth, position)get_notebook_page— fetch a page with its markdown content (encrypted pages return[encrypted])create_notebook_page— create a page, optionally nested under a parentupdate_notebook_page— update a page's title, content, or icondelete_notebook_page— delete a page and all its child pagesmove_notebook_page— move a page to a different parent or to root level
API endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/containers?type=notebook | List notebooks |
POST | /api/containers | Create notebook (type=notebook) |
GET | /api/containers/{notebookId} | Get notebook with settings |
PUT | /api/containers/{notebookId} | Update notebook settings |
DELETE | /api/containers/{notebookId} | Delete notebook |
GET | /api/containers/{notebookId}/pages | List all pages (flat, with tree metadata) |
POST | /api/containers/{notebookId}/pages | Create page |
GET | /api/containers/{notebookId}/pages/{pageId} | Get page with content |
PUT | /api/containers/{notebookId}/pages/{pageId} | Update page |
DELETE | /api/containers/{notebookId}/pages/{pageId} | Delete page and children |
PUT | /api/containers/{notebookId}/pages/{pageId}/content | Update page content only |
POST | /api/containers/{notebookId}/pages/{pageId}/move | Move/reparent page |
POST | /api/containers/{notebookId}/pages/reorder | Reorder pages |
PUT | /api/containers/{notebookId}/pages/{pageId}/links | Update wiki-links |
GET | /api/containers/{notebookId}/pages/{pageId}/backlinks | Get backlinks for a page |
GET | /api/containers/{notebookId}/pages/{pageId}/versions | List page versions |
POST | /api/containers/{notebookId}/pages/{pageId}/versions | Create page version snapshot |
POST | /api/containers/{notebookId}/pages/{pageId}/versions/{versionId}/restore | Restore a page version |
POST | /api/containers/{notebookId}/pages/{pageId}/upload | Upload image/file to page |
DELETE | /api/containers/{notebookId}/uploads | Delete uploaded file |
GET | /api/containers/{notebookId}/notebook/presence | Get page presence (who's viewing) |
GET | /api/notebook-templates | List page templates |
POST | /api/notebook-templates | Create page template |
DELETE | /api/notebook-templates/{templateId} | Delete page template |
GET | /ws/yjs?page={pageId} | WebSocket for real-time editing |
See the full API reference at /api/docs.