Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

ZettelFlow

Rafael Gómez BermejoRafael Gómez Bermejo25k downloads

Build guided Canvas workflows, read PDFs and EPUBs, and turn highlights into cited notes connected to your local Zettelkasten and knowledge graph.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates57

ZettelFlow — draw your note workflow on a Canvas once, then read, think and practise with every note it makes.

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.

🔁 What it asks of you

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.


📚 Read like a book — the Reader and your Library

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: the Library shelf, a book open as a two-page spread, a sentence highlighted, a question written in the margin, the thought landing in Think, your notes Alongside the page, and Listen reading aloud.

The Library shelf
One shelf
Books, papers, clipped articles and saved paths — with what each one produced in your vault.
Ink in the margin
Highlight and write in the margin
Write with a pen and it stays on the page; keep what you lasso. Read as text, when you ask, proposes what your hand says.
Alongside
Alongside
Your own notes beside the page you are reading, each saying why it is there — and what argues with it.
Listen
Listen
Reads aloud in your device's own voices, the page following the voice. Mark keeps the sentence you hear.
Cite a passage
Cite a passage
Markdown with a link back, inline, a Pandoc key, BibTeX or CSL JSON — never a guessed field.
Snapshot
Snapshot a figure
Drag around a chart or a table on a printed page and keep it as a note that cites its page.
Look up
Look up, offline
A word in your own dictionaries, beside the line, with no network.
The overview
Every page at once
The camera pulls back to the whole book: your marks, your ink, your bookmarks, how far you read.
The Reader on iPad
Desktop and iPad
Pages, scroll or a two-page spread; swipe to turn, type you can tune, Pencil in the margin.

The Reader →  ·  Your library →  ·  Nothing is imported or uploaded, and your book files are never modified.


⚡ How it works — draw it once, every note walks it

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.

How ZettelFlow works, in one continuous shot: a Canvas flow is walked step by step — Capture, Classify, the Concept branch, Connect — while the wizard asks for the idea, its kind, its tags and the links your graph suggests, and the live preview fills in. Create, and the note flies into your graph, lands between two regions and draws its links.

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 to think before it has to be knowledge Explore — ask, and the graph answers Cultivate — one idea, one move at a time

Think · a place for what isn't knowledge yet  ·  Explore · ask, and the graph answers  ·  Cultivate · grow an idea by hand

This note, docked in the right sidebar
🧭 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.
A Base dashboard with stats, a bubble chart, tasks and a calendar
📊 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.

🚀 Get started in 5 minutes

Install ZettelFlow from Obsidian's community plugins — or open it in Obsidian. Everything starts at the ZettelFlow ribbon button, which opens a menu.

  • See it work in one click — ribbon → Create note. While no canvas creates notes, it offers Create the example flow: a small canvas with one step, ready to run. Press Create note again and walk it.
  • Install a ready-made system — ribbon → Community: Zettelkasten, PARA, GTD, research… Try it before it writes anything, then Install system.
  • No canvas at all — ribbon → Think to write down a thought, or Cultivate to grow one idea.

Draw your own flow:

  1. Create a canvas (e.g. flows/Daily note.canvas), right-click it → Use this canvas to create notes → Give it the role.
  2. Open it and press Create the first step → Note — file with frontmatter. The first step starts the flow on its own.
  3. Select the step → Edit step → Add an action → Ask for text, and write its Question.
  4. Ribbon → Create note: the wizard walks your flow and creates the note.

Your first flow, from an empty canvas to a note: right-click the canvas and choose Use this canvas to create notes, give it the role, create the first step, add Ask for text in Edit step, then the ribbon's Create note opens the wizard, which asks the question and creates the note.

Installing, drawn — Settings → Community plugins → Browse

Installing ZettelFlow: Settings → Community plugins → Browse, search ZettelFlow, Install and Enable

Stuck? Read the getting started guide or open a discussion.


🔒 Capabilities & privacy

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.

Everything the plugin can touch, and when
  • File system (vault). Reads canvas flow files and creates/edits notes (e.g. the Change note state command writes a single lifecycle property to the active note). All access goes through Obsidian's Vault / FrontmatterService API — never a hardcoded path. Works on desktop and mobile.
  • Vault enumeration. ZettelFlow lists every markdown file path to build the offline knowledge model that health, discovery, the graph and Cultivate all read. Paths and metadata only, all local — and you can keep folders out of it with the knowledge scope.
  • Network — two opt-in paths, nothing until you use them. The community gallery does read-only 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.
  • Dynamic code execution. The Script action, dynamic selectors, vault hooks and workflow-event conditions run JavaScript you write, with the plugin's access to your vault — including read-only access to the whole knowledge model via 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.
  • Clipboard — write only. The “copy” buttons put a step or action configuration on your clipboard as JSON. ZettelFlow never reads your clipboard. Cite's Copy puts the citation you see there, on that click only.
  • Handwriting — opt-in, per press. Reading ink sends an image of that one ink note's strokes and its passage to your AI provider, only when you press Read as text. Nothing reads ink by itself.
  • The Reader's AI moves — opt-in, per click. Six moves on a passage you selected (Why?, Challenge, Question, What's the claim, Reflect, Explain) send that passage, its paragraph and the one before, and the book and chapter titles to your AI provider, only when you click one. Nothing from your vault is sent, and nothing runs by itself. On desktop and Android, Translate sends one selected passage and the target language, on a click; Look up reads your own dictionaries on the device and makes no request at all. Listen uses only your device's own voices: no text leaves the device.

See Capabilities & privacy for full details.


🤝 Contributing & support

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:

HealthExcellent
ReviewPassed
About
Zettelflow turns your Obsidian vault into an active knowledge system. • Guided workflows for creating and developing notes through Canvas • Knowledge lifecycle for moving ideas from fleeting to permanent, developing, evergreen, or archived • Semantic relationships for discovering connections and reasoning paths • Knowledge discovery to surface unexpected connections and gaps • Knowledge health tools to reveal orphans, unresolved questions, missing sources, and gaps • Research tools for claims, evidence, sources, and comparisons • Cultivate sessions that guide meaningful actions • Quick capture for turning thoughts into notes instantly • Optional AI actions for summarizing, classifying, questioning, and challenging ideas • Reactive workflows, scripts, automations, and community templates Fully local and offline by default, with optional AI under your control. Built for researchers, writers, students, and curious thinkers who want to actively develop ideas—not just store them.
CanvasAutomationLinks
Details
Current version
3.7.0
Last updated
2 days ago
Created
3 years ago
Updates
57 releases
Downloads
25k
Compatible with
Obsidian 1.14.4+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
Rafael Gómez BermejoRafael Gómez Bermejorafaelgb
GitHubrafaelgb
rafael-gomez-bermejo
  1. Community
  2. Plugins
  3. Canvas
  4. ZettelFlow

Related plugins

Advanced URI

Control everything with URI.

Waypoint

Easily generate dynamic MOCs in your folder notes using waypoints. Enables folders to show up in the graph view and removes the need for messy tags!

Auto Link Title

Automatically fetches the titles of links from the web.

PodNotes

Write notes on podcasts with ease.

Better Markdown Links

Adds support for angle bracket links and manages relative links properly

Link Embed

Convert URLs in your notes into embeded previews.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

Homepage

Open a note, base, or workspace on startup, or set it for quick access later.

ExcaliBrain

An interactive, structured mind-map of your Obsidian vault.