Skip to content

Getting Started

Enzyme is a REPL to digest your thoughts

Enzyme is designed to be a notebook that you can chat with — at their core, everything is plain text, meaning that you can remove chat messages of your own or ones that were AI-generated.

It borrows from the idea of REPL / Jupyter notebook cells, where each cell contains enough metadata to be self-sufficient and atomic.

Setting up

  • Install Enzyme via Community Plugins (the name in that catalog is still Reason from before a recent rename; once a PR has been merged this should grow more consistent)
  • Enable Enzyme in your Community Plugins settings
  • Enter an API Key for the LLM
    • The default is Claude Haiku; also works well with other Anthropic and OpenAI models
    • You can select a different one or add your own configuration that uses the OpenAI API (such as TogetherAI or local models such as LM Studio, Ollama, Llama.cpp’s own model server, Nitro, etc. You can follow a tutorial for local model setup in Enzyme with LM Studio here)

Enzyme makes use of a few plugins:

  • The excellent Dataview plugin in order to retrieve notes for synthesis. Dataview provides a live index with which to query the most up-to-date contents from your Obsidian notes. Make sure to install and enable this.
  • It also works well when paired with the Readwise plugin, which can import highlights from books, articles, and podcasts into Obsidian. More on the author’s workflow with these two plugins in a blog post.

Easily reach for ideas in the back of your brain

remind me of some of the ideas that have been spinning around in my head recently.

By default, Enzyme identifies the tags and links that you’ve recently been mentioning the most, and it extracts the text surrounding those mentions. It uses those documents to answer a prompt that you provide, rendering those documents as block embeds in the process. Enzyme makes it one step easier to prevent scattered notes from getting lost.

You can also build an Enzyme block from any line of text in your Obsidian editor. For instance:

  • Thoughts on #pkm will retrieve 5 (default) recent notes that tag #pkm and extract the text surrounding the tag, in order to synthesize your text across contexts.
  • [[Jean Deaux]]<10 will relate your 10 most recent mentions of [[Jean Deaux]] and relate them to each other.
  • Insights drawn from podcast highlights about public speaking in Readwise/Podcasts/ retrieves 5 (default) most recent files in the Readwise/Podcasts/ folder and synthesizes highlights about public speaking according to the prompt.

The best way to use this is to map a hotkey like Cmd + Shift + P to the Command Palette option Enzyme: Build an Enzyme block from selection.

Deep dive into Enzyme blocks

Once you’ve created an Enzyme block, you can place this code block anywhere, in any note. It uses YAML syntax. You’ll notice that it has two parts: a sources section which has DQL (Dataview Query Language) and some metadata around it, and a guidance prompt.

A little about Sources

Some info about the anatomy of a Source:

  • The Dataview query retrieves notes from your vault
  • The strategy determines how content is extracted from the note (to improve relevance when notes are very long, contain lots of irrelevant information, etc.)
  • An evergreen is required for the SingleEvergreenReferrer strategy. It tells Enzyme to extract only contents just before and after mentions of the evergreen.

A Source can be even simpler than the above:

- dql: LIST FROM "Readwise/Articles"
guidance: Some reflections from my article highlights

This will extract using default behavior; that is, the entire contents of each note retrieved by Dataview. For more information about extraction strategies, see Extraction Strategies.

We may also define several Sources for an Aggregator to use:

- strategy: SingleEvergreenReferrer
dql: |
LIST FROM "Readwise/Books"
WHERE contains(file.outlinks, [[ecology of technology]])
evergreen: [[ecology of technology]]
- dql: LIST FROM "Readwise/Articles"
guidance: [[ecology of technology]] is an idea that has been spinning around in my head, connecting spirituality and futurism. Help me identify some common overarching ideas to summarize my thoughts on it.


Great! Now that we have sources specified, hit “Send” to digest your notes.

Once it synthesizes some output, it will automatically create a new Enzyme code block so you can continue the conversation. After seeing how well the agent understood the guidance, you might want to nudge the synthesis in a specific direction or give it some more context on the notes. You can incorporate other sources in follow up Enzyme blocks; followups will use all of your sources, synthesis so far, and guidance prompts.

But remember, because everything is plain text, we can also delete the digest and start over by modifying the original Enzyme code block.