memo

io.github.jagoff由 GitHub 账号 jagoff 发布v4.16.0更新于 Oct 24, 2026

Memory for AI agents — MLX (Apple Silicon) or CPU (Linux), sqlite-vec + BM25, zero cloud.

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

概览

AI 生成的概览

面向编程助手的本地离线记忆服务器:把决策和笔记存为 Markdown,并让助手按语义搜索和回忆。

可以做什么
保存、编辑、重命名、删除和列出以纯 Markdown 文件保存的记忆,SQLite 仅作可重建的索引。通过向量加 BM25 的混合检索按语义搜索和回忆,可选重排序。按过去某个日期查询当时的记忆、对比两个日期,并扫描相互矛盾或已过时的事实。执行重建索引、去重、合并以及夜间优化流水线等维护任务。构建实体与关联的知识图谱,并导入、导出、备份或将记忆同步到你自己的 git 远程仓库。
适用场景
当你长期使用编程助手、希望它记住过去的决策、约定和上下文,又不愿把内容发往云端服务时适合添加。也适合希望记忆是可读、可版本控制的文件而非不透明数据库的用户。
运行要求
以 mlx-memo Python 包(memo-mcp)通过 stdio 在本机运行,需要 Python 3.13 或更高版本。完整功能需要 Apple Silicon 上的 macOS;Linux 和 Docker 使用 CPU 后端,不支持 Intel Mac。首次安装需下载约 8 GB 模型。无需 API 密钥或账号,Obsidian 仓库为可选。
安装前请注意
安装脚本会自动接入 MCP 客户端并可能修改客户端配置,运行前请先审阅。记忆会被写入,维护命令也可能删除或清理内容。只有在你配置后,同步才会把记忆发送到 git 远程仓库。远程更新检查和自动更新需显式开启。

安装

在 SourceWeft 中

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

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

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[memo — local memory for AI]

memo

Your coding agent starts every session with amnesia. memo fixes that — 100% on your own machine.

Persistent, searchable memory for Claude Code, Codex, Cursor, Cline, Devin, and OpenCode. No cloud, no API keys, no Ollama, no vector DB to run. And it spends fewer tokens, not more.

[PyPI] [Downloads] [License: MIT] [MCP] [MCP Toplist]

[mlx-memo MCP server on mcprush: security A, high access, no sign-in, works with 14 clients] [memo MCP server rated A on Glama: tool definitions rated A, 60 tools]

[Save a fact once — every later session recalls it automatically, all stored locally.]


Install

bash
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bash

Prefer a package manager? uv tool install mlx-memo · pipx install mlx-memo · brew tap jagoff/memo && brew install mlx-memo

Then:

bash
memo doctor                                   # self-checkmemo save 'we use Postgres, not Mongo'        # save a decisionmemo search 'what database did we pick?'      # search by meaning

That's it. Your agents pick it up over MCP automatically — the installer wires every client it finds.

Installing on another Mac or handing setup to an agent?

New Mac:

bash
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bashmemo sync bootstrap [email protected]:yourname/memo-sync.git

Agent-managed setup:

bash
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bashmemo doctor --strict-runtime

On Linux or just want to look around first?

bash
docker run --rm ghcr.io/jagoff/memo:latest memo doctor

Why this saves you money

Most memory servers add context. memo is built to remove it.

ProfileToolsSchema tokens
agent (default)43~9.7k
core / slim60~13.2k
full / default165~30.6k

The default MCP surface is 43 tools, not 165 — 74% fewer tools, and about 68% less schema context: 43 tools / ~9.7k schema tokens versus 165 tools / ~30.6k tokens on the full surface — overhead paid every session, in every client.

Ambient recall injects one relevant memory before the model answers. The bundled Claude Code hook caps that injection at ~160 tokens. memo roi reports the real grounding and re-ask counts — the estimated-savings figure it used to print was removed in 4.14.0, because multiplying those counts by hardcoded constants was a savings claim memo could not support. For measured savings, memo tokens reads the provider's own usage counters through the context-compression proxy.

bash
memo roi       # value from grounded recalls and avoided re-asksmemo tokens    # usage-savings ledger

Three things nothing else does

🕰️ Time-machine — query your knowledge as it was

bash
memo as-of ask "what was the deploy strategy?" --date 2026-02-01memo diff --from 2026-01-01 --to 2026-03-01

Full historical reconstruction by reverse-replaying history.db. Useful when you need to know why past-you made a call, not just what past-you decided.

⚡ Contradiction radar — memory that notices when you change your mind

bash
memo contradict scan      # find conflicting facts corpus-widememo contradict triage    # resolve: fuse / newer-wins / dismiss

Change a decision and memo flags the now-stale version, so the agent stops reintroducing what you already threw out.

🔮 Dream — it optimizes itself while you sleep

bash
memo dream run

A 7-phase nightly pipeline: inventory → mine signals → resolve conflicts → prune stale → synthesize cross-cluster insights → optimize → pre-warm the top-100 query embeddings so tomorrow's recall stays under 200 ms. Every run writes a receipt you can audit. Zero intervention.


How it works

Hybrid retrieval. A vector leg (MLX on Apple Silicon, sentence-transformers on CPU) and a BM25 leg (FTS5, diacritic-folding for Spanish) run in parallel, fuse via Reciprocal Rank Fusion, then go through an optional MLX cross-encoder rerank.

[vector + keyword search in parallel, fused, reranked, top memory injected]

Markdown is the source of truth. Every memory is a plain .md file you can read, grep, and version-control. SQLite is a derived index that rebuilds from the files at any time — hand-edit in Obsidian and your edit wins on the next memo reindex. Nothing is locked in a database you can't open.

Prompts and memories stay on your machine. Embedder, reranker, and LLM all run in-process. No telemetry. Memory travels only if you point memo sync at a git remote you own. Normal startup is fully offline; remote update checks and auto-update require an explicit opt-in. → Privacy and network policy

Also in the box: cross-agent memo resume (reopen any session from any agent), cross-Mac git sync, a knowledge graph with optional codegraph symbol edges, encrypted secret storage, OCR/audio ingestion, evidence packs, outcome learning, signed federation, and a local chat UI over your memory (memo chat serve). → Full feature reference


How it compares

Verified July 2026 against each project's own docs. Corrections welcome — open an issue and I'll fix the table.

memomem0lettacogneebasic-memorycipher
100% local, no cloud API✅⚠️⚠️⚠️✅⚠️
Time-machine (rewind to any date)✅❌⚠️❌⚠️⚠️
Contradiction detection + resolution✅⚠️⚠️❌❌❌
Autonomous nightly maintenance✅❌❌❌❌❌
Token-economy MCP profiles✅❌❌⚠️✅❌
Markdown / Obsidian as source of truth✅❌⚠️❌✅❌

✅ first-class · ⚠️ partial, config-gated, or add-on · ❌ absent

Closest comparators are basic-memory (local-first + Obsidian + MCP — same thesis) and cipher (memory for coding agents).


Requirements

Support
macOS, Apple Silicon (M1–M4)Full — MLX embedder + reranker + ask/synthesize/dream
Linux / UbuntuStandalone CPU backend — search, recall, save. pipx install "mlx-memo[cpu]" · docs/ubuntu.md
Intel MacUnsupported — current PyTorch releases do not ship Python 3.13 wheels for this platform
DockerCross-platform, CPU backend · docs/docker.md

Python ≥ 3.13 (the installer handles this via uv if you don't have it). First install pulls ~8 GB of models, 5–15 min. Optional: an Obsidian vault — without one, memo uses ~/Documents/memo/.


Docs

Install detail, installer knobs, new-Mac migrationreference.md › Install
Per-client MCP setup (Claude Desktop, Cursor, Cline, Continue)reference.md › MCP setup
Ambient recall, capture, and tuningreference.md › Ambient memory
Full CLI reference (145 commands) + memo tuireference.md › CLI
All MEMO_* flags and model profilesreference.md › Configuration
Architecture and design notesreference.md › Design
Privacy and network policyPRIVACY.md

All 145 top-level CLI commands

Complete command inventory (kept here so CI detects CLI/documentation drift)

Core: save search ask get edit rename delete list

Recall & Hooks: recall recall-hook context briefing continuity prewarm capture-tick capture-stop interject ask-gaps guard digest

Session & History: history as-of diff record-history session chat-session resume reflect mine-history episodes chronicle

Maintenance: reindex maintain review dream consolidate synthesize dedupe cross-dedup retier contradict coordinate terminal invalidate temporal compress-context ops

Analysis & Quality: health stats doctor journey-check lint drift analytics eval roi tokens token-savings usefulness gaps outcome profile confidence graduation hype definitive evidence

Knowledge Graph: graph entities entity extract-entities links version related

Advanced Search: embed rerank contextual retrieve context-pack chat chat-ask repo

Import / Export / Sync: import export backup restore sync ingest federation

Visualization: tui dashboard map logs hook-log

Setup & Config: init setup config install-mcp install-watcher uninstall-watcher install-slash install-statusline install-recall-hook install-shell-wrapper install-shims startup-banner migrate migrate-vault migrate-independence update upgrade self-update watch release onboard

Daemons: daemons recall-daemon ingest-daemon maint-daemon embed-daemon idle-daemon

Other: backend-native collaborative events feedback query mandate drift sleep-cycle operational ocr-image provenance secret verbatim mcp-command codex-badge debug-recall http-api proxy mine-git token-gate fix undo code-facts code-nudge code-health


Contributing

bash
git clone https://github.com/jagoff/memo && cd memouv pip install -e '.[dev]'

Issues and PRs welcome — see CONTRIBUTING.md. If memo is useful to you, a ⭐ genuinely helps other people find it.

MIT licensed. Built on Apple MLX, sqlite-vec, and codegraph.

来源:README.md,提交 fa0dc9c

工具

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

版本历史

1
  1. v4.16.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

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

  • 近 30 天内可连通25 分

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

  • 已声明认证方式10 分

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

  • 已列出工具15 分

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

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