No description
Find a file
2026-05-13 18:29:47 -04:00
.codex/skills/obsidian-plugin-relesae Checkpoint voice agent implementation 2026-05-08 20:35:08 -07:00
.github/workflows Address release review 2026-05-13 18:19:16 -04:00
assets preview gif 2026-05-08 15:13:24 -07:00
docs Checkpoint voice agent implementation 2026-05-08 20:35:08 -07:00
src Refine release bundle 2026-05-13 18:29:47 -04:00
.gitattributes preview gif 2026-05-08 15:13:24 -07:00
.gitignore Replace Enzyme with Digest: token-efficient chat agent plugin 2026-04-28 09:28:05 -04:00
bun.lock Refine release bundle 2026-05-13 18:29:47 -04:00
esbuild.config.mjs Adjust release metadata 2026-05-13 18:03:46 -04:00
LICENSE Address release review 2026-05-13 18:19:16 -04:00
manifest.json Refine release bundle 2026-05-13 18:29:47 -04:00
package.json Refine release bundle 2026-05-13 18:29:47 -04:00
README.md Adjust release metadata 2026-05-13 18:03:46 -04:00
styles.css Polish plugin release 2026-05-13 17:55:01 -04:00
tsconfig.json Replace Enzyme with Digest: token-efficient chat agent plugin 2026-04-28 09:28:05 -04:00

Enzyme

A chat agent that actually knows the ideas in your Obsidian vault.

Obsidian community plugin downloads

Enzyme chat sidebar in Obsidian

Enzyme creates a conceptual map of the ideas in your vault from your existing tags, links, folders, and note recency. When you start a chat, it can pull the right context before you ask a follow-up.

When Enzyme responds, it quotes from your vault with clickable note links and highlights the graph nodes it used.

How is this different from Claude Code?

Enzyme builds its context graph in a fraction of the time and tokens that Claude Code would use to explore a vault. It keeps that map fresh as your notes change.

In practice, Enzyme can save up to 90% of the tokens of Claude Code because it uses an agent harness optimized for Markdown, not code. It also works well with local models, including Gemma4 E4B.

Install

Install Enzyme from Obsidian's Community Plugins.

Setup

In Settings → Enzyme, configure the chat model Enzyme should use:

Setting Example Notes
Chat API key sk-or-... Used for Enzyme chat. Leave blank only if your endpoint does not require one
Base URL https://openrouter.ai/api/v1 Chat completions endpoint, or http://localhost:8080 for local
Model google/gemini-3-flash-preview Chat model served by the endpoint

Works with OpenRouter, OpenAI, Anthropic (via proxy), llama-server, Ollama, vLLM — anything that speaks the OpenAI chat completions API.

Enzyme uses a local CLI under the hood. Sign in for included indexing credits, or use advanced settings to pass OPENAI_API_KEY, OPENAI_BASE_URL, and OPENAI_MODEL to the indexing process.

VaultSearch uses Enzyme's on-device index and does not call an AI provider. Initialization does use AI providers. See Enzyme's privacy details.

Running locally

llama-server -hf ggml-org/gemma-4-E4B-it-GGUF

Then set Base URL to http://localhost:8080 in settings.

Development

# Clone
git clone https://github.com/jshph/obsidian-enzyme
cd obsidian-enzyme

# Install (uses bun)
bun install

# Dev mode (watch + auto-deploy to vault)
bun run dev

# Production build
bun run build

The agent core lives in @jshph/digest as a dependency. To develop against a local checkout:

bun run link:local    # switches to file:../digest
bun run link:remote   # switches back to github

CLI

The agent core also works as a standalone CLI without Obsidian. See the digest repo for CLI docs and the full agent architecture.