Step by step instructions for setup and use of the Zettelkasten

What is a Zettelkasten, what are the advantages?

A Zettelkasten is a structured collection of notes. The Zettelkasten is a tool to approach complex ideas and concepts. It serves to support and structure one’s thinking about essential topics. Thus the note box can help to formulate and publish own thoughts.

Zettel is the German word for a small piece of paper, and Kasten means box. So a Zettelkasten is a box full of small pieces of paper. Therefore a Zettelkasten is often referred to as a slip box.

The idea of a slip box goes back to Niklas Luhmann (1927-1998) [1]. An exceptionally productive sociologist measured by his publications. Söhnke Ahrens explained Luhmann’s approach in his book “Das Zettelkasten-Prinzip” [2] and contributed significantly to popularizing the concept. The book was translated into English under “How to take smart notes.“ Through this title, one can find numerous explanations of the methodology on the Internet.

Every single note, every single piece of paper meets the following criteria:

  • The note is permanent. I.e., after we place it in the note box, we should not change it.
  • We should write the notes independently. Especially we should not copy-paste from other texts. This step of reformulation makes the note part of one's thinking.
  • The notes should be "atomic." So there should be one idea per note. 
  • We sort these notes one after the other so that they are arranged as trains of thought or along the lines of reasoning. It is vital that we can change that order easily. Therefore we must formulate notes without context. That is, each note must make sense on its own. Even after years, we must understand the text without referring to other notes. In this sense, notes are "context-free" and thus usable in isolation from each other. In particular, we should add citations to each note [3].
  • We link the notes together. Navigating the various "stems of thoughts" in our Zettelkasten allows us to see new relationships between the notes. Reviewing the Zettelkasten may lead to unique insight and ideas [3].
  • Only accept Notes in your Zettelkasten on Topics you deeply care about in years to come. We should think about each note on how to write it and link it. Notes you take while reading or notes on tasks or projects are not part of the note box. 

When we follow the rules above, the note box enables the association between ideas and thoughts that one has encountered at very different times and in very different contexts. The Zettelkasten becomes a creativity tool.

Matt Giaro found a very apt quote from Mark Twain here [3]:

"There is no such thing as a new idea. It is impossible. We simply take a lot of old ideas and put them into a sort of mental kaleidoscope. We give them a turn and they make new and curious combinations. We keep on turning and making new combinations indefinitely; but they are the same old pieces of colored glass that have been in use through all the ages."

-- Mark Twain

How to set up the Zettelkasten?

The Zettelkasten is not based on individual physical pieces of paper. We store each note as a Markdown file containing images, formulas, or code snippets. Thereby we build a digital form of the Zettelkasten.

We store the Markdown files in a simple folder with the following directory structure:

├── input/
│   └── images/
└── mycelium/
    └── images/

The notes are contained in the "mycelium" folder. Here the order of the notes is shown by a naming scheme of these files. We store images in the folder "mycelium/images."

The folder "input" contains unfinished notes that do not yet have the necessary quality to be sorted into the note box (i.e., the folder "mycelium").

So technically, the Zettelkasten is nothing more than a collection of markdown files. Thus, the Zettelkasten is independent of applications or cloud offerings. Cross-device use can be achieved, for example, by creating folders on Dropbox. But we can also decide not to use the cloud. For Backup and versioning, we can use a versioning system like Git.

We use a strict naming scheme for the Markdown files to form the structure of the Zettelkasten

A typical name for a Markdown file could be, for example:

It sounds like a tedious way to name files but stay with me. We have some scripts to help you here.

The name consists of 3 components:

  1.  01_09 denotes the location of the note in the Zettelkasten. In this case, the note is located in subject area 01 at location 09. So the file "" contains a thought that leads to the considered note. The files 01_10_ ... contain subsequent thoughts. A file contains a detailed thought about the note, which we could continue as a sub-discourse in the files 01_09_02_... In this way, when viewed in a simple file manager, the files are logically ordered correctly.
  2. "From_note_taking_to_note_making_to_communicating_with_your_note_box" denotes the name of the note. So that you can immediately see what the note is about without having to open the file, the file name should be as descriptive as possible. The name must always start with a letter.
  3. 1b6058a3a is a unique identifier of the note. This identifier is necessary to automatically correct references between notes after restructuring the note box.

This way, you get a good overview of the content and structure of the note box already when you view it in a file manager. No particular application is needed!

The structure of the notebox is visible in the file manager
The structure of the Zettelkasten can be seen in a file manager

Structure of a single note

A note is a straightforward markdown file that starts with a heading. It can contain images, formulas, and code snippets.

Here is an example:

 markdown structure of a node

As we will see, some scripts will help you handle the files in the Zettelkasten and adjust the links between notes if you change the structure in the Zettelkasten. I open sourced these Scripts under

Working with the Zettelkasten

Adding new notes to the Zettelkasten

I save my notes from books or articles I've read in Evernote or Zotero. I then go through these notes afterward and write down essential ideas as isolated, context-free text in individual Markdown files in the input/ folder. Also, when I have an idea or insight during my workday, I jot down those ideas as individual Markdown files in the input/ folder.

At this step, I don't care about the file name yet. I name the file whatever is quickest.

I go through these markdown files and revise the text to be able to read and understand the note in isolation. I add source notes and formulate a clear, descriptive heading.

I then run a script using the command:

python -m tools4notebox stage

This command renames the files. The filenames now have the form: Here, the speaking part of the file name How_to_integrate_notes_into_the_box is derived from the heading of the file. The script generates a unique identifier and prepends the 0_0.

Now I look at which place in the Zettelkasten the file fits. Let's assume that in the note box (folder mycelium/), there are the following files:


Then the file fits between the 12 and 13 in the 01 strand of the Zettelkasten. I will then rename the file to and move the file to the mycelium/ folder.

The folder now looks like this:


In this way you can add additional notes to the Zettelkasten. The Zettelkasten could look like this after 3 more steps:


Let us have a look at this example: Another file: has been integrated. With the files and a sub stem of thought has been created.

In this way, any number of notes can be arranged and sorted in any number of sublevels. The online archive for the Zettelkasten of Niklas Luhmann shows how Luhmann did this for 90,000 notes in his famous Zettelkasten [4].

Reorganization of the Zettelkasten

Instead of now having alphanumeric abbreviations like 5_16a_1n_... in my slip box. The classification abbreviations can also be canonicalized with a script.

We can rename the files with the command:

python -m tools4notebox reorganize

The markdown files are renamed. From:




This way, the structure always remains easy to read. Links between notes are automatically adjusted by the script so that the links still work after renaming.

With this mechanism, we can easily adjust the structure of the Zettelkasten.

Analyze the Zettelkasten

There are many discussions about the best structure of the note box. We group notes into strands of thoughts or lines of reasoning. This way, they are organized thematically about the alphanumeric sorting. We can easily find the notes we are looking for.

Stem of thoughts versus cross references

Maps like these can also be generated with the python scripts, that I open sourced on

12 thoughts on “Step by step instructions for setup and use of the Zettelkasten

  1. My spouse and I stumbled over here coming from a different website and thought I may as well check things out. I like what I see so now i’m following you. Look forward to going over your web page yet again.

  2. Youre so cool! I dont suppose Ive learn anything like this before. So good to search out someone with some original ideas on this subject. realy thank you for beginning this up. this website is one thing that’s wanted on the net, somebody with a bit of originality. useful job for bringing something new to the web!

  3. I have not checked in here for some time since I thought it was getting boring, but the last several posts are good quality so I guess I抣l add you back to my daily bloglist. You deserve it my friend 🙂

  4. I am now not positive the place you are getting your info, but good topic. I must spend some time studying much more or understanding more. Thank you for great information I was searching for this information for my mission.

  5. Together with almost everything which appears to be building within this subject matter, a significant percentage of viewpoints happen to be quite exciting. On the other hand, I am sorry, because I can not subscribe to your whole theory, all be it radical none the less. It seems to everybody that your commentary are actually not entirely validated and in fact you are yourself not wholly certain of the assertion. In any event I did take pleasure in looking at it.

Leave a Reply

Your email address will not be published. Required fields are marked *