grimoire
Agent memory you can actually read — it lives in your own markdown, not a vendor's database. Retrieval over the notes you already wrote, and a credential vault agents can use but never see. Self-hosted, MCP, one Go binary. Works on any folder: Obsidian vault, Logseq graph, or plain ~/notes.
Install / Use
claude mcp add JeremiahM37 -- npx -y github:JeremiahM37/grimoireIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Data & AnalyticsSupported Platforms
Our assessment of grimoire
grimoire scores 83/100 on our quality scale, 490th of 596 Data & Analytics skills we index.
Its MCP Server is 34 KB long, well organised into 20 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 2 days ago, so grimoire is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
grimoire compared with similar skills
All 4 of these similar skills score higher than grimoire; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| grimoire (this skill)by JeremiahM37 | 83 | 3 | 2d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 98.5k | 2d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.6k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.4k | 1d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 88.2k | today | MCP Server |
Frequently asked questions
- How do I install grimoire?
- Run
claude mcp add JeremiahM37 -- npx -y github:JeremiahM37/grimoire. The install tabs above show the steps for each supported agent. - Which AI agents does grimoire work with?
- It is written for Claude Code, Claude Desktop and OpenAI Codex, as a MCP Server file. Other agents that read the same format can often use it too.
- Is grimoire safe to use?
- It is MIT-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is grimoire still maintained?
- The repository was last updated 2 days ago, so grimoire is actively maintained.
Skill content
View source on GitHub- Jev-checked memory, now running locally on Laya. We fine-tuned Laya (421M parameters, runs on CPU) on Jev's judgements. It flags facts that have probably gone stale before an agent relies on them, and on held-out real facts it ties its teacher (AUC 0.92 vs 0.90). Open weights.
- Memory that fires when it matters. The right memory is injected with each prompt and again right before a risky command. Rule violations fell from 26 to 11 in 101 cases, and from 10 to 3 in long sessions. When you repeat yourself, Jev spots it and the memory learns that situation.
- Credentials it can use but never read. Agents call APIs through Grimoire with scoped, time-boxed grants; the secret never enters their context. Keep secrets in Grimoire's vault or in Bitwarden, 1Password, KeePassXC or HashiCorp Vault.
- Your notes always win. Agents propose; they never overwrite what you wrote.
- It dreams. Overnight it merges duplicates, fixes broken links, re-checks procedures and sweeps for leaked secrets.
- An Obsidian-like notes app for you and your agents. Take your own notes in it, and agents write theirs into the same vault, side by side, with backlinks and a live graph. It works on your phone, and with Obsidian itself via the plugin.
- One memory for every agent, wired into your stuff. Claude Code, Codex or any MCP client reads the same vault. It pulls in Google Drive and Docs, Gmail, Calendar, Slack, GitHub, Notion, Jira, Confluence and Outlook, and agents can search them live.
curl -fsSL https://raw.githubusercontent.com/JeremiahM37/grimoire/main/install.sh | sh # Linux, macOS
GRIMOIRE_VAULT=~/obsidian-vault grimoire serve & # the folder you already have
claude mcp add grimoire -- grimoire-mcp # your agent now has all of it
| | |
|---|---|
| Homebrew (macOS) | brew install JeremiahM37/tap/grimoire |
| Windows (PowerShell) | irm https://raw.githubusercontent.com/JeremiahM37/grimoire/main/install.ps1 \| iex |
| Scoop (Windows) | scoop bucket add jeremiahm37 https://github.com/JeremiahM37/scoop-bucket && scoop install grimoire |
| Debian / Ubuntu, Fedora / RHEL | the .deb / .rpm on the latest release |
| Docker | docker run -p 127.0.0.1:9111:9111 -v grimoire-vault:/vault ghcr.io/jeremiahm37/grimoire:latest |
| Go | go install github.com/JeremiahM37/grimoire/go/cmd/grimoire@latest (and …/grimoire-mcp@latest) |
Release archives and packages ship static binaries for Linux, macOS and Windows
on amd64 and arm64, verified against checksums.txt, plus console/plugin files.
go install installs the executables only. The shell installer defaults to
~/.local; the native server defaults to localhost. See fresh installs and
remote setup for Docker, tokens, services and upgrades.
To build the console from a source checkout, use Node 24 and the Go version in
go/go.mod:
npm ci --prefix frontend
npm run build --prefix frontend
go -C go build -o grimoire ./cmd/grimoire
GRIMOIRE_VAULT=~/obsidian-vault ./go/grimoire
The console uses React and TypeScript. Its production assets are in
frontend/dist; the server uses that directory when running from the checkout.
Docker and release archives build and include those assets automatically, with
no Node runtime required. Keep the generated worker and hashed assets together
when deploying.
Point your agent at the notes you already have
The runbooks and decisions you have been writing for years already answer many of your agent's questions. Without a connection to those notes, you keep pasting the same context into new sessions. Grimoire makes that existing knowledge available alongside the facts your agents deliberately save.
Grimoire's substrate is a folder of markdown you already own — an Obsidian
vault, a Logseq graph, a plain ~/notes. It needs no plugin and does not need
Obsidian running, because it reads the files, not the app. Nothing is copied
or converted; the watcher picks up edits you make in your own editor, and writes
through Grimoire preserve foreign frontmatter byte-for-byte, so whatever notes
app you use keeps working on the same files.
Everything else follows from that one decision.
The dark-mode workspace
Create notes in a dedicated panel, search titles and content, or explain the current note without changing it. Search results show the line that matched, with the words you typed marked. Both searches use arrow keys to choose a result, Enter to open it, and Escape to clear the query.
Ctrl/⌘ K (or O) opens one box for everything: the notes you had open last, every note by fuzzy title, and every command, with its shortcut beside it. Open it and press Enter to switch back to the previous note. Ctrl/⌘ P lists commands only, Ctrl/⌘ E flips between reading and editing, Ctrl/⌘ G opens the graph, and ? lists the rest.
The graph fills the screen. Notes glow in the colour of their cluster (or their
folder), the note you are editing is ringed, and clicking a note dims everything
else and lights its links. Scope it to the open note and its neighbours, one to
three hops out; filter by folder, tag or type; or play the vault growing over
time, or colour notes by who wrote them, you or your agents. It is drawn on the
GPU with the layout in a worker: tools/graph_bench.py measures 60 fps while
panning a synthetic 50,000-note vault on a software renderer.
Rename, templates, canvas cards and other actions use in-app panels. Dialogs keep keyboard focus inside, return it on close, and fit above the mobile keyboard.
| Notes and connections | Persistent project memory |
|---|---|
|
|
|
These are real captures of the current React UI using a disposable sample vault, not personal notes. The project-memory image comes from a real Lectern → Grimoire provisioning and recall walkthrough, with no paid model calls.
Agent memory that lives in your own markdown
What an agent learns lands in those files too, as ordinary bullets with provenance. When it gets something wrong you fix the line — and the fix outranks a recognized conflicting agent write. Explicit correction targets avoid relying on fuzzy matching to identify the fact being corrected.

Reconciliation compares authority before
recency — human > agent > pulled — and a refused overwrite becomes a
challenge you settle rather than a silent revert.
grimoire challenges # what your agents dispute
grimoire challenges --note memory/ops.md --uphold ID # your fact stands
grimoire challenges --note memory/ops.md --concede ID # the agent was right
Hand edits need no marker: an entry's id is a hash of its own content, so text that changed after the id was minted is text another hand changed.
Memory that knows when to re-check
A remembered port, version or deploy target goes stale silently. Each fact
can carry a freshness tier (stable, volatile, or a re-check interval such
as 7d) and a check: the read-only command that verifies it. Untiered facts
get a change rate learned from their own history. recall then marks each
fact use or verify, so agents look up only the few facts that are likely
to have changed, and they record what they found.
On real agent transcripts, this served 2–3× fewer stale answers than a fixed re-check timer at the same lookup budget. A scheduled dream keeps the tiers honest from each fact's record, and it sweeps memory, including stored check commands, for secrets, injected instructions and dangerous commands. See docs/FRESHNESS.md for the model, the numbers and their caveats.
Most agent memory is prose about the state of work ("the suite passes",
"the repo is at …"), and no text pattern can tell that kind of fact from a
settled decision. Point GRIMOIRE_DECISION_URL at a typed-decision model and
each untiered fact is asked once, when it is written. Two choices, both
speaking the same wire format:
Jev, hosted, at about 1.5¢ per thousand facts; or
Laya, open-weight and run
locally with laya-serve. Stock Laya is no better than chance at this
question. Fine-tuned on about 900 labelled example facts (half an hour on a
CPU), it matched Jev on a real store, and that checkpoint is
published.
Grimoire works without either.
docs/FRESHNESS.md compares accuracy,
speed and cost, and shows how to fine-tune.
Memory that reaches the agent when it matters
Most real misses are not facts the agent failed to find. They are standing
rules it already had and didn't apply, such as "never push without asking" or
"the lead model plans, a cheaper one implements." The prompt hook injects the
memories that bear on each request, matched by meaning as well as by words.
It also fires again on the tool call a rule governs: the git push, the file
edit, the subagent launch. When the user has to repeat something the store
already held, the situation the agent was in is learned as a cue, so that
memory fires there next time.
On this deployment's own memory, these changes did three things:
- Retrieval: the right memory reached the agent on 59% of requests, up from 46%.
- Framing: with memory framed as something to follow rather than "reference data", actions that went against it fell from 26 to 11 in 101 cases.
- Long sessions: firing a rule again at the action cut violations from 10 to 3 out of 60.
docs/MEMORY_USE.md has the method, the numbers and what didn't work.
In Obsidian
The [Obsidian plugin
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
98.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
75.6kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.4kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
88.2k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
