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 …
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]"
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
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.”
agentBefore I change this: an earlier decision keeps tokens in cookies because auth validates server-side. Should we revisit it?
Retrieval
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.
Keep session tokens in secure cookies; auth validates sessions server-side.decision · session 41
0.91Session middleware must run before the CSRF check.auth/middleware.py
0.76Fixed duplicate requests after client timeouts.commit 3e1b9a4
0.22Keep retries bounded in the API client to avoid retry storms.src/api/client.py
0.18Limit API retries to three to avoid retry storms during outages.src/api/client.py
0.14Improve API resilience.intent · priority 2
0.09Injecting 2 memories · 125 of 1,200 characters
Illustrative scoresWhat it keeps
Each has its own role, so a decision is never mistaken for a goal, and every claim stays tied to the evidence behind it.
Decisions, discoveries, and bug fixes, including the reasoning behind a change.
“Limit API retries to three. Avoid retry storms during outages.”
visp-memory decision …
Reusable facts, conventions, and warnings, kept connected to their support.
“Keep retries bounded in the API client.”
visp-memory warn …
Goals, focus, and constraints that frame the task your agent is working on.
“Improve API resilience.”
visp-memory goal …
How it works
Run these from your project’s git repository with Python 3.10 or newer.
Full setup guideinit 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 initIntegrations 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 doctorA 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 1200With 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.
visp-memory audit shows where a memory came from and why it can or can’t be injected.