Search, read and query large folders of Markdown notes (200,000+). Optional, reversible edits.
Runs on your machine from its package; the steps are below.

Not assessed yet.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Distributed as an MCP bundle (`https://github.com/ericthai-labs/lanternote/releases/download/v1.22.0/lanternote-1.22.0.mcpb`) — download it and import the bundle in your MCP client.
A fast, private desktop app for very large folders of Markdown notes.
Read, edit, search, query and map 200,000 notes on Windows, macOS or Linux — no account, no cloud, no graphics card needed.
Download · Features · Performance · User guide · Build from source · Changelog
20 seconds on a made-up folder of 139,434 notes: quick open · full-text search · Command Center · galaxy · link graph
.exe, no installation, no admin rights..md files in a folder you choose. Nothing is uploaded, nothing phones home, everything works offline.
Command CenterOne page with what matters today — projects, due dates, open tasks, a calendar, recent notes. It is built from an ordinary note you can edit.
|
Your notes as a galaxyEvery star is a note, every arm a folder, and notes you edited this week shine. Zoom in to read names, click a star to open it.
|
Link graph on any PCThe Map engine lays out hundreds of thousands of notes once, in the background, and draws them like a digital map — no GPU required. A Live GPU engine is there when you have one.
|
Editing that protects your workLive preview (Markdown marks hide away from the cursor; checkboxes, pictures and links work as you write), tabs, and a right pane to read one note while you write another. Auto-save, per-note undo,
|
Search everything, instantlyFull-text search across every note, accent-insensitive, with
|
Live queriesTables, lists, task lists and month calendars from
|
Tasks and calendarsCollect tasks from every note, sort them by due date and tick them right in the results — the note is updated on the spot.
|
Kanban boardsDrag cards between lanes. Boards are plain Markdown notes in the common board format, so they stay readable anywhere.
|
CanvasLay out notes, text and links on an infinite board. Canvases use the open JSON Canvas format.
|
Connect an AI assistantBuilt-in MCP server: search, read, run queries, list tasks, check a quotation and its numbers against the note before citing it (
|
Also included: wiki links with headings, blocks and aliases · embeds (![[note]], images, audio, video) · backlinks and outline · front-matter properties · tags and nested tags · callouts · highlights and comments · Mermaid diagrams · note templates · daily notes · image viewer · command palette · print to PDF · light and dark themes.
Measured on a real-world library of 190,522 notes, 2.49 million links (728 MB), and on a made-up 139,000-note folder used for all pictures in this README.
| Task | Time |
|---|---|
| First open (no cache) | ≈ 17–19 s |
| Reopen (cached) | ≈ 1–2 s — changes are checked in the background |
| Full-text search | 20–130 ms |
| Quick open by name | ≈ 25 ms |
| Live query over the whole library | ≈ 0.1 s |
| Galaxy — one frame | ≈ 1 ms |
| Link graph — build | ≈ 0.15 s |
indexer.js): it reads and parses every note, keeps a compact search index (accent-insensitive, 50 MB for the library above) and answers searches and queries. The window only holds a small index — paths plus a Uint32Array of links — and reads a note's text when you open it.index-cache): parsed notes and the resolved link graph are cached, so a reopen shows the folder at once and only stats files in the background.layout-worker.js, src/atlas.js): the layout is computed once (Pivot MDS plus neighbour smoothing) and cached; drawing uses level of detail on a 2D canvas, so an idle graph costs no CPU.Get the file for your system from the latest release:
| System | File | How to run |
|---|---|---|
| Windows 10/11 | Lanternote-<version>-portable.exe | Run it — no installation, no admin rights. For a faster start use Lanternote-<version>-win.zip and run Lanternote.exe inside. |
| macOS (Apple silicon) | Lanternote-<version>-arm64-mac.zip | Unzip and move Lanternote.app to Applications. |
| Linux (x64) | Lanternote-<version>.AppImage | chmod +x Lanternote-*.AppImage, then run it. |
Then click Open a folder and choose your notes. Next time Lanternote reopens the same folder and note.
Only want your AI assistant to read your notes? Download lanternote-<version>.mcpb from the same release and double-click it: Claude Desktop installs the extension and asks for your notes folder. It is read-only unless you turn on Let the AI edit notes, and it works on Windows, macOS and Linux.
Note
The app is not code-signed yet, so your system may warn you the first time:
Lanternote.app → Open → Open. If macOS says the app "is damaged", run xattr -cr /Applications/Lanternote.app once.--no-sandbox.The macOS and Linux builds are new: every feature is tested on both systems by CI, but please report anything that looks wrong.
Settings, the index cache and recovery copies are kept on each computer (%APPDATA%\Lanternote on Windows).
Press F1 in the app for the built-in guide, or read the illustrated user guide.
| Keys | Action |
|---|---|
F1 | In-app guide |
Ctrl+O | Quick open |
Ctrl+Shift+F | Search every note (tag:#name to filter) |
Ctrl+Shift+H | Command Center |
Ctrl+G / Ctrl+Shift+G | Graph of all notes / around this note |
Ctrl+N | New note |
Ctrl+E | Read ⇄ edit |
Alt+E | Insert a template |
Ctrl+P | Command palette |
Ctrl+, | Settings |
Ctrl+Shift+D | Light / dark |
Alt+← / Alt+→ | Back / forward |
Ctrl+− / Ctrl+= / Ctrl+0 | Zoom out / in / reset |
Esc | Close a dialog, leave the galaxy |
Lanternote reads and writes only the folder you open and its own settings folder. It has no account, no telemetry and no update check; all libraries are bundled, so it runs without a network connection. Pictures linked from the internet () are not fetched unless you click one or turn on Settings → Files & links → Load pictures from the internet, since fetching them tells the web server when a note is opened. Pictures a note links on this PC outside the folder () are shown, and links to documents there (PDF, picture, text) open in their own app; only those file types are read or opened that way, never a program, and Settings → Files & links can turn it off.
The only exception is one you turn on yourself: when you connect an AI assistant, the notes it reads are sent to that assistant's provider. You can make the connection read-only and limit it to chosen folders.
Requires Node.js 22 or later and Git. Build outside folders synced by OneDrive or Dropbox — node_modules and the builds are large.
git clone https://github.com/ericthai-labs/lanternote.git
cd lanternote
npm ci # installs dependencies and bundles the editor into src/vendor
npm start # run from source
npm run dist:win # portable .exe and .zip in dist/
| Path | What it does |
|---|---|
main.js, preload.js | Main process: file access, folder watching, IPC, the vault:// protocol for attachments (paths cannot escape the folder) |
indexer.js, search-index.js | Worker thread: parsing, disk cache, search, queries |
layout-worker.js, src/atlas.js | Graph "Map" engine |
src/graph.js | Graph "Live" engine (cosmos.gl) |
src/app.js, src/edit.js, editor/ | Reader and editor (CodeMirror 6, live preview in editor/live-preview.js) |
src/panes.js | Tabs and the right pane |
src/command.js, src/dataview.js, src/dvview.js, src/kanban.js, src/canvas.js | Command Center, queries, Kanban, Canvas |
mcp/lanternote-mcp.js | MCP server for AI assistants (no extra dependencies); scripts/make-mcpb.js packs it as a Claude Desktop extension |
tests/, scripts/drive.js | Automated tests that drive the app through DevTools |
node tests/mcp.js # AI connection, 35 checks
node scripts/drive.js <test-folder> tests/editing.js # UI scenarios — see tests/README.md
node scripts/bench-index.js <folder> <words> # index and search timings
npm run media -- <work-folder> # rebuild guide, adverts and README pictures
Every version bump needs a ## x.y.z entry in CHANGELOG.md; npm run dist:* stops without one. Pushing a tag vx.y.z releases it: CI tests and builds on Windows, macOS and Linux, then publishes the GitHub release (notes from the changelog, via scripts/release-notes.js) and the MCP Registry entry. Run UI tests only on throw-away folders — they create, rename and delete files.
Bug reports and suggestions are welcome in Issues. Pull requests are welcome too; contributions are accepted under the Apache License 2.0.
Lanternote is open source under the Apache License 2.0:
Versions up to 1.18.0 were released under the PolyForm Noncommercial License 1.0.0; from 1.18.1 on, Lanternote is Apache 2.0.
Bundled open-source libraries keep their own licences, listed in THIRD-PARTY-NOTICES.txt.
Lanternote stands on excellent open-source work, including Electron, CodeMirror, cosmos.gl, marked, DOMPurify and Mermaid.