Rafael Gómez Bermejo25k downloadsBuild guided Canvas workflows, read PDFs and EPUBs, and turn highlights into cited notes connected to your local Zettelkasten and knowledge graph.
Practice loops · Reader & Library · Canvas workflows · Get started · Why ZettelFlow · Everything it does
Most plugins help you write. Almost none help you think.
Stop managing notes. Start managing knowledge. Obsidian is the store; ZettelFlow is the engine that makes the knowledge inside it evolve. It turns a native Canvas into a note-creation wizard, opens your notes, PDFs and EPUBs in a Reader built for thinking, and gives you a small set of practice loops that ask something of you. Every loop is offline, works with AI switched off, and writes nothing to your vault you did not decide.
Before any feature list, the things ZettelFlow asks you to do — each a small loop on your own notes, each reached where you already are (Home, Think, the Reader, a note's right-click menu):
| 🔁 Return a claim — say in one sentence what a note claims; later it comes back blind from Home and asks what you say about it now. The return of a claim → | 📖 Look again at what you marked — your Reader highlights come back from Home a few at a time, with one question: do you still think so? A few things you marked → |
| 📄 What survived? — at the end of a chapter you marked, the book gives you a blank leaf: your marks, what they touched, and is one worth a note? What survived → | ✍️ Recall a chapter — put the chapter and your marks away, write what it argued in your own words, then look. Nothing is scored. Recall → |
| 🎲 Collide two notes — from Think, two of your notes with nothing in common, side by side: what could they share? It never answers. Two things far apart (collision) → | ⚖️ Place a wager — add what you expect to see and by when to a claim; on the day, it asks what happened before it shows your prediction. A wager → |
| 🧠 Make a move on an idea — challenge it, reframe it, branch it, set it aside: a cognitive move, recorded as something you did. Make a move → | ✨ And everything else — the Canvas wizard, the semantic graph, health, discovery, dashboards. Everything it does → |
AI is one action, never the product. Every loop and every view works fully with AI disabled; when it is on it proposes, and you accept, edit or reject — the verdict is recorded, never assumed. Knowledge with purpose — starting from your own question and writing a provisional response — needs no AI, methodology or Canvas setup; see Cultivate.
Right-click any note → Read from here. The Reader takes the window and walks you through the note and the notes around it, one chapter at a time — no MOC needed. Your Library puts your PDFs, EPUBs and Web Clipper articles on one shelf, beside the reading paths you saved, and opens them in the same Reader. What you mark lands in Think, never in the book; Esc gives your workspace back exactly as it was.
The Reader → · Your library → · Nothing is imported or uploaded, and your book files are never modified.
Your note workflow is a Canvas. A card is a step, an arrow is the order, a branch is a choice. Press Create note and ZettelFlow walks that graph with you as a short wizard — the idea, its kind, its tags, the links your vault suggests — while a live preview writes the note: frontmatter, body and file name, no template edited by hand. Then the note doesn't land alone: it arrives in your graph, already linked, in the region it belongs to — and you see the bridge it just made.
| 1 · Draw it once Right-click a .canvas → Use this canvas to create notes. Each card is a step, arrows set the order, a branch is a choice. |
2 · Give each step its actions Select a card → Edit step: ask for text, pick a date, choose an option, add tags, suggest links from your graph — 31 built-in actions. |
3 · Walk it for every note Ribbon → Create note (or a hotkey for Open workflow). The wizard walks the graph, the preview shows the note before it exists, and Create lands it linked. |
…and the wizard is only the door. Home is where you land each day: a greeting, Think's composer, where you left off and what came back today, answered in place.
Think · a place for what isn't knowledge yet · Explore · ask, and the graph answers · Cultivate · grow an idea by hand
🧭 This note, beside every note A sidebar companion: where the note stands, what argues with it, what supports it, what it is missing — and its next step, finished in place. |
📊 Dashboards for your vault Point an Obsidian Base at a folder: stat, bar, line, pie, heatmap and calendar panels with no dataviewjs — a local Grafana. |
Install ZettelFlow from Obsidian's community plugins — or open it in Obsidian. Everything starts at the ZettelFlow ribbon button, which opens a menu.
Draw your own flow:
flows/Daily note.canvas), right-click it → Use this canvas to create notes → Give it the role.Stuck? Read the getting started guide or open a discussion.
ZettelFlow collects no telemetry and sends no personal data or vault contents anywhere. No account, no backend: the network is touched only by the two opt-in paths below.
Vault / FrontmatterService API — never a hardcoded path. Works on desktop and mobile.GETs of the static catalog on GitHub (no backend, no account, no uploads), and the optional AI provider sends length-bounded note content to the single https endpoint you configure. Both are off until you open the browser or enable AI.zf.knowledge — so only run scripts you trust. No remote code is ever fetched or executed, and every runtime function is built in one audited module.See Capabilities & privacy for full details.
Report a bug · Request a feature · Start a discussion · Contribute code
If ZettelFlow saves you time, a ⭐ helps others find it — and you can support development: