EchoVault Memory

io.github.go-ports由 GitHub 账号 go-ports 发布v0.3.3更新于 Oct 24, 2026

Local-first memory for coding agents; stores decisions, bugs, and context across sessions.

发布方自己的服务:Memory.fit

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

面向编码代理的本地优先记忆服务器,把决策、缺陷与上下文以 Markdown 保存在本机,并支持跨会话保存、搜索和重新加载。

可以做什么
保存记忆,包括标题、原因、影响、标签和分类,并支持结构化详情模板或详情文件,之后可按 ID 或前缀删除。用关键词与可选语义向量混合搜索记忆,并获取某条结果的完整详情。在会话开始时加载既有上下文,列出当前项目的记忆和会话文件。让 Claude Code、Cursor、Codex 与 OpenCode 共用一个记忆库,并通过命令行管理记忆目录和嵌入配置。
适用场景
当你希望编码代理把决策、缺陷历史和项目上下文从一个会话带到下一个会话,又不依赖云服务时,适合安装。若你同时使用多个代理并希望它们共享一个可用 Markdown 浏览的记忆库,也很有用。
运行要求
以 stdio 作为本地进程运行;Go 版本是单一静态二进制文件,从源码构建需要 C 编译器,因为要链接 SQLite 库。需先初始化记忆库并安装代理配置。环境变量 MEMORY_HOME 指定存储目录,应指向持久化存储。语义搜索可选依赖本地 Ollama,或在配置文件中填写 OpenAI 或 OpenRouter 的 API 密钥。
安装前请注意
服务器会向磁盘写入记忆文件和 SQLite 索引,且代理被指示自动保存和检索,项目细节可能在无提示下被持久化,请按需检查或删除已存记忆。密钥脱敏基于模式匹配,可能漏掉凭据,避免保存敏感内容。配置 OpenAI 或 OpenRouter 会把嵌入请求发送到其服务器;要完全本地运行请使用 Ollama。

安装

在 SourceWeft 中

  1. 打开 控制台中的 EchoVault Memory,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[EchoVault]

EchoVault — Go

Local memory for coding agents. Your agent remembers decisions, bugs, and context across sessions — no cloud, no API keys, no cost.

Install · Features · How it works · Commands


This is the Go port of EchoVault. It is a single static binary with no Python runtime dependency. The vault format and MCP interface are fully compatible with the Python version — you can switch between them without losing any memories.

Features

Works with 4 agents — Claude Code, Cursor, Codex, OpenCode. One command sets up MCP config for your agent.

MCP native — Runs as an MCP server exposing memory_save, memory_search, and memory_context as tools. Agents call them directly — no shell hooks needed.

Local-first — Everything stays on your machine. Memories are stored as Markdown in ~/.memory/vault/, readable in Obsidian or any editor.

Zero idle cost — No background processes, no daemon, no RAM overhead. The MCP server only runs when the agent starts it.

Hybrid search — FTS5 keyword search works out of the box. Add Ollama or OpenAI for semantic vector search.

Secret redaction — 3-layer redaction strips API keys, passwords, and credentials before anything hits disk. Supports explicit <redacted> tags, pattern detection, and custom .memoryignore rules.

Cross-agent — Memories saved by Claude Code are searchable in Cursor, Codex, and OpenCode. One vault, many agents.

Obsidian-compatible — Session files are valid Markdown with YAML frontmatter. Point Obsidian at ~/.memory/vault/ and browse your agent's memory visually.

Install

Pre-built binary

Download the latest release for your platform from the releases page and place the binary somewhere on your $PATH.

Build from source

bash
git clone https://github.com/go-ports/echovault.gitcd echovaultmake build          # produces ./bin/memorysudo cp bin/memory /usr/local/bin/

CGO required. The binary links against go-sqlite3 and sqlite-vec, so a C compiler (gcc/clang) must be present. On macOS: xcode-select --install. On Debian/Ubuntu: apt install build-essential.

First run

bash
memory initmemory setup claude-code   # or: cursor, codex, opencode

That's it. memory setup installs the MCP server config automatically.

By default the config is installed globally. To install for a specific project:

bash
cd ~/my-projectmemory setup claude-code --project   # writes .mcp.json in project rootmemory setup opencode --project      # writes opencode.json in project rootmemory setup codex --project         # writes .codex/config.toml + AGENTS.md

Configure embeddings (optional)

Embeddings enable semantic search. Without them, you still get fast keyword search via FTS5.

Generate a starter config:

bash
memory config init

This creates ~/.memory/config.yaml with sensible defaults:

yaml
embedding:  provider: ollama              # ollama | openai | openrouter  model: nomic-embed-text
context:  semantic: auto                # auto | always | never  topup_recent: true

What each section does:

  • embedding — How memories get turned into vectors for semantic search. ollama runs locally; openai and openrouter call cloud APIs. nomic-embed-text is a good local model for Ollama.
  • context — Controls how memories are retrieved at session start. auto uses vector search when embeddings are available, falls back to keywords. topup_recent also includes recent memories so the agent has fresh context.

For cloud providers, add api_key under the provider section. API keys are redacted in memory config output.

Configure memory location

By default, EchoVault stores data in ~/.memory.

You can change that in two ways:

  • MEMORY_HOME=/path/to/memory (highest priority, per-shell/per-process)
  • memory config set-home /path/to/memory (persistent default)

Useful commands:

bash
memory config set-home /path/to/memorymemory config clear-homememory config

memory config shows both memory_home and memory_home_source (env, config, or default).

The --memory-home global flag overrides everything for a single invocation:

bash
memory --memory-home /tmp/test-vault search "authentication"

Usage

Once set up, your agent uses memory via MCP tools:

  • Session start — agent calls memory_context to load prior decisions and context
  • During work — agent calls memory_search to find relevant memories
  • Session end — agent calls memory_save to persist decisions, bugs, and learnings

The MCP tool descriptions instruct agents to save and retrieve automatically. No manual prompting needed in most cases.

You can also use the CLI directly:

bash
memory save --title "Switched to JWT auth" \  --what "Replaced session cookies with JWT" \  --why "Needed stateless auth for API" \  --impact "All endpoints now require Bearer token" \  --tags "auth,jwt" --category "decision" \  --details "Context:Options considered:- Keep session cookies- Move to JWTDecision:Tradeoffs:Follow-up:"
memory search "authentication"memory details <id>memory context --project

For long details, use --details-file notes.md. To scaffold structured details automatically, use --details-template.

How it works

~/.memory/├── vault/                    # Obsidian-compatible Markdown│   └── my-project/│       └── 2026-02-01-session.md├── index.db                  # SQLite: FTS5 + sqlite-vec└── config.yaml               # Embedding provider config
  • Markdown vault — one file per session per project, with YAML frontmatter
  • SQLite index — FTS5 for keywords, sqlite-vec for semantic vectors
  • Compact pointers — search returns ~50-token summaries; full details fetched on demand
  • 3-layer redaction — explicit tags, pattern matching, and .memoryignore rules

Supported agents

AgentSetup commandWhat gets installed
Claude Codememory setup claude-codeMCP server in .mcp.json (project) or ~/.claude.json (global)
Cursormemory setup cursorMCP server in .cursor/mcp.json
Codexmemory setup codexMCP server in .codex/config.toml + AGENTS.md fallback
OpenCodememory setup opencodeMCP server in opencode.json (project) or ~/.config/opencode/opencode.json (global)

All agents share the same memory vault at your effective memory_home path (default ~/.memory/). A memory saved by Claude Code is searchable from Cursor, Codex, or OpenCode.

Commands

CommandDescription
memory initCreate vault at effective memory home
memory setup <agent>Install MCP server config for an agent
memory uninstall <agent>Remove MCP server config for an agent
memory save ...Save a memory (--details-file and --details-template supported)
memory search "query"Hybrid FTS + semantic search
memory details <id>Full details for a memory
memory delete <id>Delete a memory by ID or prefix
memory context --projectList memories for current project
memory sessionsList session files
memory configShow effective config
memory config initGenerate a starter config.yaml
memory config set-home <path>Persist default memory location
memory config clear-homeRemove persisted memory location
memory reindexRebuild vectors after changing provider
memory mcpStart the MCP server (stdio transport)

Global flags

FlagDescription
--memory-home <path>Override memory home for this invocation
--helpShow help for any command

Uninstall

bash
memory uninstall claude-code   # or: cursor, codex, opencoderm /usr/local/bin/memory

To also remove all stored memories: rm -rf ~/.memory/

Privacy

Everything stays local by default. If you configure OpenAI or OpenRouter for embeddings, those API calls go to their servers. Use Ollama for fully local operation.

License

MIT — see LICENSE.

来源:README.md,提交 cc0802b

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.3.3最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Memory 集成