Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Long-term memory for AI coding agents, stored as a tree of plain local files.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
IHMT_HOMEYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"ihmt-memory": {
"command": "uvx",
"args": [
"ihmt-memory"
],
"env": {
"IHMT_HOME": "your-value"
}
}
}
}Run this in your terminal
claude mcp add ihmt-memory --env IHMT_HOME=your-value -- uvx ihmt-memoryFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"ihmt-memory": {
"command": "uvx",
"args": [
"ihmt-memory"
],
"env": {
"IHMT_HOME": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"ihmt-memory": {
"type": "stdio",
"command": "uvx",
"args": [
"ihmt-memory"
],
"env": {
"IHMT_HOME": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
IHMT_HOME envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account gonzaroman, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.2.1) reached the registry 23 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Long-term memory for your AI coding agents. Tell your agent something once — a decision, how your setup works, a correction — and it remembers it in every future session, in any project, with any of your agents.
OUTDATED, and searches answer with the current one first. Where you live, where you work and your stack are tracked automatically; any other correction is linked when the agent saves it with replaces. When a question is ambiguous ("Luis" — which one?), it asks instead of guessing.Compatibility. Officially supported: Claude Code. Also tested: Codex (CLI and the
ChatGPT desktop app — setup) and opencode
(setup). IHMT is a standard stdio MCP server, so any
agent that supports local MCP servers should work — GitHub Copilot, Antigravity, Cursor, Windsurf,
Gemini CLI, Claude Desktop… — and
INSTALL.mdknows how to configure them, but we have
not tested those yet. All of them can share one memory.
| You need | Why |
|---|---|
| Python 3.10 or newer | IHMT is written in Python |
| git | to download IHMT and keep it updated |
| An AI agent that can run commands (Claude Code, Codex, opencode, Copilot in agent mode…) | it installs IHMT and then uses the memory |
| Internet, during the installation | to download the code and the MCP package; not needed afterwards |
Missing Python or git? Your AI agent installs them for you (it is instructed to ask you first). Python goes in your user folder, with no administrator password, so nothing system-wide changes. On a brand-new Mac, git may need one click: Apple shows a window asking to install its command-line tools.
On a Mac, note that the python3 that comes with macOS is version 3.9, which is too old — that is why your agent may say Python is missing even though python3 exists.
You do not need administrator rights, a database, an account, or any paid service beyond your agent. Tested on macOS and Linux (Ubuntu); on Windows the instructions are included but not tested yet. Details: GUIDE.md §3.
Paste this into the AI agent you want to give a memory to — Claude Code, Codex and opencode are tested; GitHub Copilot, Antigravity, Cursor, Windsurf, Gemini CLI, Claude Desktop and other MCP clients should work too:
Install the IHMT memory MCP server for me from https://github.com/gonzaroman/IHMT-MEMORY — follow the instructions in its INSTALL.md.
The agent follows INSTALL.md: it downloads IHMT to ~/IHMT-MEMORY, keeps your memory in ~/.ihmt, registers the server with itself only, adds the usage instructions, and tells you what it did. Then start a new session so the memory tools load.
Using several agents? Paste the same prompt in each one, whenever you want. If IHMT is already installed — say you have used it with Claude for months and now want it in Codex — the agent finds that installation, updates it if it safely can, and connects to the same memory, so it knows what you told the others from day one.
It needs an agent that can run terminal commands or edit files; chat-only assistants in a browser cannot install anything.
Manual install
Requirements: Python 3.10+, git, and your agent's CLI.
git clone https://github.com/gonzaroman/IHMT-MEMORY.git ~/IHMT-MEMORY
cd ~/IHMT-MEMORY python3 -m venv .venv .venv/bin/pip install -r requirements-mcp.txt mkdir -p ~/.ihmt
Claude Code
claude mcp add ihmt-memory -s user -e IHMT_HOME="$HOME/.ihmt" -- "$PWD/.venv/bin/python" "$PWD/mcp_server.py"
claude mcp list # ihmt-memory … ✔ Connected
The server name must come before -e. Then append templates/memory-instructions.md to ~/.claude/CLAUDE.md.
Codex — codex mcp add ihmt-memory --env IHMT_HOME="$HOME/.ihmt" -- "$PWD/.venv/bin/python" "$PWD/mcp_server.py", then add default_tools_approval_mode = "approve" to the [mcp_servers.ihmt-memory] table in ~/.codex/config.toml (above its env table) and append the template to ~/.codex/AGENTS.md. Details.
opencode — add an "ihmt-memory" entry ("type": "local", "command": [ , ], "environment": {"IHMT_HOME": }) to the "mcp" object of ~/.config/opencode/opencode.json, and append the template to ~/.config/opencode/AGENTS.md. Details.
Windows, the project scope, the graphical setup and troubleshooting are all in the guide.
Install from PyPI (uvx)
No clone and no venv: uv downloads and runs the ihmt-memory package. The memory goes to ~/.ihmt; set IHMT_HOME to use another folder (for example, a memory you already have).
Claude Code
claude mcp add ihmt-memory -s user -- uvx ihmt-memory
claude mcp list # ihmt-memory … ✔ Connected uvx ihmt-memory --instructions >> ~/.claude/CLAUDE.md
Codex — codex mcp add ihmt-memory -- uvx ihmt-memory, add default_tools_approval_mode = "approve" to the [mcp_servers.ihmt-memory] table in ~/.codex/config.toml, and run uvx ihmt-memory --instructions >> ~/.codex/AGENTS.md.
opencode — add an "ihmt-memory" entry ("type": "local", "command": ["uvx", "ihmt-memory"]) to the "mcp" object of ~/.config/opencode/opencode.json, and run uvx ihmt-memory --instructions >> ~/.config/opencode/AGENTS.md.
The last step matters with any install: the instructions are what make the agent search before answering and save corrections. pipx install ihmt-memory works too, with ihmt-memory in place of uvx ihmt-memory.
New here? Read [`GUIDE.md`](GUIDE.md) — everyday use, step by step, with real outputs. The rest of this README is the technical reference.
A universal, domain-agnostic long-term memory for LLMs, stored as a recursive tree of plain files on the local disk. No vector database, no server, no third-party dependencies — Python 3.10+ and the standard library.
Instead of embedding everything into one flat index and scanning it, IHMT organizes knowledge into a tree: raw text leaves at the bottom, recursive JSON summaries above them, and a single root.json trunk at the top. A query walks that tree — root → branch → branch → leaf — so the number of files opened grows with the *depth* of the tree (≈ beam × log_B(n)), not with the amount stored.
| Flat RAG | IHMT | |
|---|---|---|
| Retrieval cost | scan / ANN over all *n* chunks | beam × log_B(n) file reads |
| Structure | none — a bag of vectors | explicit hierarchy, inspectable |
| Chunking | fixed character windows | syntax-, scene- and date-aware |
| Stale facts | served silently | superseded, dated, and flagged |
| Ambiguity | returns a plausible guess | asks you for a clue |
| Storage | binary index | UTF-8 .txt + JSON you can read |
python3 gui.py # graphical interface: set up, browse, inspect
python3 init_ihmt.py # or from the terminal: create ./ihmt_memory python3 main.py demo # full walkthrough in ./demo_workspace python3 -m unittest discover -v # stdlib only; MCP tests skip without the SDK
Then use it on your own material:
python3 main.py ingest ~/notes ~/project/src/Main.java
python3 main.py consolidate --force python3 main.py search "how did we handle stock reservations" python3 main.py ask "Luis" # interactive clue loop python3 main.py conflicts # what changed over time
As a library:
from ihmt import IHMT
memory = IHMT.initialize("./workspace") memory.ingest_file("examples/InventoryService.java") memory.ingest_file("examples/journal_personal.txt") memory.flush() # close the tree up to the root
answer = memory.search("reserveStock soft hold") print(answer.best.content) # the leaf print(answer.best.path) # ['root', 'N1-software.java-…', 'L-software.java-…'] print(answer.node_reads) # how many branch files were opened
for notice in memory.notices(): print(notice) # "On 2024-03-11 you said user location = 'Madrid', but on 2026-02-03 you updated to 'Valencia'."
python3 gui.py # opens a browser at 127.0.0.1
python3 gui.py --path ~/my-memory --port 8765 --no-browser
Still zero dependencies — the server is http.server from the standard library, it listens only on the loopback interface, and every /api/* call needs the random token carried in the URL it opens.
Four screens: Set up (pick the memory folder with the system dialog, create the store, choose between per-project and global registration, preview the exact command or JSON before anything is written), Explore (collapsible tree down to the stored text, with supersession notices), Diagnose (a search that reports confidence, files opened vs. total, and the descent path), and Timeline (active vs. historical values and the detected contradictions). The interface is bilingual (ES/EN) and read-only over the memory: it never deletes or edits a leaf.
mcp_server.py exposes the tree to Claude Code as nine tools in three families: long-term memory, project indexes and session scratch memory. The core stays dependency-free; the SDK is an optional extra:
python3 -m venv .venv
.venv/bin/pip install -r requirements-mcp.txt # mcp[cli]>=2.0
For a single project, copy .mcp.json.example to that project's .mcp.json and fill in the absolute p
Only the beginning is shown; read the rest in the repo