Agent integrations
Enzyme works best when setup starts in the notes folder the agent will actually use. Let the agent check the vault first, review what should be included, build the index, then prove it can answer with source notes.
Start with guided workspace setup
Install Enzyme, then add agent instructions from the markdown workspace you want the agent to use:
curl -fsSL byenzyme.com/install.sh | bash
cd ~/path/to/your/markdown-vault
enzyme install codex # Codex, Pi, and generic .agents readers
enzyme install claude # Claude Code
Then ask the agent to set up Enzyme from that workspace:
Set up Enzyme for the Markdown notes folder I have open. If you cannot identify it, ask me for its path.
Install Enzyme if needed using https://raw.githubusercontent.com/byenzyme/enzyme/main/install.sh, and install the instructions for this agent. Read and follow the installed enzyme-workspace-setup skill.
You may use Enzyme's online service to suggest settings from my notes and prepare search. Show me what you propose to include or exclude, and let me correct it before building the local search index.
Then answer one useful question using my notes, with links to the sources, and suggest a question I can ask next. Keep my existing notes in place and unchanged. Ask separately before any cleanup, model download, or recurring task.
The setup skill runs compile once, reviews the saved .enzyme settings with you,
then builds the local index and demonstrates an answer with sources. After that, each runtime can use the same
local index:
| Command | What the agent gets |
|---|---|
enzyme petri | Working memory: top entities, activity trends, and catalyst phrases. |
enzyme petri --query "..." | The same landscape ranked toward the user’s current request. |
enzyme catalyze "..." | Semantic matches, file paths, and the catalyst phrases that bridged the result. |
enzyme refresh --quiet | Incremental re-indexing after notes or docs change. |
enzyme status | Document count, entity count, embedding coverage, and setup health. |
Use exact file search for names, tags, and literals. Use catalyze when the user only has a theme or tension in mind.
Hermes plugin
Hermes can load Enzyme as a first-class plugin from the shared enzyme-skill repo:
hermes plugins install useenzyme/enzyme-skill
hermes plugins list
Start Hermes from the vault directory:
cd ~/path/to/your/markdown-vault
hermes
On session start, the plugin bootstraps the binary if it is missing, refreshes the index, and registers Enzyme tools. On the first user message, Hermes injects relevant petri context before the model responds. The model can then call deeper Enzyme tools when it needs more evidence.
The plugin exposes:
| Tool | Use |
|---|---|
enzyme_petri | Broad or query-ranked vault overview. |
enzyme_catalyze | Concept search across the vault. |
enzyme_refresh | Refresh changed files. |
enzyme_status | Inspect index health. |
enzyme_init | First-time vault setup from inside Hermes. |
For catalyst generation, set an API key in ~/.hermes/.env if your environment does not already provide one:
OPENROUTER_API_KEY=your-key
# or
OPENAI_API_KEY=your-key
OpenClaw plugin
OpenClaw has a native npm plugin path. Install the Enzyme binary first, then the plugin:
curl -fsSL byenzyme.com/install.sh | bash
openclaw plugins install @jshph/enzyme-openclaw
Configure the vault in ~/.openclaw/openclaw.json:
{
plugins: {
entries: {
enzyme: {
enabled: true,
config: {
vaultPath: "/Users/you/obsidian",
autoRecall: true,
autoRefresh: false,
},
hooks: {
// Required only when autoRefresh is enabled.
allowConversationAccess: true,
},
},
},
},
}
With autoRecall: true, OpenClaw runs enzyme petri --query <user message> before prompt construction and prepends the result as system context. If you enable autoRefresh, OpenClaw runs enzyme refresh --quiet after each turn; keep it off if you prefer to refresh manually or on a heartbeat.
The plugin exposes enzyme_petri, enzyme_catalyze, and enzyme_status. It does not claim OpenClaw’s kind: "memory" slot, so it can compose with memory-core and other memory plugins.
OpenClaw skill fallback
If you are using the skill-based OpenClaw flow instead of the npm plugin, clone the shared skill:
git clone https://github.com/useenzyme/enzyme-skill.git ~/.openclaw/skills/enzyme
That SKILL.md is marked always: true, so the agent gets Enzyme instructions every session. The skill-driven flow is less automatic than the plugin: the agent is instructed to run enzyme refresh --quiet at session start, call enzyme petri on the first message, and use enzyme catalyze for deeper concept search. Add a heartbeat or cron refresh if other tools write into the vault between sessions.
Claude Code, Codex, and MCP
The main installer auto-installs the Claude Code plugin when available. If you need to install manually:
claude plugin marketplace add useenzyme/enzyme
claude plugin install enzyme
Codex uses the same marketplace package:
codex marketplace add useenzyme/enzyme
For any MCP-compatible client, point the client at the stdio server:
claude mcp add enzyme -- enzyme mcp
The MCP server exposes init, petri, catalyze, and status tools.
Which path should I use?
| Runtime | Recommended path | Why |
|---|---|---|
| Hermes | hermes plugins install useenzyme/enzyme-skill | Lifecycle hooks refresh and inject petri automatically. |
| OpenClaw | openclaw plugins install @jshph/enzyme-openclaw | Native prompt-build hook adds context before each turn. |
| Claude Code | Claude plugin | Fastest local setup; /enzyme gives Claude the skill. |
| Cursor, Windsurf, Claude Desktop, other MCP clients | enzyme mcp | Standard stdio MCP server. |
| Any shell-capable agent | Enzyme CLI | Run petri, catalyze, refresh, and status directly. |
The practical test is simple: ask a broad question like “what has been active across my notes lately?” The agent should surface entities and catalyst language before opening individual files. Then ask a follow-up that needs evidence; it should combine catalyze results with file reads or exact search.