Agent integrations
Enzyme works best when the agent sees your concept graph before it starts improvising search queries. The integrations differ in how automatic that context injection is, but they all use the same local CLI and the same compiled .enzyme index.
Start with the shared index
Install Enzyme and initialize the vault once:
curl -fsSL enzyme.garden/install.sh | bash
cd ~/path/to/your/markdown-vault
enzyme init
After that, each runtime can call the same commands:
| 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 jshph/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 enzyme.garden/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/jshph/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 jshph/enzyme
claude plugin install enzyme
Codex uses the same marketplace package:
codex marketplace add jshph/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 jshph/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.