Skip to content

Claude Code Plugin

The engram Claude Code plugin lives in skill/engram/ and ships:

  • A /engram-setup command to register your server
  • A SessionStart hook that surfaces stored memories at the start of every session
  • A PostToolUse hook that nudges memory capture after you change repo state

There is no bundled MCP server. Connect the plugin to your own engram deployment. Install covers obtaining the binary; Agent Setup covers MCP registration and curation skills across supported runtimes. The standalone plugin adds the hooks described below.

On a Claude Code whose plugin CLI works, engram setup --apply installs this plugin for you — engram’s own marketplace and plugin (seanb4t/engram, engram@engram), added when absent, updated when outdated, and left alone when current. See Agent Setup for installation. The commands below are the by-hand route.

Terminal window
claude plugin marketplace add seanb4t/engram
claude plugin install engram@engram

Or, if you have a local clone, add its repository root (which contains the marketplace manifest):

Terminal window
claude plugin marketplace add /path/to/engram
claude plugin install engram@engram

Run /engram-setup in Claude Code (with an optional URL argument):

/engram-setup https://engram.example.com/mcp

Supply the complete MCP endpoint, including its configured path. The command gathers the endpoint and one of four auth choices: OAuth, pre-registered OAuth client, bearer token, or none.

With a setup-capable binary present, /engram-setup previews across detected runtimes, shows every registration and skills result, and asks for confirmation before applying the same inputs. It reports failures without automatically retrying or switching to fallback. See Agent Setup for runtime support and credential requirements.

With no engram binary on PATH, the standalone command retains its Claude-only fallback through Claude’s own CLI. That registers a user-scope server available in every project. It does not perform the binary’s cross-runtime skill installation. Exact native commands and the fallback procedure live in the generated setup command reference.

For a pre-registered OAuth client, provide the non-secret client ID and make MCP_CLIENT_SECRET available in the scripted Claude process’s inherited environment; there is no interactive stdin. For bearer mode, supply ENGRAM_TOKEN in the runtime environment and keep command references literal. Do not paste secret values into commands or chat. Native registration does not use --token-file.

After successful OAuth registration, run /mcp, select engram, and authenticate in the browser. Registration alone does not complete that login.

To change the URL later on the standalone fallback path:

Terminal window
claude mcp remove engram --scope user
# then re-run /engram-setup

If engram setup reports the registration as preserved — it carries something setup did not author and cannot reproduce — setup leaves it untouched and never runs this command for you; the preserved row’s reason names the exact step. See the results section of the setup guide.

At the start of every session the session-start-memory-recall hook computes the two-tier memory scope (spine + optional workspace overlay) from the local git context and injects an instruction for Claude to call list_memory over its own OAuth-authenticated MCP connection. Recall is model-mediated because hooks cannot hold OAuth tokens.

If engram returns 401/403, Claude reports once that memories are unavailable and continues — it does not block.

After a mutating tool fires (Edit/Write/NotebookEdit), the posttooluse-memory-capture-nudge hook emits a silent additionalContext reminder to capture any durable facts established this session. The nudge fires at most once per session (throttled by a session_id-keyed marker file in $TMPDIR).

Use the curating-memory skill to store memories correctly: search before store, supersede on contradiction, default scope to the spine.