aivectormemory
๐ [็ฎไฝไธญๆ](docs/README.zh-CN.md) | [็น้ซไธญๆ](docs/README.zh-TW.md) | English | [Espaรฑol](docs/README.es.md) | [Deutsch](docs/README.de.md) | [Franรงais](docs/README.fr.md) | [ๆฅๆฌ่ช](docs/README.ja.md)
<p align="center">
<img src="docs/logo.png" alt="AIVectorMemory Logo" width="200">
</p>
<p align="center">
<img src="docs/image.png" alt="AI Vector Memory Architecture" width="100%">
</p>
<h1 align="center">AIVectorMemory</h1>
<p align="center">
<strong>Give your AI coding assistant a memory โ Cross-session persistent memory MCP Server</strong>
</p>
<p align="center">
<a href="https://pypi.org/project/aivectormemory/"><img src="https://img.shields.io/pypi/v/aivectormemory?color=blue&label=PyPI" alt="PyPI"></a>
<a href="https://pypi.org/project/aivectormemory/"><img src="https://img.shields.io/pypi/pyversions/aivectormemory" alt="Python"></a>
<a href="https://github.com/Edlineas/aivectormemory/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache_2.0-green" alt="License"></a>
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-purple" alt="MCP"></a>
</p>
---
> **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 |
<p align="center">
QQ็พค๏ผ1085682431 | ๅพฎไฟก๏ผchanghuibiz<br>
ๅ
ฑๅๅไธ้กน็ฎๅผๅๅ QQ็พคๆๅพฎไฟกไบคๆต
</p>
<p align="center">
<img src="docs/003.png" alt="Login" width="100%">
<br>
<em>Login</em>
</p>
<p align="center">
<img src="docs/001.png" alt="Project Selection" width="100%">
<br>
<em>Project Selection</em>
</p>
<p align="center">
<img src="docs/002.png" alt="Overview & Vector Network" width="100%">
<br>
<em>Overview & Vector Network</em>
</p>
## ๐๏ธ 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)
```bash
# 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:
> ```bash
> brew install python
> /opt/homebrew/bin/python3 -m pip install aivectormemory
> ```
### Option 2: uvx (zero install)
No `pip install` needed, run directly:
```bash
cd /path/to/your/project
uvx aivectormemory install
```
> Requires [uv](https://docs.astral.sh/uv/getting-started/installation/) to be installed. `uvx` auto-downloads and runs the package โ no manual installation needed.
### Option 3: Manual configuration
```json
{
"mcpServers": {
"aivectormemory": {
"command": "run",
"args": ["--project-dir", "/path/to/your/project"]
}
}
}
```
<details>
<summary>๐ IDE Configuration File Locations</summary>
| 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` |
</details>
## ๐ ๏ธ 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
```bash
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 / ๆฅๆฌ่ช)
## โก 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` |
<details>
<summary>๐ Steering Rules Example (auto-generated)</summary>
```markdown
# 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`)
```
</details>
<details>
<summary>๐ Hooks Config Example (Kiro only, auto-generated)</summary>
Auto-save on session end removed. Dev workflow check (`.kiro/hooks/dev-workflow-check.kiro.hook`):
```json
{
"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"
}
}
```
</details>
## ๐จ๐ณ Users in China
The embedding model (~200MB) is auto-downloaded on first run. If slow:
```bash
export HF_ENDPOINT=https://hf-mirror.com
```
Or add env to MCP config:
```json
{
"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
### 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)
<details>
<summary>๐ v0.2.x and earlier changelog</summary>
See [CHANGELOG-archive.md](docs/CHANGELOG-archive.md)
</details>
## ๐ HTTP API
้คไบ MCP ๅ่ฎฎ๏ผ่ฟๆไพไบ HTTP API ๆฅๅฃ๏ผไพฟไบๅคไธช Agent ็ดๆฅ่ฐ็จใ
### ๅฏๅจ HTTP ๆๅกๅจ
```bash
# ้่ฆ Node.js ็ฏๅข
cd scripts
node aivectormemory-http-server.js
```
ๆๅกๅจ้ป่ฎค็ซฏๅฃ๏ผ`9081`
### API ็ซฏ็น
| ็ซฏ็น | ๆนๆณ | ๅ่ฝ |
|------|------|------|
| `/health` | GET | ๅฅๅบทๆฃๆฅ |
| `/remember` | POST | ๅญๅ
ฅ่ฎฐๅฟ |
| `/recall` | POST | ่ฏญไนๆ็ดข |
| `/forget` | POST | ๅ ้ค่ฎฐๅฟ |
| `/status` | POST | ไผ่ฏ็ถๆ |
| `/track` | POST | ้ฎ้ข่ท่ธช |
| `/task` | POST | ไปปๅก็ฎก็ |
| `/readme` | POST | README ็ๆ |
| `/auto_save` | POST | ่ชๅจไฟๅญๅๅฅฝ |
### ไฝฟ็จ็คบไพ
```bash
# ๅฅๅบทๆฃๆฅ
curl http://localhost:9081/health
# ๅญๅ
ฅ่ฎฐๅฟ
curl -X POST http://localhost:9081/remember \
-H "Content-Type: application/json" \
-d '{"content": "่ฎฐไฝ่ฟไธช้กน็ฎไฝฟ็จ Python 3.11", "tags": ["python", "config"]}'
# ่ฏญไนๆ็ดข
curl -X POST http://localhost:9081/recall \
-H "Content-Type: application/json" \
-d '{"query": "Python ็ๆฌ", "top_k": 5}'
# ๅ ้ค่ฎฐๅฟ
curl -X POST http://localhost:9081/forget \
-H "Content-Type: application/json" \
-d '{"memory_id": "xxx"}'
# ไผ่ฏ็ถๆ
curl -X POST http://localhost:9081/status \
-H "Content-Type: application/json" \
-d '{"state": {"current_task": "ๅผๅๆฐๅ่ฝ"}}'
# ้ฎ้ข่ท่ธช
curl -X POST http://localhost:9081/track \
-H "Content-Type: application/json" \
-d '{"action": "create", "title": "ไฟฎๅค Bug", "content": "xxx"}'
# ไปปๅก็ฎก็
curl -X POST http://localhost:9081/task \
-H "Content-Type: application/json" \
-d '{"action": "batch_create", "feature_id": "feature-001", "tasks": [{"title": "ไปปๅก1"}]}'
# README ็ๆ
curl -X POST http://localhost:9081/readme \
-H "Content-Type: application/json" \
-d '{"lang": "zh-CN"}'
# ่ชๅจไฟๅญๅๅฅฝ
curl -X POST http://localhost:9081/auto_save \
-H "Content-Type: application/json" \
-d '{"preferences": ["ๅๆฌข็จ Python", "ๅๆฌข็จ TypeScript"]}'
```
## License
Apache-2.0
TDQS
Scored across 8 tools
remember/recall/forget form a clean memory CRUD triad, and track/task/readme are distinct. However, auto_save ("save user preferences") overlaps conceptually with remember, which already supports user-level storage, creating a potential confusion point.
Memory tools use verbs (remember, recall, forget) while track, task, status, and readme are bare nouns, and auto_save uses verb_noun. The convention is mixed but each name is still readable and guessable.
Eight tools is a well-scoped set for a memory/session/task server, especially since track and task bundle multiple sub-actions internally. Slightly on the lean side but each tool earns its place.
Covers memory lifecycle (remember/recall/forget), session state, issue tracking, task management, and readme generation. Minor gaps like listing/exporting all memories or explicit memory update exist, but remember's auto-dedupe mitigates this.