Features
Everything in the box
A friendly editor for everyone, plain Markdown underneath, and collaboration that never loses an edit. All of it works on encrypted data, decrypted only on your devices.
In more detail, in the docs: every feature, and who can do what in a shared vault.
Writing
- Live previewMarkdown formats as you type; the syntax shows only on the line you are editing. Switch to source or reading view (Ctrl E) at any time.
- A toolbar for everyoneHeadings, bold, colors, lists, checklists, quotes, callouts, code, code blocks, links, tables and dividers without knowing Markdown.
- DatesType
@today,@tomorrowor@yesterday, or pick a day from the menu @ opens: the note gets the date, written as plain text (@2026-10-23). It reads Today, then Yesterday, then the date — so it always means the day it was written for. - CalloutsBoxes for a tip, a warning or a question, written as GitHub and Obsidian write them:
> [!tip],> [!warning] A title,> [!faq]-for one that folds. Fifteen types with their own color and icon (and Obsidian's aliases, in any case), in the editor and the reading view; they can nest. The toolbar starts one, or gives the one you are in another type. - ColorsText and background colors from the toolbar, in a palette that reads well in the light and the dark theme. They are saved as plain HTML (
<span style="color: …">), so Obsidian, Typora, VS Code and other Markdown editors show them too — and colors written there (<font color>, colored highlights, any CSS color) show here in the nearest palette color. - TablesRendered as real tables while you edit. Enter adds a row, Tab moves between cells, alignment comes from the header row. A table wider than the screen scrolls sideways, so columns stay readable on a phone.
- Task lists
- [ ]checkboxes you can tick in the editor and in reading view. - Code blocksSyntax highlighting for some 35 languages, line numbers, indentation guides and a copy button. Name the file and highlight lines right after the language (
```bash title=deploy.sh hl=2,4-6);ln=falsehides the numbers,vl=falsethe guides, and withwrap=falselong lines scroll sideways instead of wrapping. A new block from the toolbar or Ctrl Shift `; Enter or pasting after an opening```closes the block. - Images, videos and filesPaste or drop images, videos, audio and other files into a note; they are encrypted like everything else. Pictures show where they are, videos and audio play there. They go to
attachments/beside the note, and move with it. - A page for each fileOpen a file from the tree or a link: a picture, video or sound shows there, with the notes and drawings that use it. Rename, move, download or trash it from there.
- HTML when Markdown isn't enoughFold-out sections (
<details>), keys (<kbd>), sub- and superscript, centered text, sized images, tables with merged cells. Only formatting is kept: no scripts, styles, frames, forms or embeds, and external images aren't loaded. The editor shows HTML rendered, like Markdown: a block until you click into it, inline tags (<kbd>,<i>, …) until the caret is on their line. - Line numbersOptionally, a number beside each line of the Markdown, in the margin — or relative to the caret's line, as Vim's
relativenumber; code blocks number their own lines too. - Vim keysOptional Vim keybindings: normal, insert and visual modes (by lines too) with a block cursor, the common motions and operators, counts, J, >>, gj, Ctrl D / Ctrl U, and Ctrl O back through jumps and notes.
- Keyboard firstShortcuts for formatting, a quick switcher on Ctrl P, search on Ctrl Shift F, a new note on Ctrl Alt N, the side panel on Ctrl \, and a shortcuts overview on Ctrl /; Enter or Tab in the title moves on to the text. On a Mac, ⌘ instead of Ctrl.
- Your wayLight, dark or the system's theme.
- Narrow or wideA slider from a comfortable line length to all the room on the screen: a default for this browser or all your devices, and any note its own width from its ⋯ menu. Only you see the widths you choose.
Drawings
- Hand-drawn, in RustA drawing editor with a hand-drawn look, compatible with Excalidraw down to its shortcuts: shapes, arrows, lines, the pen, texts, pictures, sticky notes, frames, the eraser and the laser; colours (and the whole palette), fills, sloppiness, every font; select, move, resize, turn, group, lock, align, layers, Alt+drag to copy; undo and redo of your own changes; pinch to zoom on touch screens. The same drawing looks the same as on excalidraw.com.
- Labels and attached arrowsText inside shapes and on arrows and lines, wrapped and centred, sliding along them in a gap of their line; arrows that stay attached to shapes and follow them — to the outline, or inside when held there; elbow arrows that route themselves at right angles.
- Points, grid and snappingA selected line's points are its handles: drag them, bend it halfway, or edit every point (Ctrl+double-click or Enter). The grid (Ctrl+') and snapping to other shapes' edges, centres and equal gaps (Alt+S).
- Sticky notes and framesNotes whose text shrinks to fit; frames that hold, move and clip what is in them, renamed by double-clicking their name. Select a frame on its own and its PNG or SVG (or a copy) is just what is in it, cut to it.
- Pictures and linksPictures pasted, dropped or picked (9) are files of the vault, encrypted, inside drawing files written out; Enter crops one. Elements link to a web address or
[[a note]](Ctrl+K). - Saved shapesKeep shapes from a drawing and drop them into any other, as Excalidraw's library — yours, in your Personal storage, synced and encrypted between your devices. Named after their first text and renamed in place; Shift-click or Ctrl-click picks several, to put in side by side, export or remove at once. Import and export
.excalidrawlibfiles; the Markdown folder keeps them as one, merging your edits shape by shape. - Drawn togetherDraw live with a vault's members — their pointers and names, what they selected, their laser; what someone drew offline merges when they are back. Versions to look back on and restore. End-to-end encrypted like notes.
- In your notes
![[Board.drawing]]shows the drawing in a note, live; notes from Obsidian showing![[Board.excalidraw]]find the imported drawing. Drawings live in vaults, in the file tree, renamed there or by their name at the top of the drawing; a vault's Drawings page shows them all as pictures. - Works with Excalidraw's filesCopy and paste with excalidraw.com and Obsidian; importing a folder or Obsidian vault turns
.excalidrawfiles and Obsidian's drawings (.excalidraw.md, or renamed: its front matter says so) into drawings. Synced as they are from your Markdown folder, so Obsidian keeps using them, they show as drawings, view-only, wherever you open or embed them, until you choose to make one a drawing of notekpr's; export a.drawingfile, or for Excalidraw, Obsidian, as SVG or PNG (the drawing inside, as Excalidraw's own exports, which open as drawings too); copy as PNG or SVG. The Markdown folder keeps drawings as.drawingfiles; agents read and make drawings.
Organizing
- VaultsSeparate spaces with their own members and keys: one for the family, one for work, one just for you. Each opens on a home page with recently edited notes and its tags. Its owners can archive it while it isn't needed, or delete it.
- FoldersNest notes in folders, drag them around, rename them; links follow renames and moves. A note moved takes its own attachments along. Drop between two notes to put one in your own order — everyone in the vault sees it, and Sort A–Z undoes it.
- Wiki links and backlinks
[[Note]],[[Note#Heading]],[[Note|alias]]and embeds like![[photo.jpg]]; a link to a missing note creates it. The side panel lists what links here, unresolved links to create, the outline and tags. - Graph viewSee how your notes link, like in Obsidian: the whole vault on Ctrl G, with a filter, or the open note and its neighbours in the side panel. Drawings are in it too, linked with the notes that show them and those they link to. Drag, zoom, click a note to open it.
- IconsGive notes, folders and vaults an emoji or a picture of your own, so you see at a glance where you are. Every emoji, by group and searchable by name, the recent ones first — or paste any. An uploaded image becomes a small square picture, encrypted like everything else; the ones you used lately are offered again. Emoji from the command line too.
- Quick notesCapture a thought in a second with Alt Q, a capture page that works on phones, the command line, or a file dropped into the Markdown folder. They're yours alone, in no vault, the same from every vault and device — a short list to sort out later: move each to a vault, or delete it for good.
- Move between vaultsMove a note, or a folder with everything in it, to another vault, with the attachments its notes link to.
- Tags
#tagsanywhere in a note, searchable withtag:or#tag. - SearchFull-text search across your vaults with
tag:,folder:(orpath:),title:andvault:filters and"phrases". The quick switcher creates the note when nothing matches. - Favorites and recentPin the notes you use most; recent notes are one click away.
- Take a note alongDownload a note as Markdown, or copy a
[[link]]to it, from its menu. - HistoryEarlier versions of each note are kept. Preview one and restore it; the current text stays in history too.
- TrashDeleted notes and folders go to the trash first and can be restored. Even emptying the trash can be undone for a while: 30 days, unless the server is set otherwise.
Working together
- Share a vaultInvite people by name or e-mail as owner, admin, editor or viewer. A vault can have several owners, all equal, and always keeps one: the last can't leave, nor delete their account while others use it, so a family's or a team's vault never goes with one person — and one others use suggests a second owner. Editors move notes to the trash; only owners and admins delete for good, and they see the vault's activity log. Removing someone gives the vault a new key; members can leave.
- Share a single noteShare one note with someone outside the vault. They get that one note, not the vault: no other notes, file names or attachments. They're told when it arrives, and can remove it from their list.
- Live editingEdit the same note at the same time and see each other's cursors. Changes merge character by character.
- CommentsSelect some text and comment on it (Alt M), while editing or reading; the text gets a highlight that opens the thread, to reply, resolve, edit or delete. Viewers can comment too, unless the owners turn it off. Comments stay on their text through edits, also from your own editor, and nobody can change or fake someone else's. From the command line and for AI agents too, and kept in exports.
- @mentionsType @ in a comment to mention someone in the vault. It shows up in their mentions inbox, with a message as it arrives and, if they want, a notification from the browser. Their own devices find it: the server never learns who was mentioned.
- No lost editsChanges made offline, or at the same moment as someone else, are merged when they sync. Nobody's work is overwritten.
- Who is hereSee who else is on the note you are on.
- Verified peopleEach person's key has a fingerprint you can compare. You are warned if a key ever changes.
Privacy and security
- End-to-end encryptedNote text, titles, file and folder names, attachments, vault names and icons, presence and your settings are encrypted on your devices.
- A key per noteEvery note has its own key. Removing someone renews the keys in the same step, and when someone leaves on their own the owners' apps renew them next time they're online. Sharing a note never gives away its earlier history, and owners can renew a vault's key by hand.
- Signed changesThe owners sign who belongs to a vault and every edit is signed by its author, so even a compromised server can't add people or forge edits.
- Your devicesA new device is approved from one you already use, with a verification code, or unlocked with your recovery key. Any browser can be forgotten. When you approve the command line's sign-in, you see when and from which address it was asked for.
- Sessions and recoverySee where you are signed in and sign out remotely. Make a new recovery key whenever you need one.
- Your sign-inSign in with your own OpenID Connect provider: Authelia, Keycloak, Authentik and others.
Your files, your tools
The notekpr command-line client keeps an encrypted copy of your vaults for offline use. With sync --dir it also keeps them as an ordinary folder of Markdown files, synced both ways, so you can write in Obsidian, Neovim, VS Code or any editor you like. notekpr setup sets a computer up in one go: it signs you in, takes the folder you choose (an Obsidian vault already there comes along) and keeps it in sync in the background.
The web app keeps an encrypted copy in your browser too: vaults open at once, and what you write offline syncs when you are back. If you like, it even starts without the server.
The command line does everything: list, read, write, search, move, icons, trash, history, quick notes, sharing, archiving, key rotation, devices and recovery keys — also while it syncs. With completions for your shell: bash, zsh, fish, PowerShell or elvish.
Export a vault as a zip of .md files and attachments at any time, from the web app or the command line, and import folders or zips of Markdown.
Coming from Notion? Export a page or database as HTML there and import its zip, one piece after another. Pages become notes and folders, databases folders of notes with their properties and a table of their rows, task lists checklists, and links between pages stay links — also to pages you bring in later. A note lists whatever didn't come along.
Moving to another server? Export the vaults you choose and your quick notes as one zip, and import it there: the vaults come back with their folders, files and icons. The new server starts fresh — without history, comments or the people they were shared with. Then delete your account on the old one, if you like: everything that is yours there goes at once.
No lock-in, even if the server is gone: keep an encrypted export, and notekpr recover turns it back into Markdown files with nothing but your recovery key. No server, no account, no network.
AI agents
Give an assistant or a script its own identity with its own keys. It sees only the vaults you share with it, as viewer or editor, and everything it writes is attributed to it and can be reviewed in history.
Agents work with notes through the command line, a synced folder of files, or a local HTTP API on their own machine that logs every write. The server never decrypts anything for them.
Create agents, give them new secrets, and revoke or delete them in Settings or from the command line.
Running a server
- Admin pageAccounts, who is an administrator, disabling an account, server statistics and the server's version. Administrators can't read anyone's notes or vault names.
- LimitsHow many accounts, agents and vaults a server has, how many vaults, agents and quick notes each person may have — with one person's own allowance —, and how many drawings each vault may hold — with one vault's own. Changed while it runs; lowering one takes nothing away.
- Storage per vaultA size each vault may take, by default and for one vault. A full vault takes no new content — edits wait on people's devices and go out once it has room — while every other vault goes on; emptying its trash makes room at once. Members find a vault's id in its settings to ask for more; administrators see vaults' ids, owners and sizes, never their names. Each person's Personal storage (quick notes, saved shapes) has a size of its own, by default and for one person.
- Read-only modeThe server keeps serving everything but accepts no changes. People keep writing: their edits wait on their devices and are sent the moment it ends.
- Where files goAttachments in a folder, in S3 or anything compatible (several servers can share a bucket), or inside the database for one-file backups — encrypted wherever they are, and served only through the server. Moving there from the database happens by itself.
- Storage for the serverA size for the whole server, database and files. At it every vault takes no new content — edits wait on people's devices — until something is deleted for good or the size is raised: on a server of its own, the room a family or a team shares however they like.
- Older appsApps installed long ago keep working with newer servers, and a server that needs a newer app says so instead of letting it misbehave: the app asks to be updated and keeps its unsent edits. Administrators can raise the oldest version they accept.
- Admin clientsScripts and services, such as a billing system, manage settings and accounts through the admin API, each with its own scopes and tokens — rotated and revoked without a restart, and never reaching a vault. A shared server can have no administrators among its people at all.
Apps
| App | What it does | Status |
|---|---|---|
| Web app | The full app in any modern browser, on desktop and phones. Served by your server; all decryption happens in the browser. | Available |
| Command line | Offline copy, live sync, Markdown folder, export and import, sharing and keys. Linux first; builds for macOS and Windows. | Available |
| Mobile apps | Native apps for phones and tablets. Until then the web app works on phones. | Planned |
| Desktop app | A native window around the web app. | Planned |