memo
Memória de longo prazo local-first para agentes de codificação — embeddings em processo (MLX/CPU), busca híbrida vetorial+BM25, markdown como fonte da verdade. Sem nuvem, sem chaves.
Documentação
memo
Seu agente de codificação começa toda sessão com amnésia. memo resolve isso — 100% na sua própria máquina.
Memória persistente e pesquisável para Claude Code, Codex, Cursor, Cline, Devin e OpenCode. Sem nuvem, sem chaves de API, sem Ollama, sem banco vetorial para rodar. E gasta menos tokens, não mais.

Instalação
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bash
Prefere um gerenciador de pacotes? uv tool install mlx-memo · pipx install mlx-memo · brew tap jagoff/memo && brew install mlx-memo
Depois:
memo doctor # self-check
memo save 'we use Postgres, not Mongo' # save a decision
memo search 'what database did we pick?' # search by meaning
Pronto. Seus agentes detectam automaticamente via MCP — o instalador configura todos os clientes que encontrar.
Instalando em outro Mac ou delegando a configuração a um agente?
Novo Mac:
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bash
memo sync bootstrap git@github.com:yourname/memo-sync.git
Configuração gerenciada por agente:
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.16.0/install.sh | bash
memo doctor --strict-runtime
No Linux ou quer apenas explorar antes?
docker run --rm ghcr.io/jagoff/memo:latest memo doctor
Por que isso economiza dinheiro
A maioria dos servidores de memória adiciona contexto. memo foi feito para removê-lo.
| Perfil | Ferramentas | Tokens de esquema |
|---|---|---|
agent (padrão) | 43 | ~9,7k |
core / slim | 60 | ~13,2k |
full / default | 165 | ~30,6k |
A superfície MCP padrão tem 43 ferramentas, não 165 — 74% menos ferramentas e cerca de 68% menos contexto de esquema: 43 ferramentas / ~9,7k tokens de esquema versus 165 ferramentas / ~30,6k tokens na superfície completa — um custo pago a cada sessão, em todos os clientes.
A recordação ambiente injeta uma memória relevante antes de o modelo responder. O hook do Claude Code incluído limita essa injeção a ~160 tokens. memo roi relata as contagens reais de fundamentação e re-consulta — o valor estimado de economia que costumava exibir foi removido na versão 4.14.0, porque multiplicar essas contagens por constantes fixas era uma alegação de economia que memo não podia sustentar. Para economia medida, memo tokens lê os contadores de uso do próprio provedor por meio do proxy de compressão de contexto.
memo roi # value from grounded recalls and avoided re-asks
memo tokens # usage-savings ledger
Três coisas que nenhum outro faz
🕰️ Máquina do tempo — consulte seu conhecimento como ele era
memo as-of ask "what was the deploy strategy?" --date 2026-02-01
memo diff --from 2026-01-01 --to 2026-03-01
Reconstrução histórica completa por reprodução reversa de history.db. Útil quando você precisa saber por que o você do passado tomou uma decisão, não apenas o que o você do passado decidiu.
⚡ Radar de contradições — memória que percebe quando você muda de ideia
memo contradict scan # find conflicting facts corpus-wide
memo contradict triage # resolve: fuse / newer-wins / dismiss
Mude uma decisão e memo sinaliza a versão agora desatualizada, para que o agente pare de reintroduzir o que você já descartou.
🔮 Dream — otimiza-se enquanto você dorme
memo dream run
Um pipeline noturno de 7 fases: inventário → mineração de sinais → resolução de conflitos → poda de dados obsoletos → síntese de insights entre clusters → otimização → pré-aquecimento dos embeddings das 100 principais consultas para que a recordação de amanhã permaneça abaixo de 200 ms. Cada execução gera um recibo que você pode auditar. Zero intervenção.
Como funciona
Recuperação híbrida. Uma perna vetorial (MLX no Apple Silicon, sentence-transformers na CPU) e uma perna BM25 (FTS5, com dobra de diacríticos para espanhol) rodam em paralelo, fundem-se via Reciprocal Rank Fusion e passam por um re-ranqueador MLX cross-encoder opcional.
Markdown é a fonte da verdade. Cada memória é um arquivo .md simples que você pode ler, pesquisar com grep e versionar. SQLite é um índice derivado que se reconstrói a partir dos arquivos a qualquer momento — edite manualmente no Obsidian e sua edição prevalece no próximo memo reindex. Nada fica preso em um banco de dados que você não pode abrir.
Prompts e memórias permanecem na sua máquina. Embedder, re-ranqueador e LLM rodam todos em processo. Sem telemetria. A memória só viaja se você apontar memo sync para um repositório git remoto que você controla. A inicialização normal é totalmente offline; verificações de atualização remota e auto-atualização exigem aceitação explícita. → Política de privacidade e rede
Também incluído: memo resume entre agentes (reabra qualquer sessão de qualquer agente), sincronização git entre Macs, um grafo de conhecimento com arestas opcionais de símbolos de codegraph, armazenamento criptografado de segredos, ingestão de OCR/áudio, pacotes de evidências, aprendizado de resultados, federação assinada e uma interface de chat local sobre sua memória (memo chat serve). → Referência completa de recursos
Como se compara
Verificado em julho de 2026 contra a documentação de cada projeto. Correções são bem-vindas — abra uma issue e corrigirei a tabela.
| memo | mem0 | letta | cognee | basic-memory | cipher | |
|---|---|---|---|---|---|---|
| 100% local, sem API em nuvem | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ |
| Máquina do tempo (voltar a qualquer data) | ✅ | ❌ | ⚠️ | ❌ | ⚠️ | ⚠️ |
| Detecção e resolução de contradições | ✅ | ⚠️ | ⚠️ | ❌ | ❌ | ❌ |
| Manutenção noturna autônoma | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Perfis MCP econômicos em tokens | ✅ | ❌ | ❌ | ⚠️ | ✅ | ❌ |
| Markdown / Obsidian como fonte da verdade | ✅ | ❌ | ⚠️ | ❌ | ✅ | ❌ |
✅ primeira classe · ⚠️ parcial, limitado por configuração ou complemento · ❌ ausente
Os comparadores mais próximos são basic-memory (local-first + Obsidian + MCP — mesma tese) e cipher (memória para agentes de codificação).
Requisitos
| Suporte | |
|---|---|
| macOS, Apple Silicon (M1–M4) | Completo — embedder MLX + re-ranqueador + ask/synthesize/dream |
| Linux / Ubuntu | Backend CPU autônomo — busca, recordação, salvamento. pipx install "mlx-memo[cpu]" · docs/ubuntu.md |
| Intel Mac | Sem suporte — as versões atuais de PyTorch não fornecem wheels de Python 3.13 para esta plataforma |
| Docker | Multiplataforma, backend CPU · docs/docker.md |
Python ≥ 3.13 (o instalador cuida disso via uv se você não tiver). A primeira instalação baixa ~8 GB de modelos, 5–15 min. Opcional: um cofre Obsidian — sem um, memo usa ~/Documents/memo/.
Documentação
| Detalhes de instalação, opções do instalador, migração para novo Mac | reference.md › Instalação |
| Configuração MCP por cliente (Claude Desktop, Cursor, Cline, Continue) | reference.md › Configuração MCP |
| Recordação ambiente, captura e ajuste | reference.md › Memória ambiente |
Referência completa da CLI (145 comandos) + memo tui | reference.md › CLI |
Todas as flags de MEMO_* e perfis de modelo | reference.md › Configuração |
| Arquitetura e notas de design | reference.md › Design |
| Política de privacidade e rede | PRIVACY.md |
Todos os 145 comandos CLI de nível superior
Inventário completo de comandos (mantido aqui para que a CI detecte divergências entre CLI e documentação)
Núcleo: save search ask get edit rename delete list
Recordação e Hooks: recall recall-hook context briefing continuity prewarm capture-tick capture-stop interject ask-gaps guard digest
Sessão e Histórico: history as-of diff record-history session chat-session resume reflect mine-history episodes chronicle
Manutenção: reindex maintain review dream consolidate synthesize dedupe cross-dedup retier contradict coordinate terminal invalidate temporal compress-context ops
Análise e Qualidade: health stats doctor journey-check lint drift analytics eval roi tokens token-savings usefulness gaps outcome profile confidence graduation hype definitive evidence
Grafo de Conhecimento: graph entities entity extract-entities links version related
Busca Avançada: embed rerank contextual retrieve context-pack chat chat-ask repo
Importar / Exportar / Sincronizar: import export backup restore sync ingest federation
Visualização: tui dashboard map logs hook-log
Configuração e Ajustes: 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
Outros: 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
Contribuindo
git clone https://github.com/jagoff/memo && cd memo
uv pip install -e '.[dev]'
Issues e PRs são bem-vindos — veja CONTRIBUTING.md. Se memo for útil para você, uma ⭐ genuinamente ajuda outras pessoas a encontrá-lo.
Licenciado sob MIT. Construído sobre Apple MLX, sqlite-vec e codegraph.
