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:

CommandWhat the agent gets
enzyme petriWorking 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 --quietIncremental re-indexing after notes or docs change.
enzyme statusDocument 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:

ToolUse
enzyme_petriBroad or query-ranked vault overview.
enzyme_catalyzeConcept search across the vault.
enzyme_refreshRefresh changed files.
enzyme_statusInspect index health.
enzyme_initFirst-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?

RuntimeRecommended pathWhy
Hermeshermes plugins install jshph/enzyme-skillLifecycle hooks refresh and inject petri automatically.
OpenClawopenclaw plugins install @jshph/enzyme-openclawNative prompt-build hook adds context before each turn.
Claude CodeClaude pluginFastest local setup; /enzyme gives Claude the skill.
Cursor, Windsurf, Claude Desktop, other MCP clientsenzyme mcpStandard stdio MCP server.
Any shell-capable agentEnzyme CLIRun 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.