Skip to content

Edlineas/aivectormemory

Repository files navigation

🌐 简体中文 | 繁體中文 | English | Español | Deutsch | Français | 日本語

AIVectorMemory Logo

AI Vector Memory Architecture

AIVectorMemory

Give your AI coding assistant a memory — Cross-session persistent memory MCP Server

PyPI Python License MCP


Still using CLAUDE.md / MEMORY.md as memory? This Markdown-file memory approach has fatal flaws: the file keeps growing, injecting everything into every session and burning massive tokens; content only supports keyword matching — search "database timeout" and you won't find "MySQL connection pool pitfall"; sharing one file across projects causes cross-contamination; there's no task tracking, so dev progress lives entirely in your head; not to mention the 200-line truncation, manual maintenance, and inability to deduplicate or merge.

AIVectorMemory is a fundamentally different approach. Local vector database storage with semantic search for precise recall (matches even when wording differs), on-demand retrieval that loads only relevant memories (token usage drops 50%+), automatic multi-project isolation with zero interference, and built-in issue tracking + task management that lets AI fully automate your dev workflow. All data is permanently stored on your machine — zero cloud dependency, never lost when switching sessions or IDEs.

✨ Core Features

Feature Description
🧠 Cross-Session Memory Your AI finally remembers your project — pitfalls, decisions, conventions all persist across sessions
🔍 Semantic Search No need to recall exact wording — search "database timeout" and find "MySQL connection pool issue"
💰 Save 50%+ Tokens Stop copy-pasting project context every conversation. Semantic retrieval on demand, no more bulk injection
🔗 Task-Driven Dev Issue tracking → task breakdown → status sync → linked archival. AI manages the full dev workflow
📊 Desktop App + Web Dashboard Native desktop app (macOS/Windows/Linux) + Web dashboard, visual management for memories and tasks, 3D vector network reveals knowledge connections at a glance
🏠 Fully Local Zero cloud dependency. ONNX local inference, no API Key, data never leaves your machine
🔌 All IDEs Cursor / Kiro / Claude Code / Windsurf / VSCode / OpenCode / Trae — one-click install, works out of the box
📁 Multi-Project Isolation One DB for all projects, auto-isolated with zero interference, seamless project switching
🔄 Smart Dedup Similarity > 0.95 auto-merges updates, keeping your memory store clean — never gets messy over time
🌐 7 Languages 简体中文 / 繁體中文 / English / Español / Deutsch / Français / 日本語, full-stack i18n for dashboard + Steering rules

QQ群:1085682431  |  微信:changhuibiz
共同参与项目开发加QQ群或微信交流

Login
Login

Project Selection
Project Selection

Overview & Vector Network
Overview & Vector Network

🏗️ Architecture

┌─────────────────────────────────────────────────┐
│                   AI IDE                         │
│  OpenCode / Claude Code / Cursor / Kiro / ...   │
└──────────────────────┬──────────────────────────┘
                       │ MCP Protocol (stdio)
┌──────────────────────▼──────────────────────────┐
│              AIVectorMemory Server               │
│                                                  │
│  ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│  │ remember │ │  recall   │ │   auto_save      │ │
│  │ forget   │ │  task     │ │   status/track   │ │
│  └────┬─────┘ └────┬─────┘ └───────┬──────────┘ │
│       │            │               │             │
│  ┌────▼────────────▼───────────────▼──────────┐  │
│  │         Embedding Engine (ONNX)            │  │
│  │      intfloat/multilingual-e5-small        │  │
│  └────────────────────┬───────────────────────┘  │
│                       │                          │
│  ┌────────────────────▼───────────────────────┐  │
│  │     SQLite + sqlite-vec (Vector Index)     │  │
│  │     ~/.aivectormemory/memory.db            │  │
│  └────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────┘

🚀 Quick Start

Option 1: pip install (Recommended)

# Install
pip install aivectormemory

# Upgrade to latest version
pip install --upgrade aivectormemory

# Navigate to your project directory, one-click IDE setup
cd /path/to/your/project
run install

run install interactively guides you to select your IDE, auto-generating MCP config, Steering rules, and Hooks — no manual setup needed.

macOS users note:

  • If you get externally-managed-environment error, add --break-system-packages
  • If you get enable_load_extension error, your Python doesn't support SQLite extension loading (macOS built-in Python and python.org installers don't support it). Use Homebrew Python instead:
    brew install python
    /opt/homebrew/bin/python3 -m pip install aivectormemory

Option 2: uvx (zero install)

No pip install needed, run directly:

cd /path/to/your/project
uvx aivectormemory install

Requires uv to be installed. uvx auto-downloads and runs the package — no manual installation needed.

Option 3: Manual configuration

{
  "mcpServers": {
    "aivectormemory": {
      "command": "run",
      "args": ["--project-dir", "/path/to/your/project"]
    }
  }
}
📍 IDE Configuration File Locations
IDE Config Path
Kiro .kiro/settings/mcp.json
Cursor .cursor/mcp.json
Claude Code .mcp.json
Windsurf .windsurf/mcp.json
VSCode .vscode/mcp.json
Trae .trae/mcp.json
OpenCode opencode.json

🛠️ 8 MCP Tools

remember — Store a memory

content (string, required)   Memory content in Markdown format
tags    (string[], required)  Tags, e.g. ["pitfall", "python"]
scope   (string)              "project" (default) / "user" (cross-project)

Similarity > 0.95 auto-updates existing memory, no duplicates.

recall — Semantic search

query   (string)     Semantic search keywords
tags    (string[])   Exact tag filter
scope   (string)     "project" / "user" / "all"
top_k   (integer)    Number of results, default 5

Vector similarity matching — finds related memories even with different wording.

forget — Delete memories

memory_id  (string)     Single ID
memory_ids (string[])   Batch IDs

status — Session state

state (object, optional)   Omit to read, pass to update
  is_blocked, block_reason, current_task,
  next_step, progress[], recent_changes[], pending[]

Maintains work progress across sessions, auto-restores context in new sessions.

track — Issue tracking

action   (string)   "create" / "update" / "archive" / "list"
title    (string)   Issue title
issue_id (integer)  Issue ID
status   (string)   "pending" / "in_progress" / "completed"
content  (string)   Investigation content

task — Task management

action     (string, required)  "batch_create" / "update" / "list" / "delete" / "archive"
feature_id (string)            Linked feature identifier (required for list)
tasks      (array)             Task list (batch_create, supports subtasks)
task_id    (integer)           Task ID (update)
status     (string)            "pending" / "in_progress" / "completed" / "skipped"

Links to spec docs via feature_id. Update auto-syncs tasks.md checkboxes and linked issue status.

readme — README generation

action   (string)    "generate" (default) / "diff" (compare differences)
lang     (string)    Language: en / zh-TW / ja / de / fr / es
sections (string[])  Specify sections: header / tools / deps

Auto-generates README content from TOOL_DEFINITIONS / pyproject.toml, multi-language support.

auto_save — Auto save preferences

preferences  (string[])  User-expressed technical preferences (fixed scope=user, cross-project)
extra_tags   (string[])  Additional tags

Auto-extracts and stores user preferences at end of each conversation, smart dedup.

📊 Web Dashboard

run web --port 9080
run web --port 9080 --quiet          # Suppress request logs
run web --port 9080 --quiet --daemon  # Run in background (macOS/Linux)

Visit http://localhost:9080 in your browser. Default username admin, password admin123 (can be changed in settings after first login).

  • Multi-project switching, memory browse/search/edit/delete/export/import
  • Semantic search (vector similarity matching)
  • One-click project data deletion
  • Session status, issue tracking
  • Tag management (rename, merge, batch delete)
  • Token authentication protection
  • 3D vector memory network visualization
  • 🌐 Multi-language support (简体中文 / 繁體中文 / English / Español / Deutsch / Français / 日本語)

WeChat Group      QQ Group: 1085682431
Scan to join WeChat group  |  Scan to join QQ group

⚡ Pairing with Steering Rules

AIVectorMemory is the storage layer. Use Steering rules to tell AI when and how to call these tools.

Running run install auto-generates Steering rules and Hooks config — no manual setup needed.

IDE Steering Location Hooks
Kiro .kiro/steering/aivectormemory.md .kiro/hooks/*.hook
Cursor .cursor/rules/aivectormemory.md .cursor/hooks.json
Claude Code CLAUDE.md (appended) .claude/settings.json
Windsurf .windsurf/rules/aivectormemory.md .windsurf/hooks.json
VSCode .github/copilot-instructions.md (appended) .claude/settings.json
Trae .trae/rules/aivectormemory.md
OpenCode AGENTS.md (appended) .opencode/plugins/*.js
📋 Steering Rules Example (auto-generated)
# AIVectorMemory - Workflow Rules

## 1. New Session Startup (execute in order)

1. `recall` (tags: ["project-knowledge"], scope: "project", top_k: 100) load project knowledge
2. `recall` (tags: ["preference"], scope: "user", top_k: 20) load user preferences
3. `status` (no state param) read session state
4. Blocked → report and wait; Not blocked → enter processing flow

## 2. Message Processing Flow

- Step A: `status` read state, wait if blocked
- Step B: Classify message type (chat/correction/preference/code issue)
- Step C: `track create` record issue
- Step D: Investigate (`recall` pitfalls + read code + find root cause)
- Step E: Present plan to user, set blocked awaiting confirmation
- Step F: Modify code (`recall` pitfalls before changes)
- Step G: Run tests to verify
- Step H: Set blocked awaiting user verification
- Step I: User confirms → `track archive` + clear block

## 3. Blocking Rules

Must `status({ is_blocked: true })` when proposing plans or awaiting verification.
Only clear after explicit user confirmation. Never self-clear.

## 4-9. Issue Tracking / Code Checks / Spec Task Mgmt / Memory Quality / Tool Reference / Dev Standards

(Full rules auto-generated by `run install`)
🔗 Hooks Config Example (Kiro only, auto-generated)

Auto-save on session end removed. Dev workflow check (.kiro/hooks/dev-workflow-check.kiro.hook):

{
  "enabled": true,
  "name": "Dev Workflow Check",
  "version": "1",
  "when": { "type": "promptSubmit" },
  "then": {
    "type": "askAgent",
    "prompt": "Core principles: verify before acting, no blind testing, only mark done after tests pass"
  }
}

🇨🇳 Users in China

The embedding model (~200MB) is auto-downloaded on first run. If slow:

export HF_ENDPOINT=https://hf-mirror.com

Or add env to MCP config:

{
  "env": { "HF_ENDPOINT": "https://hf-mirror.com" }
}

📦 Tech Stack

Component Technology
Runtime Python >= 3.10
Vector DB SQLite + sqlite-vec
Embedding ONNX Runtime + intfloat/multilingual-e5-small
Tokenizer HuggingFace Tokenizers
Protocol Model Context Protocol (MCP)
Web Native HTTPServer + Vanilla JS

📋 Changelog

v2.0

Performance: ONNX INT8 Quantization

  • ⚡ Embedding model auto-quantized from FP32 to INT8 on first load, model file from 448MB down to 113MB
  • ⚡ MCP Server memory usage reduced from ~1.6GB to ~768MB (50%+ reduction)
  • ⚡ Quantization is transparent to users — automatic on first use, cached for subsequent loads, falls back to FP32 on failure

New: Remember Password

  • 🔐 Login page on both desktop and web dashboard now has a "Remember password" checkbox
  • 🔐 When checked, credentials are saved to localStorage and auto-filled on next login; when unchecked, saved credentials are cleared
  • 🔐 Checkbox is hidden in registration mode

Enhancement: Steering Rules

  • 📝 IDENTITY & TONE section strengthened with more specific constraints (no pleasantries, no translating user messages, etc.)
  • 📝 Self-testing requirements now distinguish between backend-only, MCP Server, and frontend-visible changes (Playwright required for frontend)
  • 📝 Development rules now mandate self-testing after completing development
  • 📝 All 7 language versions synchronized

v1.0.11

  • 🐛 Desktop app version comparison switched to semantic versioning, fixing false upgrade prompts when local version is higher
  • 🐛 Health check page field names aligned with backend, fixing consistency status always showing Mismatch
  • 🔧 check_track.sh hook adds Python fallback, resolving silent hook failure when system sqlite3 is unavailable (#4)

v1.0.10

  • 🖥️ Desktop app one-click install + upgrade detection
  • 🖥️ Auto-detect Python and aivectormemory installation status on startup
  • 🖥️ Show one-click install button when not installed, check PyPI and desktop new versions when installed
  • 🐛 Installation detection switched to importlib.metadata.version() for accurate package version

v1.0.8

  • 🔧 Fix PyPI package size anomaly (sdist from 32MB down to 230KB), excluded accidentally packaged dev files

v1.0.6

New: Native Desktop App

  • 🖥️ Native desktop client supporting macOS (ARM64), Windows (x64), Linux (x64)
  • 🖥️ Desktop app shares the same database as Web dashboard, fully feature-equivalent
  • 🖥️ Dark/light theme switching, Glass frosted visual style
  • 🖥️ Login auth, project selection, stats overview, memory management, issue tracking, task management, tag management, settings, data maintenance — full feature coverage
  • 📦 Auto-published installers via GitHub Releases, download and use

New: CI/CD Auto Build

  • 🔄 GitHub Actions auto-builds desktop installers for all 3 platforms
  • 🔄 Push a tag to trigger the full compile, package, and release pipeline

Fixes

  • 🐛 Windows platform compatibility fixes
  • 🐛 sqlite-vec extension download URL fix

v1.0.5

Optimization: Token Usage Reduction

  • ⚡ Steering rules changed from per-message dynamic injection to static loading, reducing repeated token consumption
  • ⚡ Greatest impact for Claude Code users — ~2K fewer tokens per message

v1.0.4

New: Full-Stack i18n (7 Languages)

  • 🌐 Web dashboard + desktop UI fully supports 7 languages: 简体中文 / 繁體中文 / English / Español / Deutsch / Français / 日本語
  • 🌐 One-click language switch in settings page, takes effect immediately
  • 🌐 MCP tool responses follow language setting, AI replies automatically use the corresponding language
  • 🌐 Switching language auto-regenerates steering rules for all installed projects

New: Web Dashboard Settings Page

  • ⚙️ Language switch, theme settings, system info display
  • ⚙️ Database health check, repair, backup and other maintenance tools

v1.0.3

Optimization: Memory Search

  • 🔍 recall search supports OR/AND tag matching modes, fixing missed results with multi-tag searches
  • 🔍 Semantic search + tag filter defaults to OR matching (broader), tags-only browsing keeps AND matching (more precise)
📋 v0.2.x and earlier changelog

See CHANGELOG-archive.md

License

Apache-2.0

About

aivectormemory 是一款基于 Model Context Protocol (MCP) 开发的OpenClaw、OpenCode、ClaudeCodeAI记忆管理工具。它专门为 Claude、OpenCode、Cursor 和 主流IDE 编程工具设计,通过向量数据库技术解决 AI 在不同对话会话中「健忘」的问题。aivectormemory: A lightweight MCP Server enabling persistent, cross-session memory for AI-powered IDEs via vector search.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors