GitLoom

Claude Code

Give Claude Code a memory that outlasts the session — on the free plan, with one command.

Claude Code starts every session knowing nothing it learned in the last one. GitLoom gives it a memory to save to and recall from, over MCP. The memory is a git repository: every fact it keeps has a commit, so you can see when it learned something and what it replaced.

This works on the free plan. No card and no CLI — just an API key and npx.

1. Get an API key

Create an account at app.gitloom.cloud, open API Keys, and create one. It is shown once, so copy it before you leave the page.

The free plan covers 500 writes and 10,000 retrievals a month, at up to 60 retrievals a minute. Each save_memory call is one write.

2. Add GitLoom to Claude Code

claude mcp add gitloom --scope user \
  -e GITLOOM_API_KEY=gl_live_... \
  -- npx -y @gitloomhq/mcp

--scope user makes the memory available in every project. With --scope project the server waits for you to approve it the first time you run claude in that directory, and your key lands in .mcp.json — don't commit that file.

Check the connection:

claude mcp list
gitloom: npx -y @gitloomhq/mcp - ✔ Connected

The first check downloads the server, so it takes a few seconds.

3. Tell Claude Code to use it

Claude Code has a memory of its own: per-project files on your machine. With nothing telling it otherwise, "remember this" goes there instead of to GitLoom. That is what we saw in testing. Add this to your project's CLAUDE.md:

# Memory

This project's long-term memory is GitLoom, over MCP. Before starting a task, call
`recall_memory` with a short description of it, so you pick up conventions and past
decisions. Before answering a question about the project, its infrastructure or past
decisions, call `recall_memory` with the question. When told to remember something,
call `save_memory`.

With it in place, our test sessions saved "remember this" to GitLoom, searched GitLoom before answering a question about the project, and looked up a stored team convention before writing code, then followed it. Without the snippet, the same coding task went ahead without checking. That is what we observed, not a guarantee: the model still decides when to call a tool.

4. What Claude Code can now do

tool what it does arguments
save_memory keeps one fact fact, optionally tags and occurred_at
recall_memory searches what has been kept query, optionally tags, since, until, time_field, tiers and paths
find_skill finds a stored procedure for a task task

A saved fact is searchable a few seconds after it is saved: extraction runs after the call returns, not during it.

Ask "what did we decide in August?" and Claude Code can bound the recall to when things happened rather than when they were saved:

{"query": "decisions", "since": "2026-08-01", "until": "2026-08-31", "time_field": "occurred"}

With filters and no query, recall_memory lists everything they match. Each memory comes back starting with the day it happened, such as [2026-08-14], so the model sees when it happened rather than when it was saved. The MCP page has the formats.

One memory per project

Everything goes to your account's default namespace. To keep a project's memory apart, create a namespace for it (see Namespaces) and add -e GITLOOM_NAMESPACE=<name> to the command above.

Reading what it remembered

Every fact is a markdown file in a git repository. Browse them in the dashboard's Memory Graph, or read one by its path:

curl -s -G "https://api.gitloom.cloud/v1/memories" \
  -H "Authorization: Bearer $GITLOOM_API_KEY" \
  --data-urlencode "path=facts/..."