Can AI Save My Zettelkasten?

TL;DR

The author is discussing the challenges they face with their personal Zettelkasten, a system of note-taking and knowledge management. The process of creating unique ID notes, writing single condensed ideas, and linking notes with tags and references can become overwhelming as the number of notes grows. The art of linking also becomes more difficult as the system scales. The author argues that current AI apps built into Zettelkasten systems are not useful for solving these problems and may even cause harm by creating an echo chamber. Instead, the author proposes using AI as a computational assistant for each independent note, creating computations from the notes that can run on their own and continue to generate new output. The author dreams of a world where everyone maintains a Zettelkasten and where Zettelkastens power themselves.

As my personal Zettelkasten (202301111303) grows beyond 400 Zettels,[1] I've noticed a few recurring problems arise that I imagine anyone in my shoes would face:

  1. The task of working on a Zettelkasten is nearly infinite -- every Zettel created spawns more Zettels
  2. As the raw number of Zettels increase, the linking process causes stress from choice overload
  3. Even though a zettelkasten can scale infinitely, the human mind can't

Let's take a look at these one by one and see if AI can throw us a life line.

The Sisyphean Task of a Zettelkasten

The Zettelkasten process is as follows:

  1. Create a unique ID note
  2. Write a single condensed idea on the card along with a title
  3. Link the card with tags (e.g. biology, woodworking, cooking, etc.) and/or references to other internal IDs within the Zettelkasten (e.g. 123456, 2231121, etc.) along with any citations for external resources

This process is enticing due to its simplicity, but in reality it's anything but. Under the calm surface lay the deep dark depths of infinite Zettels to be created, infinite links to be connected, infinite edits and tweaks to be…tweaked. Outdated knowledge and ideas get pruned, some Zettels merge into one, others yet split into other atomic Zettels.

This goes on and on and on and on and…

Linking is more of an art than a science. A creative link will add to the Zettel being worked on, providing helpful context or a new dimension of thought. A really creative link will mutually benefit both sides of the link. Inversely, a bad link will subtract from the Zettel, and in the worst case, damage the entire system.

Links are required because they are the veins and arteries of the Zettelkasten. It falls to the maintainer to make the (sometimes impossible) judgement call of where a new Zettel should embed itself in an existing Zettelkasten.[2]

As the Zettelkasten scales, the problem of linking scales as well. Eventually, so many options present themselves for linking that no one would be blamed for running off with their tail in between their legs.

As a thought experiment here are three links that I think relate to this section. Of the three, would you link any of them? One? All? None? This experiment will visualize the subjectivity of this craft

  1. 202301071346 (title: One Zettel, One Objective) (author reasoning: the ideal Zettel serves a single purpose, making good linking critical to connect disparate islands of thought)
  2. 202212162359 (title: Data Outlives Codebases) (author reasoning: Zettels can be spliced from their parent system and imported into others, much like genetic base pairs. This means individual data can outlive the original context it was created in)
  3. 202301032152 (title: Feng Shui Does Makes Sense!…) (author reasoning: Feng Shui emphasizes the function of a home by the pathing of its inhabitants. Spaces are clearly cordoned off by function. A Zettelkasten can function similarly)

And speaking of scale…

Scale Sucks

The two problems above are only exacerbated by scale. The right link becomes harder to find, ideas duplicated or lost, and the work of a Zettelkasten becomes more of a daily grind than an expression of creativity. The system eventually reaches a point where the knowledge becomes a burden on its maintainer, much like a mansion that needs to be constantly dusted or a giant library with books that will never be read, the system's berth affects its ability to maneuver gracefully.

NB: A trick to manage the problem of scale: One In, One Out: When linking choose one item to link from within a tag, and one item to link from outside the tags. The first link will be a much smaller set to search through, the second larger set is more about creative play and finding something clever.

Yikes, these problems are ominous. Can AI save us Zettelkasten maintainers from ourselves?

AI to the Rescue?

The AI apps I have seen others build into Zettelkasten systems like Obsidian have largely been readonly, with the cardinal goal of surfacing similar objects from the large set (mainly using embeddings). This is useful, to be sure, but I would argue that this may actually be the worst use case for AI in a Zettelkasten. Why?

One, correct tagging does most of the heavy lifting of surfacing similar notes. All knowledge that enters a Zettelkasten is subjective and the taxonomy is emergent. Tags are the UN in which individual Zettels engage with each other and as such need translators to make sure that important concepts don't get lost in translation.

Just because two Zettels are semantically similar does not mean that an explicit link should be formed between them. In fact, this goes counter to the highest aspiration of a Zettelkasten, where the goal is to join diverse ideas.

Two, this creates internal pressure in the system, increasing the likelihood that the system will become an echo chamber. This pressure creates more dense collections which might be visually appealing in graph view, but the heavy handed nature of the the AI links can cause nasty things like self-referential loops. In the long term, letting AI go haywire (in its current 2023 incarnation) over your system may cause more harm than good.

In a way, smart surfacing is only useful to consumers of a Zettelkasten, and may actually cause harm to producers. If the goal is to create a Google-like or ChatGPT-like experience in a Zettelkasten, that is readily achievable -- but it does not solve the problems of a growing Zettelkasten for the creator.

So what can?

Yin and Yang

As a reminder, the problem of scale is largely a product of overwhelm. With a large quantity of Zettels to search through, the value of time spent on any individual Zettel goes down drastically. Intuitively, one may build a system similar to the one above with one commandment: ignore anything that is not similar to what I am looking at, pre sort the list for anything that fits the bill.

While I agree that sorting is a useful task, I think that returning the opposite Zettels from the list is much more useful. By orienting your argument against the opposite items in your Zettelkasten, the boundaries of your Zettel become clear. From a list of 1…n, the most helpful items live at n-3…n. There is no subject without an object to compare itself against.

Adding more of the same color to a canvas does little, while adding a contrasting color reveals a brand new image.

Tiny Little Turing Machines

Another potentially powerful solution is one that I learned from a deep conversation with un1crom -- use AI as a computational assistant for each independent Zettel.

To do this, we assume that each Zettel is or is not a computable thought. A computable thought embeds an algorithm inside of it.

Imagine each Zettel as a seed. This seed represents an idea. Traditionally, ideas need to be consumed by a machine that computes. My dear reader, as you consume these very words on the page, your mind is the machine that is hard at work processing the validity of each sentence, weighing the concepts, sorting them and ranking them based on previous knowledge you have consumed, etc.

The broad concept is to have a GPT model write code based off the Zettel's contents (see 202302100037, 202302111242, and 202302111309 "Computation" titles for live examples.[3]

The task of creating computations from Zettels opens the possibility of using them like any other block of code -- a composable element that can run on its own. No longer would a Zettel be inert until some intelligent being comes and reads it, it will continue to pop out microscopic widgets from its computational factory. In fact, once Zettels get linked manually their computations can also be joined, creating mega structures and giving the second brain a job to do outside of being consumed.

This creates an exit route from the pressure of creating knowledge. Much like investing, the more computational thoughts there are, the more they power the system and create new output, which begets new computational seeds, and on and on….[4]

Conclusion

It will be at the very least entertaining to see how AI shapes up against the second brain/Zettelkasten space. I'm excited to build tools that push the boundaries of this space, all the while maintaining the living breathing Zettelkasten you see in front of you.

I dream of a world where everyone maintains a Zettelkasten, where Zettelkastens make people better, more knowledgable and happier, and a world where Zettelkastens begin to power themselves. Perhaps AGI is actually AZI (Artificial Zettelkasten Intelligence)?


If you like what you read, please hit that Subscribe button in the corner to join other thinkers in this community! I send out multiple think pieces or Maps of Content a week as well as many notes that can only be seen by subscribing to the RSS feed above.


  1. a Zettel is an individual note in a Zettelkasten

  2. should I tag this a or b… or neither? Damn.

  3. all of the code in those sections was written by ChatGPT!

  4. in the positive direction this time!