01 Visp Memory open source · MCP · Python 3.10+

Your agent forgets. Your project doesn’t.

Visp Memory keeps your project’s decisions, lessons, and goals in a local store, and hands your coding agent only the parts that matter for the task in front of it.

pip install "visp-memory[mcp,capture]"
Session 41Tue 16:02Active

youWhy don’t we keep the token in localStorage?

agentAuth validates sessions server-side, so tokens stay in secure cookies.

$visp-memory decision "Keep session tokens in secure cookies" "Auth depends on server-side validation"

Saved · episodic · decision

context window cleared
Session 42Thu 09:14Live

youMove the session token to localStorage.

↳memory_prepare_task · 1 of 214 memories cleared the bar

“Keep session tokens in secure cookies. Auth depends on server-side validation.”

decision · session 41

agentBefore I change this: an earlier decision keeps tokens in cookies because auth validates server-side. Should we revisit it?

An illustrative session. The decision outlives the context window.

Retrieval

Only what earns its place.

Before your agent starts, Visp scores what it remembers against the task and the files in scope. Memory that clears the bar arrives with its source. When nothing does, nothing is injected.

  1. Decision

    Keep session tokens in secure cookies; auth validates sessions server-side.decision · session 41

    0.91
  2. Convention

    Session middleware must run before the CSRF check.auth/middleware.py

    0.76
  3. Event

    Fixed duplicate requests after client timeouts.commit 3e1b9a4

    0.22
  4. Warning

    Keep retries bounded in the API client to avoid retry storms.src/api/client.py

    0.18
  5. Decision

    Limit API retries to three to avoid retry storms during outages.src/api/client.py

    0.14
  6. Goal

    Improve API resilience.intent · priority 2

    0.09

Injecting 2 memories · 125 of 1,200 characters

Illustrative scores

What it keeps

Three kinds of memory.

Each has its own role, so a decision is never mistaken for a goal, and every claim stays tied to the evidence behind it.

EpisodicWhat happened

Decisions, discoveries, and bug fixes, including the reasoning behind a change.

“Limit API retries to three. Avoid retry storms during outages.”
visp-memory decision …

SemanticWhat is known

Reusable facts, conventions, and warnings, kept connected to their support.

“Keep retries bounded in the API client.”
visp-memory warn …

IntentWhat comes next

Goals, focus, and constraints that frame the task your agent is working on.

“Improve API resilience.”
visp-memory goal …

How it works

From install to the next session.

Run these from your project’s git repository with Python 3.10 or newer.

Full setup guide
  1. 1

    Install and seed from history.

    init mines your git history and instruction files, and keeps the store under .visp-memory/ in your repository.

    python -m pip install "visp-memory[mcp,capture]"
    visp-memory init
  2. 2

    Connect your agent.

    Integrations cover Claude Code, Codex, Cursor, Aider, and any MCP client. doctor confirms your agent can reach memory.

    visp-memory hooks install claude-code --mcp
    visp-memory doctor
  3. 3

    Recall before you change code.

    A brief gathers cited context for the task within a token budget. Record what you learn afterward, so the next session starts with it.

    visp-memory brief "Update API retry handling" --file src/api/client.py --tokens 1200
Your machine
Local embedding modelOllama or sentence-transformers
Hosted embedding providerSuch as OpenAI or OpenRouter. Receives the text it embeds.

With VISP_MEMORY_EMBEDDING_PROVIDER=noop, search is keyword-only and nothing leaves your machine. Set it explicitly: the default tries a hosted provider first when its key is present.

Semantic search with a model you run, plus the Chroma index. sentence-transformers downloads its model once; Ollama processes text wherever its endpoint is.

Text sent for embedding goes to the selected service. The store itself stays in SQLite on your disk.

Where data goes, by search setup. Choose a setup to compare.
Audit
visp-memory audit shows where a memory came from and why it can or can’t be injected.
Status
CLI & storageMCP core toolsGit captureInjection & auditing beta

Keep going