Use it with Claude Code

With the plugin

The plugin installs the MCP server, the two hooks and the skills, and asks for the vault settings: a local folder, an S3 bucket, or a vault server.

claude plugin marketplace add https://github.com/gronare/claude-plugins
claude plugin install vault@gronare

It passes the settings as CLAUDE_PLUGIN_OPTION_<NAME> variables, which the server reads as if they were the bare names; the bare name wins when both are set.

For a vault server, give its address at install, then sign the machine in and reconnect:

claude plugin install vault@gronare --config vault_server_url=https://vault.example.com

Run /vault:login (or mindin login), then reconnect with /mcp, plugin:vault:vault, Reconnect. The hooks use the same key.

Without the plugin

Add the server, here for a local folder:

claude mcp add vault -s user -e VAULT_PATH=$HOME/vault -- uvx mindin
VAULT_PATH=$HOME/vault uvx mindin init

For a bucket, pass S3_ENDPOINT, S3_ACCESS_KEY, S3_SECRET_KEY and S3_BUCKET in place of VAULT_PATH (Storage); for a server, VAULT_SERVER_URL after signing the machine in. With no vault configured, the server exits with one line saying so.

init writes .vault/schema.yml and the Obsidian Bases views into the vault, keeps anything that exists, and prints a CLAUDE.md snippet with the rules an agent follows on its side: context at session start, a note before the first edit, log_append at the end. Paste it into your CLAUDE.md. init --preset para starts from another layout.

Then add the hooks to your Claude Code settings:

{
  "hooks": {
    "SessionStart": [
      { "hooks": [{ "type": "command", "command": "VAULT_PATH=$HOME/vault uvx mindin hook session-start" }] }
    ],
    "Stop": [
      { "hooks": [{ "type": "command", "command": "VAULT_PATH=$HOME/vault uvx mindin hook stop" }] }
    ]
  }
}

Hooks describes what each prints and when stop blocks.