Total Agent Memory

io.github.vbcherepanovPublished by GitHub account vbcherepanovv14.10.0Updated Oct 30, 2026

Persistent local memory for coding agents: temporal knowledge graph, procedural and episodic recall

The publisher's own server: Memory.fit

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

Local, persistent memory server for coding agents: stores decisions, solutions, facts and lessons in SQLite and recalls them across sessions and projects.

What you can do
  • Save, update, version and delete knowledge records such as decisions, solutions, lessons, facts and conventions, with tags, typed relations and history.
  • Recall and browse memory through hybrid search, timelines, session history, knowledge-graph neighbourhoods, concepts, episodes and skills.
  • Build cited answers, assemble context for a query, and generate per-project wiki digests and activity reports.
  • Maintain memory: consolidate duplicates, apply retention and forgetting, export to JSON, and index passages or CLAUDE.md rules.
  • Track agent self-improvement: log errors, record reflections, manage insights and behavioural rules, and review improvement statistics.
When to use it
Useful for developers who work with coding agents daily and want earlier decisions, fixes and conventions to carry over between sessions instead of being re-explained. Also suited to anyone who wants a local, inspectable memory baseline for retrieval experiments.
Requirements
Runs as a local stdio process; needs Python 3.11 or newer, installed from PyPI (pip, pipx or uvx) or via Docker. Memory is stored in a directory, by default under the user's home, overridable with TAM_MEMORY_DIR. The first run downloads local embedding models (about 940 MB for the full set); no API keys are required by default.
Before you install
It stores project knowledge, session transcripts and an agent action log on disk, so avoid saving secrets or ephemeral state. Deleting with hard=true erases records and their text in the raw call log permanently. Optional LLM-backed answering and reranking send content to a configured model provider, and the team server variant adds a shared gateway with roles and audit trail.

Installation

In SourceWeft

  1. Open Total Agent Memory in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[total-agent-memory]

Persistent, local memory for AI coding agents: Claude Code, Codex CLI, Cursor and any MCP client.

Website and documentation: totalmemory.dev · Quick start · Claude Code guide · Benchmarks · Compare with other tools

[Version] [PyPI] [npm] [Docker GHCR] [MCP] [License]

total-agent-memory (TAM) is an open-source memory server for AI coding agents. Coding agents start every session without memory of earlier ones, so decisions, fixes and project conventions have to be explained again. TAM stores decisions, solutions, facts, errors and session summaries on your machine and returns them through the Model Context Protocol (MCP), so any MCP client can use it without code changes.

Each store is one directory built around a SQLite database. Recall combines full-text BM25, dense embeddings computed locally, fuzzy matching and a knowledge graph, and fuses the ranked lists with reciprocal rank fusion. A local cross-encoder then reranks the result: by default it starts as soon as its model has loaded in the background, and MEMORY_CROSS_RERANK=off turns it off. The default profile makes no LLM call on write or search, so retrieval can be measured offline. With the cross-encoder off, reruns on fresh stores returned the same ranking for every LoCoMo question. With the default setting the first queries of a process can run before the model has loaded, so reruns are not guaranteed to match. Facts can carry validity intervals (kg_add_fact, kg_at), and a newer value of a single-valued fact can retire the older one.

TAM is for developers who use coding agents daily and for researchers who need a memory baseline they can run locally, inspect and change. The same package can also run as a team server: personal, department and company areas are separate stores behind one gateway, with roles, authorship and an audit trail (team server).

Installation

TAM needs Python 3.11 or newer. CI tests Python 3.11, 3.12 and 3.13 on Ubuntu, Windows and macOS.

From PyPI (use a virtual environment, or pipx / uvx):

bash
pip install total-agent-memory          # or: pipx install total-agent-memoryuvx total-agent-memory                  # run once without installing

This installs the total-agent-memory (alias tam) MCP server and the tam-team, tam-remote and lookup-memory commands. The default cross-encoder runs on ONNX through fastembed and needs no extra. A separate sentence-transformers reranker pulls in PyTorch and is an extra: pip install "total-agent-memory[rerank]". The PostgreSQL backend of the team server is the [postgres] extra.

Register it with your clients. Run tam setup at a terminal. The wizard asks "Just me" or "Company server", detects Claude Code, Claude Desktop, Codex, Cursor, Windsurf, Gemini CLI, Cline and OpenCode, and registers the server with the ones you pick (setup wizard).

Other channels:

ChannelCommand
Docker (linux/amd64, linux/arm64)docker run -p 127.0.0.1:3737:3737 -p 127.0.0.1:37737:37737 -v ~/.tam:/data ghcr.io/vbcherepanov/total-agent-memory:14.10.0 — MCP over HTTP on :3737/mcp, dashboard on :37737; both need the token in ~/.tam/state/http-token (Authorization: Bearer, dashboard: open /login#token=..., the token stays in the URL fragment and is exchanged for an opaque session cookie)
npx connectornpx -y total-agent-memory connect claude-code (or codex, cursor, cline, continue, aider, windsurf, gemini-cli, opencode)
Claude Code plugin (server, skill and capture hooks)/plugin marketplace add vbcherepanov/total-agent-memory
/plugin install total-agent-memory@vbcherepanov
Plugin for Claude Code and Cowork, from the plugin repository (server and skill, no hooks; needs uv)/plugin marketplace add vbcherepanov/total-agent-memory-plugin
/plugin install total-agent-memory@vbcherepanov
The same plugin for Codex CLIcodex plugin marketplace add vbcherepanov/total-agent-memory-plugin
codex plugin add total-agent-memory@vbcherepanov
Source checkout with IDE hooks and background servicesgit clone https://github.com/vbcherepanov/total-agent-memory.git && cd total-agent-memory && ./install.sh --ide claude-code (Windows: install.ps1 -Ide claude-code)

Use one of the two Claude Code plugins, not both. Per-platform details, WSL2, the IDE matrix, uninstalling and troubleshooting are in the installation guide.

Quick start

  1. Install the package and run tam setup, or add the server to your client by hand. For Claude Code:

    bash
    claude mcp add memory -- total-agent-memory

    For clients that use an mcpServers file:

    json
    { "mcpServers": { "memory": { "command": "total-agent-memory" } } }

    If you installed into a virtual environment, use the full path to its total-agent-memory executable.

  2. Restart the client. Memory is stored in ~/.tam/ unless TAM_MEMORY_DIR points elsewhere.

  3. Ask the agent to remember something ("remember that we chose PostgreSQL for billing because of row-level security"). It calls memory_save. In a later session, ask "which database did we choose for billing?"; it calls memory_recall and gets the record back.

To try the server without an agent, this script starts it over stdio with the MCP Python SDK (installed as a dependency), saves one record and recalls it. The SDK passes only a few variables to the server by default, so the script hands over the full environment, including TAM_MEMORY_DIR:

python
import asyncioimport os
from mcp import ClientSession, StdioServerParametersfrom mcp.client.stdio import stdio_client

async def main() -> None:    server = StdioServerParameters(command="total-agent-memory", env=dict(os.environ))    async with stdio_client(server) as (read, write):        async with ClientSession(read, write) as session:            await session.initialize()            await session.call_tool("memory_save", {                "type": "decision",                "content": "Chose PostgreSQL over MySQL for the billing service",                "context": "WHY: row-level security per tenant",                "project": "demo",            })            result = await session.call_tool("memory_recall", {                "query": "which database for billing", "project": "demo", "limit": 3,            })            print(result.content[0].text)

asyncio.run(main())
bash
TAM_MEMORY_DIR="$(mktemp -d)" python quickstart.py

The first run downloads the default embedding model. The output is JSON with the saved decision under results.decision. More examples: tools and interfaces.

Running the tests

The tests run from a source checkout. These commands mirror the CI workflows in .github/workflows:

bash
git clone https://github.com/vbcherepanov/total-agent-memory.gitcd total-agent-memorypython3 -m venv .venv.venv/bin/pip install -e . -r requirements-dev.txt
export FASTEMBED_CACHE_PATH="$PWD/.tam-models" TAM_MEMORY_DIR="$PWD/.tam-test-memory".venv/bin/python tests/smoke/prewarm_models.py   # downloads the text and code embedding models and the cross-encoder (~940 MB) once.venv/bin/python -m pytest tests -q

The tests need no API keys and no LLM; the full suite takes 15 to 20 minutes on a laptop. Do not set MEMORY_LLM_ENABLED=false for the full suite: the configuration tests check LLM auto-detection. Tests that need services you do not have are skipped:

  • PostgreSQL (team server backend): install the extra with .venv/bin/pip install -e ".[postgres]", then run .venv/bin/python -m pytest tests -m postgres --backend=postgres or --backend=both. Without TAM_TEST_PG_URL the fixtures start a pgvector container through Docker. See CONTRIBUTING.md and .github/workflows/postgres.yml.
  • Browser tests (tests/browser, Playwright with Chromium, Firefox and WebKit) run in the image built from docker/Dockerfile.browser; see the browser job in .github/workflows/smoke.yml.
  • Installed-package smoke test: python tests/smoke/installed_runtime.py checks an installed wheel over local and remote MCP.

Reproducing the benchmarks

The retrieval benchmarks (LoCoMo, LongMemEval, BEAM) need no API key and run with scripts in benchmarks/ once the public datasets are downloaded. The table below was measured on v13.0.0, before the cross-encoder became the default in 14.5, so it describes retrieval without the cross-encoder and not a default install of the current version:

BenchmarkMetricResult
LongMemEval (470 questions)R@5 (recall_any)95.1%
LoCoMo (1,536 questions)R@50.607
BEAM, 1M-token scale (625 probes)R@50.448

Default settings score higher on LoCoMo and take much longer per query. In the JOSS review of v14.6.0 the editor measured R@5 of about 0.745 at about 495 ms median with the defaults, against 0.607 at about 18 ms with MEMORY_CROSS_RERANK=off. Our own reruns with the cross-encoder off gave R@5 0.610 on v14.6.0 and 0.609 on v14.10.0 (rows and reports). A full measurement of the default configuration is planned for the next release.

Dataset locations, commands, end-to-end (LLM-judged) accuracy, negative controls, latency and the 14.x studies are in docs/benchmarks.md.

Documentation

Citation

A paper describing TAM is under review at the Journal of Open Source Software (paper/paper.md). Until it is published, please cite the software and the preprint:

Cherepanov, V. total-agent-memory (version 14.10.0) [software]. https://github.com/vbcherepanov/total-agent-memory

Preprint: doi:10.5281/zenodo.23011523

Citation metadata for the software is in CITATION.cff.

Contributing

Issues, pull requests and benchmark reproductions are welcome. See CONTRIBUTING.md for the development setup, the rules for a pull request and the commit convention. Report security issues privately as described in SECURITY.md. Donations to support development: PayPal.

License

MIT. See LICENSE. Third-party licenses are listed in THIRD-PARTY-LICENSES.md.

Source: README.md at commit 78ce3e1

Tools

79

memory_recall

Search ALL memory: decisions, solutions, facts, lessons from ALL past sessions. 6-stage pipeline: FTS5+BM25 → semantic → fuzzy → graph → (optional) CrossEncoder → (optional) MMR. Default: hybrid mode (BM25 + semantic + RRF). Use BEFORE starting any task. v11.0: routes to fast hot path when MEMORY_MODE=fast (default). Use memory_search_fast / memory_explain_search for explicit fast routing.

Parametersmodetypeas_oflimitqueryrequiredbranchdetailfusionintentreranktopicsdiverse+10 more

memory_timeline

Browse session history. sessions_ago=N for 'N sessions ago', session_number=1 for first session, date_from/date_to for date ranges.

Parameterslimitquerydate_toprojectdate_fromsessions_agosession_number

memory_index_passages

Build local passage indexes before evidence searches. Repeat using next_after_id until remaining=0.

Parameterslimitprojectrequiredafter_id

memory_answer

Generate and verify a cited answer using the configured reasoning LLM. Evidence carries recording dates; when records about the same subject disagree, the latest one gives the current value and the answer names the value it replaced. First runs negative retrieval: a contradiction-seeking second search; a score >= 0.60 hands both sides to the reader and answers with a caveat (MEMORY_CONTRADICTION_POLICY=abstain refuses instead), 0.30-0.60 answers with a caveat (see `negative`); MEMORY_CONTRADICTION_SCORER=jev scores the pairs with TypeSafe's Jev instead of the LLM. Up to one missing-relation retrieval and eight LLM calls including inversion retry and bounded quote repair. Explicit project required. Citation offsets refer to returned evidence content. Ordinary recall remains local.

Parameterstypelimitqueryrequiredbranchprojectrequiredfollowupmax_bytes

memory_save

Save knowledge explicitly. Types: decision (MUST include WHY in context), solution, lesson, fact, convention. Saving the same words again (case and punctuation aside) replaces the stored record, so it carries the latest date; any other text, including a changed value, is stored as a new record. v10: a quality gate scores the record before save; below-threshold records are rejected with a `rejected_by_quality_gate: true` response (override with MEMORY_QUALITY_GATE_ENABLED=false). Use `importance` to surface critical decisions at recall time (boosts the final RRF score). v11.0: routes to fast hot path when MEMORY_MODE=fast (default). Use memory_save_fast for explicit fast routing.

Parameterstagstyperequiredcorefbranchfiltercontentrequiredcontextprojectagent_idsupersedeimportancesource_format+1 more

memory_update

Update existing knowledge. Replaces the record `id`, or the best match for `find` (within `project` when given): supersedes it and creates a new version.

Parametersidfindreasonprojectnew_contentrequired

memory_stats

Memory statistics with health metrics: sessions, knowledge by type/project, retention zones (active/archived/consolidated), stale records, storage size, config, write path (embedding backfill queue, outbox intents, swallowed errors by component over 24h, importance budget clamps).

Takes no parameters.

memory_consolidate

Find and merge duplicate/similar knowledge records. Keeps the longest version, supersedes shorter duplicates. Reduces noise in recall results.

Parametersdry_runprojectthreshold

memory_export

Export all knowledge as JSON for backup or migration. Includes knowledge, sessions, relations and the agent action log.

Parametersprojectsave_to_file

memory_forget

Apply retention policy: archive stale records (>180d, never recalled, low confidence), purge very old archived records (>365d), prune the agent action log past TAM_ACTION_LOG_RETENTION_DAYS. Keeps memory clean.

Parametersdry_run

memory_wiki_generate

v10 — Render the per-project wiki digest (top decisions, active solutions, conventions, recent changes) as Markdown. Pass `project` to refresh one wiki, omit it to refresh all active projects. Files land in <MEMORY_DIR>/wikis/<project>.md and are deterministic (no LLM call).

Parametersproject

memory_report

Activity report for a project (or all projects) over a period: today (period=day), this week (week, ISO Monday-Sunday), this month (month), all time (all) or custom since/until dates; offset=-1 gives the previous day/week/month ('last week'). Sections: summary numbers with deltas against the previous equal period, key decisions with their WHY, solutions and fixes, errors with recurring patterns and lessons, open next steps and pitfalls from session summaries, most touched files, entities/technologies, and a day-by-day timeline. Every item carries source IDs (#id -> memory_get). Built deterministically from stored records, no LLM; include_llm_summary=true adds an optional paragraph from the configured LLM. Periods use the local timezone (or tz). save=true writes the Markdown to <memory dir>/reports/<project>/<period>-<date>.md. Use it when the user asks what happened, for a status/progress report, a weekly summary or a retrospective.

Parameterstzsavelimitsinceuntilformatoffsetperiodprojectinclude_llm_summary

memory_get

Batched fetch by ID — complement to memory_recall(mode='index'). Returns full content for ONLY the IDs the caller chose after inspecting an index. Typical 3-layer flow: recall(mode='index') → pick IDs → memory_get(ids=[...]).

Parametersidsrequireddetail

memory_history

View version history for a knowledge record. Shows the chain of superseded versions (newest → oldest), enabling time-travel through knowledge evolution.

Parametersidrequired

memory_delete

Delete a knowledge record. By default a soft delete: the record leaves search results and vectors but stays in the database. hard=true erases it for good, with its earlier versions, derived rows and its text in the raw call log (use for personal data or anything that must not be kept).

Parametersidrequiredhard

memory_relate

Create a typed relation between two knowledge records. Enriches graph expansion in Tier 4 search. Types: causal, solution, context, related, contradicts.

Parameterstyperequiredto_idrequiredfrom_idrequired

memory_search_by_tag

Search knowledge by tag. Returns all active records with matching tag (partial match). Useful for categorical browsing.

Parameterstagrequiredproject

memory_extract_session

Get pending session transcripts for knowledge extraction. Previous sessions are auto-captured on exit. Use action='list' to see pending, 'get' to read transcript, then save knowledge via memory_save, then 'complete' to mark as processed.

Parameterschunkactionrequiredsession_id

self_error_log

Log an error/failure for pattern analysis. Call AUTOMATICALLY when: bash command fails, wrong assumption discovered, API returns error, config issue found, loop detected, or any mistake occurs. System detects patterns (3+ same category) and suggests insights.

Parametersfixtagscontextprojectcategoryrequiredseveritydescriptionrequired

self_insight

Manage insights from error patterns (ExpeL-style). Actions: add (create, importance=2), upvote (+1), downvote (-1, auto-archive at 0), edit, list, promote (to rule when importance>=5 AND confidence>=0.8). Call 'add' when pattern detected. Call 'upvote' when insight confirmed again.

Parametersidtagsactionrequiredcontentcontextprojectcategorysource_error_ids

self_rules

Manage behavioral rules (SOUL). Rules are promoted insights that shape agent behavior. Actions: list, fire (record relevance), rate (success=true/false), suspend, activate, retire, add_manual, followed (surface_id from self_rules_context(query=...): was the rule followed?), report (follow-rate effectiveness with Wilson CIs, measurement only). success_rate = success / (success + fail). Auto-suspend: 5+ ratings and the 95% upper bound of success_rate < 0.4.

Parametersidnotetagsmin_nscopeactionrequiredcontentprojectsuccesscategoryfollowedpriority+2 more

self_patterns

Analyze error patterns and self-improvement stats. Views: error_patterns (frequency, repeating 3+), insight_candidates (ready for promotion), rule_effectiveness (success rates, stale rules), improvement_trend (weekly errors), full_report (all). Call periodically to track improvement.

Parametersdaysviewproject

self_reflect

Save a verbal self-reflection (Reflexion pattern). Call after completing a task or encountering difficulty. NOT for errors (use self_error_log). For meta-observations about strategy, approach effectiveness, process improvements.

Parameterstagsoutcomeprojectreflectionrequiredtask_summaryrequired

self_rules_context

Get active behavioral rules for current session. Call at SESSION START to load rules. Returns rules filtered by project and scope. v8.0: pass `phase` to lazy-load rules relevant to current task phase — core rules (no phase tag) + rules tagged phase:<X>. Cuts prompt tokens ~70%. After task completion, rate rules: self_rules(action='rate', id=X, success=true/false).

Parametersphasequeryprojectcategoriessession_id

rule_set_phase

Attach or remove a phase scope on a rule (v8.0 lazy rule loading). Tag-based: manages 'phase:<X>' on the rule's tags. phase=null clears the phase tag (rule becomes core — applies to every phase). Valid phases: van, plan, creative, build, reflect, archive.

Parametersphaserule_idrequired

memory_observe

Save a lightweight observation (auto-capture). No dedup, no ChromaDB — fast and cheap. Use for tracking file changes, tool usage, and session activity. Observations auto-cleanup after 30 days.

Parametersprojectsummaryrequiredtool_namerequiredfiles_affectedobservation_type

memory_associate

Associative recall — brain-like spreading activation through knowledge graph. Finds memories through concept resonance, not keyword search. In 'composition' mode, finds minimum set of memories covering all needed concepts.

Parametersmodequeryrequiredprojectmax_resultsmin_coverage

memory_graph

Query the unified knowledge graph. Returns neighborhood of a node: connected rules, skills, memories, concepts, entities.

Parametersnoderequireddepthtypes

memory_concepts

List or search concepts in the knowledge graph.

Parameterstypelimitqueryinclude_memories

memory_episode_save

Save an episode — narrative of WHAT HAPPENED and HOW. Not just facts, but the journey: what was tried, what failed, what worked.

Parametersoutcomerequiredprojectconceptsnarrativerequiredkey_insightimpact_scoreapproaches_triedfrustration_signals

memory_episode_recall

Find past episodes (experiences). Search by concepts, outcome, project, or impact.

Parameterslimitqueryoutcomeprojectconceptsmin_impact

memory_skill_get

Find skills matching a trigger. Skills are learned procedures — HOW to do things.

Parametersnametriggerlist_all

memory_skill_update

Record skill usage or refine a skill. Updates success rate and metrics.

Parametersnotessuccessrequiredskill_idrequirednew_stepsnew_anti_pattern

memory_self_assess

Self-assessment: how competent am I in given domains? Shows level, confidence, blind spots.

Parametersconceptsfull_report

memory_context_build

Build optimal context for a query. Combines: spreading activation + knowledge graph + episodes + skills + self-model. The 'brain thinking' tool.

Parametersqueryrequiredprojectmax_tokens

memory_reflect_now

Run reflection (the 'sleep' process). Consolidates knowledge, finds patterns, generates skill proposals, updates self-model.

Parametersscope

memory_graph_index

Reindex CLAUDE.md rules and skills into the knowledge graph. Run after modifying CLAUDE.md or adding new skills.

Parameterstarget

memory_graph_stats

Knowledge graph statistics: nodes, edges, communities, top concepts, health metrics.

Takes no parameters.

kg_add_fact

Record a temporal fact assertion (subject, predicate, object). Supersedes any prior assertion with same (s,p) and different object — full history is preserved. Use for evolving architectural decisions.

Parametersobjectrequiredcontextprojectsubjectrequiredpredicaterequiredconfidencevalid_frominvalidate_previous

kg_invalidate_fact

Close a currently-valid fact assertion. History is retained.

Parametersatobjectrequiredreasonprojectsubjectrequiredpredicaterequired

kg_at

Point-in-time query: return fact assertions valid at `timestamp` (ISO 8601). Omit timestamp for currently-valid facts.

Parameterslimitobjectprojectsubjectpredicatetimestamp

kg_timeline

Full chronological history of assertions for a subject.

Parameterslimitprojectsubjectrequiredpredicate

workflow_learn

Record a learned workflow (named sequence of steps) for future reuse.

Parametersnamerequiredstepsrequiredcontextprojectdescriptiontrigger_pattern

workflow_predict

Predict outcome (success probability, avg duration) for a workflow by id OR by trigger keyword. Uses Laplace-smoothed success rate.

Parametersprojecttriggerworkflow_id

workflow_track

Record a workflow execution outcome. Outcome ∈ {success|failure|partial|aborted}. Aggregates update automatically.

Parametersnotesoutcomerequiredduration_msworkflow_idrequirederror_details

file_context

BEFORE editing a file, call this to surface past errors, lessons, and related rules for that file path. Returns risk_score ∈ [0, 1].

Parameterspathrequiredlimitproject

learn_error

Structured error capture: file, error, root_cause, fix, pattern. After N (default 3) errors share the same pattern, a prevention rule is auto-synthesized into the rules table.

Parametersfixrequiredfilerequirederrorrequiredpatternrequiredprojectcategoryseverityroot_causerequired

session_init

At session start: return the most recent unconsumed end-of-session summary with highlights / pitfalls / next_steps.

Parametersprojectmark_consumed

session_end

End-of-session capture: summary + highlights + pitfalls + next_steps so the next session can resume cleanly. Set auto_compress=true to have the LLM generate the missing summary/next_steps/pitfalls from stored session artifacts (or from an optional `transcript`).

Parametersprojectsummarypitfallshighlightsnext_stepssession_idrequiredtranscriptauto_compressopen_questions

ingest_codebase

Parse a file or directory into semantic AST chunks (functions, classes, methods) across 8 languages. Returns chunk count + sample.

Parameterspathrequiredincludesample_limit

analogize

Find past solutions/lessons from OTHER projects whose feature set overlaps with the given problem text (Jaccard similarity).

Parameterstextrequiredlimitmin_scoreonly_typesexclude_project

benchmark

Run the eval harness: recall_at_k, prevention_rate, latency percentiles. Loads scenarios from evals/scenarios/*.json by default.

Parametersscenarios_path

memory_save_fast

v11.0: same as memory_save but routes through the fast hot path (skip_quality=True, no LLM, no async-blocking). Use when you want to bypass the v10 quality gate without flipping the env flag.

Parameterstagstyperequiredbranchfiltercontentrequiredcontextprojectagent_idsupersedeimportancesource_formatparent_agent_id

memory_search_fast

v11.0: like memory_recall but with rerank=False, diverse=False forced. Deterministic fast path — zero LLM, FastEmbed-only.

Parameterstypelimitqueryrequiredbranchdetailfusionprojectembedding_space

memory_warmup

v11.0: pre-load FastEmbed model and open the vector store, so the first save/search after process start doesn't pay model-load latency.

Takes no parameters.

memory_perf_report

v11.0: dump in-process telemetry counters (search_total_ms, embed_ms, fts_ms, vector_ms, llm_calls, network_calls) plus persistent embedding_cache stats. Use to verify the fast hot path stays clean.

Takes no parameters.

memory_rebuild_fts

v11.0: drop and rebuild the SQLite FTS5 virtual table from `knowledge` rows. Useful after migrations or content_type column changes that the FTS triggers didn't see. Returns {rebuilt: int}.

Takes no parameters.

memory_rebuild_embeddings

v11.0: re-encode every record (or every record in a given embedding space) and update the binary + float32 vectors. Idempotent. Pass embedding_space='code' to refresh only code rows after switching the code embedder. Returns {rebuilt: int, skipped: int}.

Parameterslimitprojectbatch_sizeembedding_space

memory_eval_locomo

v11.0 Phase 8: run the LongMemEval-style recall+prevention scenario suite (loaded from evals/scenarios/) against the live store. Forces MEMORY_MODE=fast by default. Returns {scenarios_total, scenarios_passed, recall_at_5, recall_at_10, latency_ms, mode, llm_calls_during_eval, network_calls_during_eval}.

Parametersmodelimittop_kscenarios_path

memory_eval_recall

v11.0 Phase 8: generic recall benchmark on a dataset path or a small built-in fixture. Same payload shape as memory_eval_locomo.

Parametersmodelimittop_kdataset_path

memory_eval_temporal

v11.0 Phase 8: temporal recall using temporal_kg + temporal_filter. Returns {status: 'not_implemented', ...} when modules are missing.

Parametersmodelimit

memory_eval_entity_consistency

v11.0 Phase 8: verifies entity_dedup canonicalization is stable across repeated saves of variant tag spellings.

Parametersmode

memory_eval_contradictions

v11.0 Phase 8: runs contradiction_detector against a labelled fixture. Requires balanced/deep mode (LLM). Returns {status: 'not_implemented', ...} if module is unavailable.

Parametersmodefixture_path

memory_eval_long_context

v11.0 Phase 8: large-context recall scenario. Saves N records and queries them at the tail. Reuses eval_harness scenarios tagged 'long_context' if present.

Parametersmodetop_kn_records

classify_task

v8.0: classify task into L1-L4 complexity + suggested phases.

Parametersprojectdescriptionrequired

task_create

v8.0: start a task in `van` phase (auto-classifies level if missing).

Parametersleveltask_idrequireddescriptionrequired

phase_transition

v8.0: advance a task to the next phase.

Parametersnotestask_idrequiredartifactsnew_phaserequired

task_phases_list

v8.0: list all phases of a task in chronological order.

Parameterstask_idrequired

save_intent

Persist one user prompt into the `intents` table (same source as the UserPromptSubmit hook). Use when programmatically seeding intents — the hook covers normal interactive usage. Dedupes same prompt within 5 min per session.

Parameterspromptrequiredprojectsession_id

list_intents

List recent user prompts from the intents table, newest first. Filter by project and/or session. Max 500 rows.

Parameterslimitprojectsession_id

search_intents

Substring search over user prompts (LIKE). Returns newest match first. Useful for 'what did I ask about X' without mining transcripts.

Parameterslimitqueryrequiredproject

save_decision

v8.0: save a structured architectural decision (options + criteria matrix + rationale + discarded). Adds `structured` tag and a JSON blob in context. Use for Creative-phase outputs; plain type=decision memory_save still works.

Parameterstagstitlerequiredoptionsrequiredprojectselectedrequireddiscardedrationalerequiredcriteria_matrixrequired

memory_recall_iterative

v11.0 W1-B: IRCoT-style iterative retrieval. Decomposes the query into sub-questions, retrieves per sub-question, and asks a planner LLM whether more retrieval is needed. Best for multi-hop questions. Returns unified evidence + provenance per iteration.

Parametersqueryrequiredprojectllm_modelmax_itersk_per_iter

memory_temporal_query

v11.0 W1-C: deterministic temporal reasoning — Allen interval relations, duration arithmetic (days/weeks/months/years), and natural-language date normalization (en + ru). Pass op=relation|duration_between|normalize.

Parametersaboprequiredlanga_endb_endanchorphrasea_startb_start

memory_entity_resolve

v11.0 W1-F: resolve a mention to its canonical entity within a project+type. Cross-session coreference via name/alias index + embedding cosine. Returns canonical_id, matched_via, and is_new flag. Pronouns return -1.

Parameterstypementionrequiredprojectthresholdcreate_if_missing

memory_consolidate_status

v11.0 W2-G: report the consolidation daemon state — per-project last-run, active locks, recent activity. Use to verify the idle-project worker is making progress without interfering with active work.

Takes no parameters.

memory_exploration_record

Record the conclusion of a codebase exploration together with the SHA-256 of every file read to reach it. Call it after answering a structural question by reading files (how X is wired, where Y is decided). Paths are stored relative to `root` (default: the server's working directory); files outside root are refused. Up to 64 files of at most 32 MB each. Recording the same question again for the project replaces the earlier memo.

Parametersrootfilesrequiredprojectrequiredquestionrequiredconclusionrequired

memory_exploration_recall

Before re-reading files to answer a codebase question, look up earlier exploration conclusions. Results are ranked by question similarity; each carries status 'fresh' (every source file is byte-identical to when the conclusion was recorded: reuse it) or 'stale' (changed_files / missing_files list what to re-read).

Parametersrootlimitprojectrequiredquestionrequiredinclude_stale

Version history

11
  1. v14.10.0LatestOct 29, 2026
  2. v14.9.0Oct 14, 2026
  3. v14.8.0Oct 8, 2026
  4. v14.7.0Sep 30, 2026
  5. v14.6.0Sep 28, 2026
  6. v14.5.1Sep 24, 2026
  7. v14.5.0Sep 23, 2026
  8. v14.3.1Sep 21, 2026
  9. v14.3.0Sep 21, 2026
  10. v14.1.0Sep 21, 2026
  11. v14.0.0Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Memory integrations