by Niels-Oliver Walkwoski
Visualize and navigate a Luhmann-style Folgezettel note sequence in a sidebar panel.
Folgezettel Navigator
An Obsidian plugin that draws Luhmann's Folgezettel sequence of your current note in a sidebar and lets you walk it — branch by branch.
[!note] Vibe-coded with Claude. This plugin was written with the help of Anthropic's Claude through an iterative, AI-assisted ("vibe coding") workflow — steered, reviewed, and tested by a human, but with the code itself largely generated by the model. It has been tested in real vaults, but comes with no warranty; use it at your own risk (see License).
What is a Folgezettel, and why this plugin?
In Niklas Luhmann's Zettelkasten, notes aren't filed by topic — they are chained. Each note follows on from another ("Folgezettel" = follow-up slip), and any note can branch into several continuations. This turns a pile of atomic notes into threads of thought: sequences you can read in order, that fork wherever an idea splits.
Obsidian's graph and backlinks show you connections, but not this reading order. Folgezettel Navigator does: for whatever note you're reading, it shows where it came from, where it leads, and where the thread branches — so you can follow a train of thought instead of hopping around a web.
Setting up your notes
The plugin reads continuation links from a frontmatter property (by default
folgezettel). In a note, list the note(s) that continue it:
---
folgezettel:
- "[[Second thought]]"
- "[[A parallel branch]]"
---
- Links are ordinary Obsidian wikilinks (aliases are tolerated, no unique note identifier is required for the filename of a note).
- A note may point to several continuations — that is a branch, and the panel lets you see and pick between them.
- A note should be pointed to by at most one note. Two notes continuing into the same note is a loose end rather than a branch: the panel quietly follows the first of them, and Open previous note asks which one you meant.
The property is written in reading order: it lists what comes next. The plugin derives the reverse direction ("what came before") automatically, so you only ever maintain links in one direction.
The panel
Open it from the ribbon (branch icon, Open Folgezettel navigator) or the command palette → Folgezettel Navigator: Open panel. It follows whatever note is active in the editor:
- The sequence reads straight down from the top of the panel, in the order the notes continue one another: notes leading into the active note above it, notes continuing from it below.
- Entries are threaded on a guide rail — a small timeline of the sequence.
The marker on that rail tells you what kind of note each entry is:
| Marker | Meaning |
|---|---|
| Filled dot | A note in the sequence |
| Filled circle with a number | A note that branches, and how many branches it has |
| Small open circle | A note nothing continues — the end of the thread |
| Large open circle | The beginning of the structure — with a number in it when it branches |
The number lets you size up a fork without opening it, and the open circles keep a thread that genuinely ends distinct from one the panel merely cut short at its limit. The note you are on is marked by its highlighted row; its marker is drawn like any other.
A bookmarked note keeps the marker its role calls for and draws it in your accent colour instead — the one thing on the rail that uses it — so you can see at a glance where your bookmarks sit along the thread without losing what kind of note each one is. It follows Obsidian's core Bookmarks plugin (bookmarks inside groups included) and updates as you bookmark and unbookmark. A bookmark pointing at a heading inside a note does not count, matching Obsidian's own reading of which notes are bookmarked; with the Bookmarks plugin turned off, nothing changes.
Switch to another note and the panel redraws around it. By default it shows up to five notes on each side (configurable — see Settings). If the pane is too short for what it draws, the whole panel scrolls as one; otherwise there is no scrollbar.
When the thread runs on past that limit, the panel still shows you where it goes: one extra entry appears above the sequence for the note the current branch was started from, and one below it for the note the branch ends at. Both are set apart by a gap, with no guide rail running to them, because they are not the next note along — they are the two ends of the branch you are in the middle of. The one above wears the junction's numbered circle when the note it names is a fork, and an open circle of that size when the thread simply starts there — the same open shape the note at the other end gets, so both ends of the thread look alike. Where the thread starts and forks right away, the circle is open and carries the number. Both are markers only — there is nothing to click. Either entry is left out when it is already on screen.
What else links here
Under the sequence, after a small centred rule, the panel lists the notes that link to the
one you are on in their text — the ordinary links and embeds you write in prose, as
opposed to the folgezettel property that makes the sequence. The two never overlap: a note
that only continues the thread stays in the sequence above, and a note that mentions this one
in passing appears here, marked with Obsidian's backlinks icon. They are a set rather than a
thread, so there is no guide rail running through them.
These entries behave exactly like the ones above: click to open (Ctrl/Cmd-click for a new tab), hover for the page preview, right-click (or long-press on touch) for the file menu, and a bookmarked note shows its icon in the bookmark colour. When nothing links to the note, the section — the rule with it — is simply not there.
Junctions (branches)
Where the thread forks — a note with more than one continuation — that note's plain dot is replaced by a filled circle carrying the number of branches. The circle sits on the note whose Folgezettel property holds the links, because that is where the thread actually divides; the branches themselves are listed one row below, where they begin.
A junction can't display every strand at once, so it follows the first link in the
note's folgezettel property — the branch that continues the thread (see
Which strand counts as "the current branch").
To explore the alternatives:
- Click the numbered circle. The row below it — the one that starts the current
branch — turns into a card listing every option in the order the
folgezettelproperty gives them, your current choice highlighted where it stands, styled like Obsidian's search-result previews. That row drops its marker while the card is open, since it now stands for a choice rather than for one note. - Hover an option (desktop) to see where that branch leads, without committing to it. Move the pointer away and the sequence comes straight back.
- Click an option to take it. Below the active note the sequence re-roots along your pick without leaving the note you are on; above it, the option opens — see below.
A forking note keeps its circle wherever it appears — below the active note, above it, or when it is the active note. Entering a branch never costs you the fork you came from: expand the circle on any note above you to see its branches and jump to one.
Above the active note, the preview stands in for everything below the card — the rest of the sequence, your current note included — because all of it belongs to the branch you are looking away from. And picking an option there opens that note rather than re-drawing the sequence: everything between a fork and the note you are on is the path that got you there, so the only way to switch to a sibling branch is to go to it.
Your branch choices — and any cards you left open — are remembered for as long as the note stays open in a tab, so you can switch to another tab and come back to the sequence as you left it. Close the note, or open another note in its tab, and they are let go: the next time, the panel is back to following first links.
Jumping without the panel
Six commands move the editor along the sequence, so you can follow a thread with the keyboard whether or not the panel is open. Find them in the command palette under Folgezettel Navigator, or bind hotkeys to them under Settings → Hotkeys. Each opens the note in the current tab.
| Command | Goes to |
|---|---|
| Open previous note | The note that leads into this one |
| Open following note | The note this one continues into |
| Open parent note | The note this branch was started from |
| Open leaf note | The end of the current branch |
| Open next junction note | The next fork further down the branch |
| Open previous junction note | The nearest fork further up |
When a jump has several candidates — a note with more than one continuation, or more than one note leading into it — a picker opens listing them in the order the property declares, and you choose. When there is nowhere to go, a notice says so.
Which strand counts as "the current branch"
For these commands the first link in a note's folgezettel property continues the
branch; every later link starts a new one. So Open leaf note runs down first links to
the end of the thread, and Open next junction note finds the next fork along it.
That is also what makes parent different from previous junction. Walking upward, previous junction stops at the nearest fork of any kind. Parent keeps going past forks the branch merely ran straight through, and stops at the one this branch actually split off from — a fork you left by a link that wasn't its first. If the thread never split off anything, parent takes you to the beginning of the structure: the note that nothing links to.
The panel uses the same rule, so a jump and the drawn sequence agree on where the branch runs — unless you have picked a different option in a junction card, which steers the panel for as long as that note stays open.
Extending the sequence
Two more commands write the sequence instead of walking it. Both act on the note you are
on and add to the end of its folgezettel property — so the new note becomes a
further branch off it, and the current branch (the first link) stays where it is.
| Command | Does |
|---|---|
| Create following note | Asks for a name, creates the note, links it, and opens it |
| Link following note | Opens a picker of the vault's notes and links the one you choose |
Create following note opens a small dialog for the name — Enter or Create confirms, Escape cancels. A name that is empty, contains characters Obsidian does not allow in a file name, or is already taken keeps the dialog open and says why, so nothing you typed is lost. Where the note is created is up to the New note location setting below; a folder that does not exist yet is created.
Link following note lists every markdown note except the one you are on and the ones this note already links to, so the list holds only notes that would actually add something. The link is written as a wikilink, shortened as far as your link settings allow — the same form Obsidian's own property editor writes.
Like the jump commands, both disappear from the palette when no note is open.
Both are also on the panel's right-click menu, and there they act on the note you right-clicked rather than the note you are in — so you can hang a new note off any entry in the sequence without navigating to it first.
Interactions at a glance
| Action | Result |
|---|---|
| Click a note title | Opens the note; the panel redraws around it |
| Right-click a note title (long press on mobile) | That note's menu: open it elsewhere, create or link a following note, rename, move, bookmark, delete, reveal |
| Hover a title (desktop) | Obsidian's native page preview, following your Page preview setting — beside the sidebar, so it does not cover the sequence |
| Click a junction's numbered circle | Expand / collapse the list of its branches, on the row below |
| Hover a branch option (desktop) | Preview that branch, without committing to it |
| Click a branch option below the active note | Take that branch (does not open the note) |
| Click a branch option above the active note | Opens that note |
| Navigation command (palette / hotkey) | Jumps the current tab along the sequence |
On a junction entry the two targets do different things: clicking the title opens the note, while clicking the numbered circle opens the branch list.
On mobile
The plugin works on Obsidian Mobile. Everything is tap-driven: tap a title to open it, tap a junction's numbered circle to expand it, tap an option to take that branch. Press and hold a note for its file menu, the same one a right-click gives on the desktop — the press gives way to a scroll, so flicking through a long sequence still scrolls the panel. The hover-only previews (branch preview and page preview) are desktop affordances and are simply absent on touch — the rest of the workflow is identical.
A typical workflow
- Write atomic notes and connect them with the
folgezettelproperty as your thinking progresses — each note points at the note(s) it leads into. - Keep the panel open in a sidebar while you read or write.
- Follow the thread upward (where this came from) and downward (where it leads) by clicking titles; the panel redraws each time.
- At a fork, expand the junction, preview the options, and take the branch you want to pursue.
Settings
- Folgezettel property — the frontmatter property the plugin reads for links
(default
folgezettel). Change it to match your own naming convention. - Sequence length — how many notes to show on each side of the active note (1–10, default 5).
- New note location — the folder Create following note puts new notes in, with folder autocompletion. Leave it empty to create each note next to the note it continues.
The first two apply immediately to any open panel.
Installation
From Obsidian (once listed): Settings → Community plugins → Browse → search "Folgezettel Navigator" → Install → Enable.
Manually: download main.js, manifest.json and styles.css from a release, put
them in <vault>/.obsidian/plugins/folgezettel-navigator/, then enable the plugin under
Settings → Community plugins.
Development
npm install # install dependencies
npm run dev # watch + rebuild main.js on change
npm run build # type-check and produce a production bundle
npm run lint # check against Obsidian's plugin guidelines (eslint-plugin-obsidianmd)
License
Copyright © 2026 Niels-Oliver Walkowski.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but without any warranty. See the LICENSE file for the full text.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.