Tinderbox Forum

Zettelkasten with Tinderbox and The Archive

I’ve created a simplified version of the TBX file I use for analysing my “Zettelkasten”-type of notes (which I keep in The Archive), as I tried to show in today’s meet up. I think it should be easier to see the workings in a functional TBX file instead of trying to explain the details of its mechanism.

As I see it, Tinderbox is an amazing tool for analysing this kind of notes, especially the Map View. I don’t think it is an adequate substitute for a more specific application.

In this system, the main kinds of notes I keep are thoughts on the subjects I’m working, and annotation of secondary sources (bibliographical review). For ad locum comments on the primary sources (in my case, those are mainly ancient philosophy texts), I use a separate system (and a different TBX file).

You’ll find a description of the requirements and a usage guide below. I hope you enjoy it!

Zettelkasten.tbx (120.4 KB)

External notes and their file names

You must use filenames starting with a sequence of digits (at least three), which is assumed to be a fixed identification of a note.

Anatomy of a “Zettel”

This implementation will extract tags from the notes, when a text line beginning with “tags:”, followed by hashtags, is found.

There’s also a sub-type for bibliographical (secondary source) annotation. Notes of this kind should contain a citekey information for the corresponding (BibTeX or similar) reference. The loc attribute points to the location in the work/reference (most usually page numbers). The Agents will automatically try to set the Annotation Zettel Prototype for this kind of note, as well as its attributes.

It is advisable to include the metadata inside a YAML header section. This way, the lines will be ignored if you use a capable Markdown processor, such as pandoc. E. g.:

citekey: Fuelleborn1795  
loc: 13-14  
tags: #parmenides  

The mechanics

Prototypes and attributes are set with a multi-step orchestration of agents. Check the /Agents container.

Quick Setup

  1. Open Properties Inspector (⌘2) for “Notes”. Set WatchFolder to the path containing your Zettelkasten notes.

  2. Open Properties Inspector for “Test Project”. Edit its Name and Query parameter to something meaningful.

  3. Press ^⌘= a couple of times (or more) to make sure the Notes are appropriately set. Otherwise, you can Update Agents Automatically (I would not recommend it, though, especially if you have a large number of notes).

Map View

You may open a project agent and enter Map View. From there, you’ll find some tools in “Stamps → Zettel”. In particular, you may try selecting some or all notes in the View and “Extract links” to create Tinderbox links between notes out of wikilinks ([[nnnn]]) in the their text contents.


I love what you are doing! It was great to see such a thought out system. I’m grateful that you shared a tbx file.

I’m curious— why not? What is missing for you in a 100% Tinderbox solution?

For me, I like the a) focus of something like the archive b) I do like the portability of markdown files c) I like being to edit zettel’s on my iPad.

1 Like

Hi, Steve.

Portability is definitely the most important advantage of Markdown notes sitting on the file system. Easy to sync, easy to access from other apps. Next, the “Notational Velocity” paradigm for the interface: quickly finding hundreds or thousands of files with the help of the Spotlight index provides for focus and speed. The best innovation with The Archive, in my opinion, came with “Saved Searches” and the ability to cycle between projects or workflows at the speed of a keystroke.

On the iPad and on the iPhone, I can’t recommend enough the excellent 1Writer. I’m so grateful for this app, which I use constantly in all kinds of occasions.


Thanks Bruno! I’ve played with The Archive and with Obsidian for similar reasons. I also love 1writer especially because the [[ ]] links work in it. I’ve spent a lot of time trying to export TBX so that it would work with 1writer, but I ended up giving up. I had never thought of using a watched folder, so I’m grateful for that.

1 Like

The next Tinderbox release will process [[links]] on import.


That’s great news! It will help me move back and forth between apps.

1 Like

Great job! Thanks a lot. I’m new in TBX. For now, I’m using Obsidian and I try to understand how TBX works.


Mark, do you plan to process the [[links]] exact matching $Names? I think this would be the preferred behaviour for general use.

I do something different in this tbx file, though. The notes may have names such as “1234 Some title”; links will have the format [[1234]]. This is to allow title changes while keeping the links coherent.

Linking is done with the following code (which makes reference to a sed command, stored somewhere else, to extract [[links]] into a list):

$MySet =; 
$MyList=runCommand($Text("/Code/extract-wikilinks"), $Text); 
$MyList.each(x) {
  $MySet = $MySet + collect_if(siblings, $zettel_id == x, $Path); 

Since I’m not a developer, all code changes are easy! :stuck_out_tongue_winking_eye:

But I am curious: I know that the gents over at zettelkasten.de recommend linking only the unique ID part of the title [[yyyymmddhhmmss]] (yep, I add seconds to my unique ID) in The Archive. However, has anyone played with BBEdit? Search is insanely powerful!

I discovered how powerful at work, when I got access to our codebase to update or fix UI text. Using BBEdit’s multi-file search, I can input any text and find it across hundreds of thousands of files. And I can change it wherever it occurs in those files!

As you can see, I can even use grep and save searches:


Bonus: It’s incredibly fast!

I think this frees us to change tiles and not break links.

Just a thought. I love BBEdit, but it’s not a great MultiMarkdown editor (only works with Markdown, and not well). Since so many of us mix and match tools, perhaps you’ll find this useful.

1 Like