Skip to main content
Glama

โšก๐Ÿง  flashmind โ€” Gemini 3.8 Flash Smart Agent

Make Gemini 3.8 Flash remember, plan, verify โ€” and eliminate hallucinations.

Persistent cross-tool memory via Engram ยท 4 proactive coding skills ยท strict anti-hallucination rules.
One plugin for Gemini CLI, Antigravity, Cursor, VS Code, Windsurf, and Claude Code.

npm version test dependencies node license


๐Ÿ’ก Why Flashmind?

Fast AI models are incredible coding partners until they:

  • Forget architecture decisions and re-ask the same questions every new session.

  • Invent imaginary packages, deprecated functions, and fake CLI flags.

  • Say "fixed!" without ever executing tests or verifying their changes.

Flashmind solves this with three integrated layers:

  1. ๐Ÿง  Shared Memory (Engram MCP): Automatically recalls previous project bugs and decisions at the start of a task, and saves new lessons before closing. Reviews overdue memories (mem_review) against the current code before trusting them. All editors share one local database.

  2. ๐Ÿ›ก๏ธ Anti-Hallucination Rules (GEMINI.md): Enforces citing code evidence, separating facts from assumptions, and admitting unknowns.

  3. ๐ŸŽฏ Proactive Agent Skills: Step-by-step playbooks loaded on-demand for planning, debugging, and verification.


Related MCP server: coding-memory-mcp

๐Ÿš€ Quick Start

Add to your tool's MCP configuration (mcp.json / mcp_config.json):

{
  "mcpServers": {
    "flashmind": {
      "command": "npx",
      "args": ["-y", "flashmind"]
    }
  }
}

Option 2: Gemini CLI Extension

Install in one command:

gemini extensions install https://github.com/Hvftpie13/Flashmind_Gemini-3.8-Flash_Smart-agent
gemini -m gemini-3.8-flash

Option 3: Automated Full Installer (Engram + Skills + Rules)

Includes the Engram binary, all Agent Skills, and automated client configuration:

macOS / Linux:

git clone https://github.com/Hvftpie13/Flashmind_Gemini-3.8-Flash_Smart-agent flashmind
cd flashmind
./install.sh antigravity-cli

Windows (PowerShell):

git clone https://github.com/Hvftpie13/Flashmind_Gemini-3.8-Flash_Smart-agent flashmind
cd flashmind
.\install.ps1 antigravity-cli

๐Ÿงฉ Client Configuration

Pre-configured files are available in configs/:

Client / Editor

MCP Configuration File

Rules Location

Antigravity

configs/antigravity/mcp_config.json โ†’ ~/.gemini/config/mcp_config.json

AGENTS.md โ†’ Rules / ~/.gemini/GEMINI.md

Cursor

configs/cursor/mcp.json โ†’ ~/.cursor/mcp.json

configs/cursor/flashmind.mdc โ†’ ~/.cursor/rules/

VS Code (Copilot)

configs/vscode/mcp.json โ†’ .vscode/mcp.json

configs/vscode/flashmind.instructions.md

Windsurf

configs/windsurf/mcp_config.json โ†’ ~/.codeium/windsurf/mcp_config.json

configs/windsurf/global_rules.md

Claude Code

Run bash configs/claude-code.sh

AGENTS.md โ†’ CLAUDE.md

Any MCP Client

configs/mcp.json

AGENTS.md


๐ŸŽฏ Proactive Agent Skills

Loaded automatically when relevant to your current prompt:

Skill

Trigger

Purpose

plan-first

Tasks with 3+ steps or multi-file edits

Read code โ†’ Draft plan โ†’ Execute one verified step at a time.

no-invented-code

Writing new functions or imports

Always verify symbols and installed versions against local source.

systematic-debugging

Errors, test failures, or crashes

Check past memories โ†’ Reproduce โ†’ Root-cause โ†’ Minimal fix โ†’ Prove it.

verify-before-done

Before declaring "fixed" or "done"

Run linter/tests and report exact terminal results.


โšก Slash Commands (Gemini CLI)

Command

Action

/memory:recall <query>

Search and summarize what memory knows about a topic

/memory:save <fact>

Save a verified decision or discovery

/memory:forget <item>

Delete outdated memories

/memory:summary

Generate and record a session summary

/verify

Audit the last answer claim-by-claim with source evidence


๐Ÿ”„ Updating

Updating never touches your memories: they live in ~/.engram/ and ~/.flashmind/. See CHANGELOG.md for what changed.

How you installed

How to update

Gemini CLI extension

gemini extensions update flashmind (or gemini extensions update --all). It updates in place, so do not run install again. If it cannot find the source (e.g. you installed under the old repo name), run gemini extensions uninstall flashmind, then install again from the current URL.

NPX

Restart your editor. If it keeps running an old version, clear npx's cached copy with npm cache clean --force and restart.

Automated installer / git clone

cd flashmind && git pull, then run ./install.sh (macOS/Linux) or .\install.ps1 (Windows) again. Skills are overwritten by name, not duplicated.

Manual config files

Re-copy from configs/ and replace, never append (see below).

Engram

brew upgrade engram, or re-run go install github.com/Gentleman-Programming/engram/v3/cmd/engram@latest.

Avoiding duplicates

  • One entry per server. Keep a single "flashmind" and a single "engram" key in your MCP config. Edit the existing entry; do not paste a second copy.

  • Replace rules, don't append. For Cursor, Windsurf and VS Code, overwrite the file with the same name. For a shared file such as ~/.gemini/GEMINI.md or CLAUDE.md, wrap the rules in markers the first time you paste them, and replace everything between the markers on each update:

    <!-- flashmind:start -->
    ...contents of AGENTS.md...
    <!-- flashmind:end -->
  • One copy of the skills. If you copied skills/ into more than one folder (for example ~/.gemini/skills and ~/.agents/skills), keep one and delete the other.

  • Start a new session after updating so the agent loads the new rules and skills.


๐Ÿ”’ Privacy & Local-First

  • 100% Local: All memories are stored on your machine (~/.engram/ or ~/.flashmind/). Zero telemetry or external API calls.

  • Secret Redaction: Automatically rejects passwords, bearer tokens, API keys, and sensitive credentials.

  • Zero Dependencies: Lightweight and fast with 0 third-party runtime npm packages.


๐Ÿ“„ License

MIT ยฉ Flashmind Contributors.

Available Tools

8 tools
memory_contextA

(Engram fallback.) Call ONCE at the start of a task when the mem_* tools are not available. Returns a digest of key memories (user profile, preferences, active projects, decisions) so you do not re-ask what is already known.

NameRequiredDescriptionDefault
max_itemsNoDefault 30

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses read-like digest behavior, the once-per-task constraint, and the purpose of avoiding redundant questions, but it omits permissions, failure or empty-result behavior, and how fresh or authoritative the memories are.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the fallback status and call timing. Every clause contributes useful information with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter fallback tool with no output schema, the description adequately covers when to call it and what categories of memory are returned. Minor gaps remain around the mem_* naming mismatch and empty-result behavior, but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single optional max_items parameter has 100% schema description coverage, including its default. The description adds no further meaning about how the item limit affects the digest, so the schema alone does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: returns a digest of key memories, listing categories such as user profile, preferences, active projects, and decisions. It also distinguishes itself as a fallback when mem_* tools are unavailable, though the sibling names here are memory_*, creating slight ambiguity about exact routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear timing and a condition: call ONCE at the start of a task when mem_* tools are not available. It does not name individual alternatives or explain what to do if only some memory tools are available, but the core when-to-use guidance is explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_deleteB

Delete a memory. Only when the user asks or the fact is proven wrong.

NameRequiredDescriptionDefault
idYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden: it discloses that deletion is destructive and adds a usage guardrail, which is genuinely useful. However, it says nothing about irreversibility, whether confirmation is required, or what happens when the id does not exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose first and the restrictive condition second, with no filler. It is arguably too terse rather than padded, so the structure itself is sound.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool this covers purpose and when-to-call, but with no annotations and no output schema the agent still lacks deletion consequences, id format, and error behavior for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about the single required parameter `id` โ€” no format, no source, no example of how to obtain a memory id. The agent must infer everything about the parameter from the name alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Delete a memory" states a specific verb and resource, clearly distinct from save/update/get/list siblings. It does not explicitly contrast with memory_update (which could also retire a fact), but the destructive verb is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Only when the user asks or the fact is proven wrong" gives an explicit gating condition and a second qualifying case, which is stronger than most destructive tools get. It does not name the alternative to prefer when the fact merely needs correcting (memory_update).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_getB

Read one full memory by id.

NameRequiredDescriptionDefault
idYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It conveys that this is a read returning the 'full' record, but says nothing about behavior when the id does not exist (error vs empty), permissions, or whether the result includes metadata or only content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the verb and key up front and no wasted words. Appropriately sized for a one-parameter read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read with no output schema, the definition is minimally adequate. It is missing two things an agent needs: how to obtain a valid id and what 'full' actually returns, which matters since no output schema documents the shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the single 'id' parameter is undocumented in structured fields. The phrase 'by id' signals the parameter is a memory identifier rather than a query string, but gives no format, prefix, or source for obtaining a valid id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'Read' plus resource 'one full memory' and the lookup key 'by id'. This implicitly distinguishes it from memory_search and memory_list, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent infers it should call this when it already has a memory id and wants the complete record. There is no explicit statement about when to prefer memory_get over memory_search or memory_context, and no mention of what to do if the id is unknown.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_listC

List memories (newest first), optionally filtered by category.

NameRequiredDescriptionDefault
limitNo
categoryNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the sort order, which is genuinely useful, but says nothing about what happens when limit truncates the result set, whether there is pagination or a default limit, or what fields each memory entry contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with zero waste, and the useful ordering detail is front-loaded ahead of the optional filter. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and zero schema description coverage, the description should do more work than one sentence. It leaves an agent unable to judge result volume, default limit, pagination, or return shape for a listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for both parameters. It covers 'category' only implicitly via 'filtered by category,' and gives no meaning at all for 'limit' โ€” no default, no truncation behavior, nothing about the 1-200 range.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List memories') plus the default ordering ('newest first') and the optional filter, which is enough to distinguish this from memory_search or memory_get. It does not explicitly contrast itself with those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'optionally' hints that category is a filter, but there is no statement of when to use this browse-style listing versus memory_search or memory_context, and no exclusions or prerequisites. An agent must infer the routing decision from the sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_saveA

Save a durable fact: user identity/preferences, project details, decisions, lessons from mistakes. Never store your guesses as 'verified'. Never store passwords, API keys, tokens, card/account numbers, or ID numbers.

NameRequiredDescriptionDefault
tagsNo
sourceNoWhere the fact came from: 'user', a URL, a file path, or a document name
contentYesOne self-contained, concise fact
categoryNoDefault: fact
confidenceNoverified = checked against a source; user_stated = the user said it; inferred = your conclusion (avoid)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden, and it does substantial work: it forbids persisting unverified guesses as 'verified' and bans sensitive credential/PII storage. It is silent on write semantics such as deduplication, conflict handling with existing memories, or whether the saved record is returned with an identifier.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the positive instruction followed by the prohibitions, with zero filler. Every clause either defines what qualifies as durable or prevents a specific misuse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, annotation-free mutation tool with no output schema, the description covers what to store, how confidence should be assigned, and what must never be stored. The remaining gap is what happens on save (duplicate handling, whether an existing fact is overwritten), which an agent would need to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the baseline is 3, but the description adds genuine meaning: the listing of fact types maps onto the category enum, and 'never store your guesses as verified' explains the practical use of the confidence enum beyond the schema's own gloss. It adds nothing about tags or source, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Save a durable fact') and enumerates the fact types (identity/preferences, project details, decisions, lessons), which clearly separates it from retrieval siblings like memory_search and memory_get. It does not explicitly distinguish it from memory_update, which is the closest ambiguous alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete inclusion criteria and explicit exclusions ('Never store passwords, API keys, tokens, card/account numbers, or ID numbers'), which is real when/when-not guidance. It omits workflow guidance such as searching for an existing memory before saving or using memory_update to revise one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_updateC

Update an existing memory (e.g. a fact changed). Prefer updating over creating duplicates.

NameRequiredDescriptionDefault
idYes
tagsNo
sourceNo
contentNo
categoryNo
confidenceNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations at all, so the description carries the full burden for a mutation tool. It never says whether omitted fields are preserved or cleared (partial vs. full replace), what happens if the id does not exist, whether the overwrite is recoverable, or whether confidence/tags are merged. Only the fact that it mutates an existing record is conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the routing preference; every word earns its place. It is terse rather than padded, with the brevity problem showing up in completeness rather than here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation tool with no annotations, no output schema, and zero schema descriptions, the definition leaves too much unknown: update semantics, enum meanings, failure modes, and return shape. The two sentences are not enough to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description adds virtually nothing: it never explains that `id` must reference an existing memory, nor what `content`, `source`, `tags`, or the two enum fields (category, confidence) mean or do. An agent must infer all six parameters from bare names and enum lists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Update an existing memory") and adds a concrete motivating case ("a fact changed"). It implicitly separates itself from memory_save via the no-duplicates guidance, though it never names the sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Prefer updating over creating duplicates" gives one routing rule against memory_save, and "e.g. a fact changed" implies when to reach for it. But there is no guidance on how to obtain the required id (memory_search / memory_get), no when-not conditions, and no mention of the other siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_verifyA

Check a claim against memory before stating it as fact. Returns candidate memories and a status: SUPPORTED_CANDIDATES (compare the content yourself) or NO_EVIDENCE.

NameRequiredDescriptionDefault
claimYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does useful work: it discloses the two possible status outcomes and explains that SUPPORTED_CANDIDATES means the agent must compare content itself rather than trusting a verdict. It does not state side-effect/reversibility profile or how candidates are matched, leaving a gap for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the action and the precondition front-loaded before the return-value explanation. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A single-parameter read tool with no output schema; the description compensates by naming both return elements and their semantics. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter and schema description coverage is 0%, but the parameter is named "claim" and the description's phrasing ("check a claim") makes its meaning self-evident. No added detail on expected length, phrasing, or whether it should be a verbatim statement versus a question.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: check a claim against memory, returning candidate memories plus a status. This is clearly distinguishable in behavior from sibling search/list tools, but the description never names a sibling for direct contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"before stating it as fact" gives an explicit trigger condition, and "compare the content yourself" tells the agent that the tool does not render a verdict. No when-not-to-use conditions or named alternatives are given, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv1.0.0
    • First observedmemory_context
    • First observedmemory_delete
    • First observedmemory_get
    • First observedmemory_list
    • First observedmemory_save
    • First observedmemory_search
    • First observedmemory_update
    • First observedmemory_verify

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation4/5

The tools are mostly distinct: save, get, list, update, delete form clear CRUD roles, while context/search/verify have explicit usage guidance. There is some overlap between search, list, context, and verify since all retrieve candidate memories, but the descriptions give enough cues to choose correctly.

Naming Consistency5/5

All tools use a consistent memory_ prefix followed by a clear verb or noun, in uniform snake_case. The pattern is predictable across the entire set.

Tool Count5/5

Eight tools is well-scoped for a memory service: CRUD operations plus search, list, context digest, and verification. No tool feels redundant or missing at the count level.

Completeness5/5

The surface covers the full memory lifecycle: create/save, read (get/list/search/context), update, delete, and verification. No obvious operational gaps for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI coding assistants with persistent project memory to retain architectural decisions, code patterns, and domain knowledge across sessions. It stores data locally in a SQLite database, allowing agents to remember, recall, and manage project-specific context using full-text search.
    0
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides a local long-term memory layer for AI coding tools like Cursor and Claude Code, enabling cross-session, cross-tool sharing of project facts, user preferences, decisions, and workflows.
    6 npm
    2
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Provides AI coding agents with a local-first persistent memory layer they can read and write during sessions, storing decisions, preferences, error patterns, and research per project or globally. Enables semantic and keyword search, formatted context recall, and cross-project guideline surfacing without API keys or cloud storage.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Gives AI coding agents a local-first persistent memory they can read and write directly during sessions, storing decisions, preferences, error patterns, and guidelines in per-project and global SQLite stores. Enables semantic and keyword retrieval of relevant context across sessions so agents start work already knowing a codebase's conventions and history.
    -