0.17.0 • Public • Published

Obsidian Zoottelkeeper

GitHub release (latest SemVer) GitHub All Releases

What's new in the latest version (v0.17.0)

What's new in the latest version (v0.16.1)

Plenty of new features coming requested by you! Namely, from version 0.16.1 you can:

  • use sections ('---' lines) within the index files content, they won't be removed during the content update
  • square brackets are optional in tags
  • embed child index notes in the preview ('Embed sub-index content in preview' option in the config)
  • select folders to cover or to be excluded by the plugin
  • trigger the indexing manually (see 'Generate index now' button in the config)
  • sort the index links (ascending or descending) (see 'Index links Order' in the config)
  • emojis can be set to each row, folders and files can be denoted separately (see 'Emojis' section in the config)

What's new (v0.10.0)

Customizabe index notes: From now you can customize your index file, not the whole content will be updated, but the exact list to the notes only (and tags metadata if it is set).

In order to achieve this, I added 2 extra autogenerated texts to separate the note list to be updated from the other part of the index file. They appear in Edit mode only.

These are:

  • 'Zoottelkeeper: Beginning of the autogenerated index file list' and
  • 'Zoottelkeeper: End of the autogenerated index file list'

Please do not remove them.

1. General Idea

Following the idea of Nick Milo and the LYT -concept (Linking Your Thinking), an amazing way to bring structure to your files, folder and thoughts is by using Maps of Content (MOCs). Because even though Obsidian is generally built around the idea of being 'beyond' folder structures, you generally still need to have some sort of system to store all those juicy insights.

2. How does it work?

ZoottelKeeper watches the followings:

  • Creation of files in rootFolder and any subfolders within
  • Deletion of files in rootFolder and any subfolders within
  • Move a file among rootFolder to subFolders
  • Move a file among subfolders

2.1 Introduction

So, the idea behind Zoottelkeeper is to help you generate the base form of these maps automatically. It does so by indexing all the files and folders that lay in a folder, thus creating a link from the file to all it's content.

image --> image --> image

(1) shows the current folder structure. The plugin generates an index-file in each folder, showing all files and folders it contains. An example list (2) is shown for the main folder, but the subfolders contain a similar file. Each of these index-files is tagged (3) based on your preferences. This then results in the graph view with "folders" (4) (it's actually the index-files that are connected, but it looks like folders) and their respective files (5).

2.2 What's actually cool about this?

So far so good, we've seen that before. The actually nice thing is, if I now move Folder B into Folder A (6), then the index file will automatically update (7), resulting in the desired graph view (8).

image --> image --> image

2.3 Disclaimer and other used plugins

You might have noticed that you can't see the index files in the folders in view (1) and (6), that is because I did not add a prefix to the index-file (so it's automatically named like the folder) and I also use the Folder Note plugin, just for the fact that it hides files in folders when they are named like the folder and displays them when you click on the folder (which is super nice for the MOC purpose here too).

Please note that manually created folder notes may be overwritten by Zottelkeeper, please set up your template using the Templater plugin.

2.4 TL;DR

Does this plugin replace the need to think about structure? No. But it could relief you of the tedious work that has to happen when you just want to allocate files to a broad category and, what's even bigger, it will relief you of the pain to manually go through all the files and change their "parent-category whenever a topic gets too big or you want to move it somewhere else. Basically all you have to do is save things where they belong and the plugin will map that basic structure out for you. You can then, on top of that, add whatever MOC, index or tag logic you like.

3. Installation and Settings

Similarly to any other plugins it is downloadable within Obsidian. Then, after enabling it, you will be able to configure Zoottelkeeper in its config interface.


3.1 Choose your List-Style

There is three different types of lists for you to choose from: - pure Obsidian links, - list items (dots) - links with checkboxes

3.2 Choose your Index Prefix

Depending on your preferences, you can set any prefix to your index-files (or none at all). (Please note that the prefix must be unique, otherwise, normal notes with the same note name might be recognized as index files, and in this cases they will be updated!

3.3 Enable Meta Tags

You can choose to add YAML Meta Tags to your automatically generated index-files.

3.4 Set Custom Meta Tags

You can set one or multiple custom Meta Tags. Since they are displayed in the YAML format, you don't need to add a '#'. If you're setting multiple tags please make sure to separate them with commas.

3.5 Additional Things

  • The file and the folder are no longer listed in the in the index-file.

3.6 Templates

  1. Install templater plugin (https://github.com/SilentVoid13/Templater)

  2. In the Templater's settings page:

    1. Set a template folder
    2. Create a template file (based on the example below) and assign it to your folder handled by Zottelkeeper
    3. Set Templater to be triggered on file creation
  3. In Zoottelkeeper's settings page, specify the full path of your template location like 'templates/zoottel_template.md'. The template can be managed by the Templater plugin.

In order to prevent the generalization of the Zoottelkeeper's metadata in the real files created, please use the following template as a base, which puts Zoottelkeepers placeholders only if the filename ends with the parent folder's name (so it's an index file/ folder note):




<%* if (tp.file.title.endsWith(tp.file.folder())) { %>

%% Zoottelkeeper: Beginning of the autogenerated index file list  %%
%% Zoottelkeeper: End of the autogenerated index file list  %%

<%* } %>

Release notes

Appreciation and feedbacks

Any feedbacks or feature requests are welcome, feel free to create issues on Zoottelkeeper's repository page!

If you like the plugin, please let me know by giving a star to it on github: GitHub Repo stars

or you can Buy Me A Coffee


As with every plugin, there is risk of data-loss and I don't give any guarantees or take any responsibility.

Package Sidebar


npm i zoottelkeeper-obsidian-plugin

Weekly Downloads






Unpacked Size

371 kB

Total Files


Last publish


  • akosbalasko