Markdown notes in a folder tree
Corpus is a private, single-user vault. Notes live in folders you name, are written in Markdown, and have a full version history. Reach them from a browser, a shell, or an MCP client.
Free, offered as-is. Your vault is private to your account.
What it does
A folder tree
Notes sit in nested folders you name. Drag rows to move them, select several at once, rename in place, or delete a whole branch.
Markdown editor
A formatting toolbar for headings, lists, quotes, links, code fences and tables. Task checkboxes stay clickable in the rendered view.
Mermaid and Graphviz
Mermaid and Graphviz blocks render as diagrams in the note, next to syntax-highlighted code and GitHub-flavoured tables.
Full-text search
Search note names and note text together, and filter the results by tag. Each result shows the line that matched.
Version history
Each save archives the text it replaced. Open any earlier revision read-only, then restore it as the current one.
Tags on notes and folders
Name a tag and give it a colour once, then reuse it. Tags go on individual notes or on a whole folder.
Images and files
Drag images and files straight into a note. Images can be sized and aligned from the editor, and everything is stored privately to your account.
Keyboard shortcuts
The whole app is driven from the keyboard — new note, search, rename, history, save. Press ? in the app for the full list.
How it works
Write
Press N for a new note, pick the folder it belongs in, and write Markdown. Nothing is stored until you save it.
Every note is filed the moment it is created. Leave the page with unsaved edits and the app asks before discarding them.
- NNew note
- CtrlSSave
Step 1
Beyond the browser
Create a personal access token in Settings and the same notes are reachable from a shell and from an MCP client.
Command line
A path-addressed client with 24 commands for listing, reading, writing, moving, searching and restoring. One record per line, so `grep` and `cut` work on it.
npm install -g @schupke/corpus-cli
MCP server
Point an MCP client at your vault and 33 tools become available, split by scope so a read token is never shown a write tool.
{
"mcpServers": {
"corpus": {
"url": "https://corpus.schupke.io/api/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}Personal access tokens
Read or write scope, shown once and never stored in readable form, revocable at any time. Every write is recorded in an audit log you can read.
How tokens are storedStart with an empty tree
Sign in and make the first folder. There is no setup beyond that.