MeMesh
MeMesh 是跑在你自己電腦上的 AI Agent 協作層。記憶、指定收件人的訊息和改善提案,都放在同一個 SQLite 檔案裡。Claude Code、Codex、Cursor、Gemini,或你自己接的本機模型,都能透過 MCP、HTTP 或 CLI 使用;不綁單一廠商,也不用先把資料送上雲端。開源、MIT 授權、免費使用。
Documentação
MeMesh
Memória compartilhada e coordenação local durável para agentes de codificação.
Um único arquivo SQLite. Sem Docker. Sem necessidade de nuvem.
MeMesh é a camada de colaboração local de código aberto para agentes de codificação de IA: memória compartilhada, mensagens duráveis com destinatário exato e propostas governadas de memória para produto para Claude Code, Codex, Cursor, agentes personalizados ou baseados em Ollama, e clientes MCP locais compatíveis. Um único arquivo SQLite. Sem Docker. Sem necessidade de nuvem.
Novas superfícies de colaboração
messageoferece aos agentes locais uma caixa de entrada durável com destinatário exato, recuperação de cursor e recibos explícitos via MCP, HTTP e CLI.improvementtransforma memórias ativas em propostas de trabalho de produto com evidências vinculadas, que os agentes podem preparar, mas apenas um humano pode aceitar ou rejeitar.
Instalação
No Claude Code — digite estes comandos no chat (hooks, ferramentas de memória e a habilidade /memesh são configurados automaticamente):
/plugin marketplace add PCIRCLE-AI/memesh
/plugin install memesh@pcircle-memesh
Reinicie o Claude Code. Uma linha de status ◉ MeMesh no topo da sua próxima sessão significa que está capturando.
Em um terminal — a CLI memesh, o painel e o servidor memesh-mcp para Codex / Cursor e clientes MCP locais compatíveis (requer Node 22.13+):
npm install -g @pcircle/memesh
memesh doctor # verifies this install end to end
A maioria dos usuários do Claude Code acaba querendo ambos — eles compartilham um único banco de dados e nunca entram em conflito. Detalhes, outros agentes e atualizações: Comece aqui.
Instalando por meio de um agente de IA? Aponte-o para llms-install.md — etapas determinísticas com verificação por etapa. Após a instalação, AGENTS.md informa como usar o memesh corretamente.
O Problema
Seu agente de codificação não apenas esquece fatos entre sessões — ele repete trabalho. Ele re-propõe a abordagem que você rejeitou no mês passado, tropeça no mesmo teste que falha, redescobre a restrição que quebrou a produção em março e pede que você re-explique a arquitetura que ele ajudou a projetar.
Isso não é um problema de histórico de chat; é um problema de memória do agente. O que precisa sobreviver entre sessões é o trabalho: decisões com suas razões, falhas com suas correções e os vínculos entre eles.
MeMesh é essa memória. Hooks capturam-na do que o agente realmente faz (sessões, commits, falhas — não anotações manuais), a recordação a injeta no momento em que o agente age (início da sessão, antes de edições de arquivos), e a camada de grafo de conhecimento a mantém honesta ao longo do tempo (substituição, detecção de conflitos julgada por LLM). Instale com npm, a memória vive em ~/.memesh/knowledge-graph.db, conecte-se ao Claude Code ou a qualquer cliente compatível com MCP.
[!IMPORTANT] Em desenvolvimento ativo — recursos podem mudar entre versões. Abra uma issue para bugs ou solicitações de recursos.
Colaboração Local de Agentes, com Transparência
MeMesh tem uma vantagem real entre agentes: cada host conectado à mesma instância local do MeMesh pode compartilhar memória durável, enquanto a ferramenta message fornece um caminho explícito de mensagens com destinatário exato via MCP, HTTP e CLI.
O runtime opcional de wakeup nativo do host com segurança aprimorada atualmente suporta macOS e Linux. O núcleo da memória do MeMesh, o armazenamento durável de mensagens e as ferramentas MCP permanecem disponíveis no Windows; o wakeup nativo do host no Windows ainda não é suportado.
- Funciona hoje: um remetente via MCP, HTTP ou CLI pode enviar de forma durável para um destinatário local nomeado. Um receptor pode buscar o payload separadamente, retomar de um cursor opaco após reiniciar e registrar recebimento, confirmação, disposição do fluxo de trabalho e ativação do host como fatos separados.
- Com o plugin MeMesh Codex habilitado e o opt-in privado do proprietário
memesh agent setup codex-session, uma sessão ativa do Codex no workspace local configurado exato recebe um wakeup nativomemesh_message_availablesem polling ou lembrete humano. O marcador contém apenas metadados de roteamento; o Codex então busca o payload durável com a ferramenta com escopomessage. - Uma admissão bem-sucedida na fila (
host_accept) significa apenas que a fila local do Codex aceitou o marcador. Não significa que um agente leu o payload, confirmou-o ou aceitou o trabalho. - O armazenamento durável de mensagens é limitado pela política do proprietário, não por exclusão silenciosa:
memesh message storage reportexpõe payload lógico, linhas protegidas, páginas SQLite reutilizáveis e tamanho do WAL; a poda limitada é dry-run por padrão e apenas marca como tombstone payloads terminais antigos. UmMEMESH_AGENT_MESSAGE_STORAGE_QUOTA_BYTESopcional rejeita um envio atomicamente. Veja armazenamento limitado e retenção de auditoria. - Uma sessão do Codex parada, ausente ou desconectada não é despertada ou substituída. Sua caixa de entrada durável permanece disponível para auditoria e recuperação;
pollememesh message watchsão caminhos de compatibilidade e diagnóstico. A entrega nativa nunca retoma uma sessão de modelo parada, executa um payload ou implica confirmação. - Limite de confiança cooperativo: o nome do destinatário é um ID de roteamento lógico, não um login por agente ou ACL. Todo chamador com acesso à mesma instância local do MeMesh deve ser tratado como um participante confiável do workspace; adaptadores de host ainda aplicam suas próprias permissões e regras de aprovação humana.
- Limite do adaptador: o wakeup nativo descrito aqui é o caminho configurado da sessão local do Codex. Outros loops MCP locais podem usar as operações de mensagem durável que seu próprio loop de host suporta; isso não é uma afirmação universal de suporte de host.
Veja Guia de Mensagens Locais entre Agentes para o ciclo de vida exato, limite de capacidade, matriz de suporte e trabalho restante do adaptador.
Transforme a experiência do agente em trabalho de produto revisado
A ferramenta improvement converte memórias ativas e lições em uma proposta de melhoria de produto com evidências vinculadas, em vez de deixar feedback valioso enterrado em uma caixa de entrada. Agentes podem propor e inspecionar status, mas não podem aprovar suas próprias ideias. Um humano aceita ou rejeita por meio das superfícies de revisão existentes; a aceitação preserva cada memória de origem, vincula o item de trabalho revisado de volta às suas evidências e o torna visível em briefings futuros de projeto. Isso mantém o aprendizado acionável sem transformar silenciosamente uma sugestão de agente em política de produto.
Caminhos de instalação em resumo
MeMesh tem dois caminhos de instalação que coexistem. A maioria dos usuários quer ambos. Eles gravam no mesmo banco de dados de memória (~/.memesh/knowledge-graph.db), então memórias capturadas no chat do Claude Code aparecem no seu shell, e vice-versa.
flowchart TB
classDef client fill:#1f2937,stroke:#4b5563,color:#f9fafb,stroke-width:1px
classDef pathA fill:#1e3a8a,stroke:#3b82f6,color:#eff6ff,stroke-width:2px
classDef pathB fill:#14532d,stroke:#22c55e,color:#f0fdf4,stroke-width:2px
classDef db fill:#7c2d12,stroke:#f97316,color:#fff7ed,stroke-width:2px
subgraph clients["Where you use memesh from"]
direction LR
CC["Claude Code<br/>(chat + agent)"]:::client
TERM["Terminal / other<br/>MCP clients<br/>(Codex, Cursor...)"]:::client
end
subgraph paths["Two install paths"]
direction LR
A["<b>Path A — /plugin install</b><br/>───────────────<br/>Lives in <code>~/.claude/plugins/</code><br/><br/>• MCP tools in chat<br/>• Auto-capture hooks<br/>• <code>/memesh</code> skill<br/>• Session-start banner"]:::pathA
B["<b>Path B — npm install -g</b><br/>───────────────<br/>Lives in <code>$(npm prefix -g)/bin/</code><br/><br/>• <code>memesh</code> shell command<br/>• <code>memesh-mcp</code>, <code>-http</code> bins<br/>• For Cursor / Cline / other MCP"]:::pathB
end
DB[("Shared memory DB<br/><code>~/.memesh/knowledge-graph.db</code><br/>Same data, both paths see it")]:::db
CC -->|uses| A
TERM -->|uses| B
A --> DB
B --> DB
Qual você precisa?
| O que você quer fazer | Caminho de instalação |
|---|---|
Usar a habilidade /memesh dentro de uma conversa no Claude Code | Caminho A (plugin) |
| Obter captura automática (sessões → lições → recordação) no Claude Code | Caminho A (plugin) |
Executar memesh remember / memesh recall / memesh doctor em qualquer terminal | Caminho B (npm-global) |
Abrir o painel local via memesh serve (sem atraso de busca npx) | Caminho B (npm-global) |
Conectar memesh-mcp ao Codex CLI, Cursor ou outro cliente MCP local | Caminho B (npm-global) |
| Tudo acima | Instale ambos — eles não entram em conflito |
⚠️ Instalar o plugin NÃO instala a CLI
Esta é a confusão mais comum. Leia isto uma vez e você evitará o ciclo:
/plugin install memesh@pcircle-memeshde dentro do Claude Code → instala apenas o Caminho A. Oferece ferramentas MCP, hooks e a habilidade/memesh. NÃO colocamemeshno seuPATHdo shell.memesh reindex/memesh update/memesh doctordigitados em um terminal normal → requer Caminho B (npm-global). Sem ele:zsh: command not found: memesh.- Configuração recomendada para usuários do Claude Code: instale ambos. Eles coexistem, compartilham o mesmo banco de dados e nunca entram em conflito.
# After /plugin install ..., also run this:
npm install -g @pcircle/memesh
Se você usa memesh apenas pelo chat do Claude Code (nunca digita memesh em um terminal), o Caminho A sozinho é suficiente. Todos os outros: instale ambos.
Comece em 60 Segundos
Opção A — Plugin do Claude Code (instalação em uma linha)
Se você usa Claude Code, instale MeMesh como um plugin de dentro da CLI:
/plugin marketplace add PCIRCLE-AI/memesh
/plugin install memesh@pcircle-memesh
O Claude Code conecta hooks, habilidades e o servidor MCP automaticamente. Você obtém captura automática na sessão, recordação proativa, a habilidade /memesh (lembrar / recordar / aprender / esquecer) dentro da conversa do Claude Code, e remember / recall / forget / learn disponíveis como ferramentas MCP para o agente.
Verifique: reinicie o Claude Code e inicie qualquer sessão. Uma linha de status como ◉ MeMesh ready · no memories for "your-project" yet aparece no topo — essa linha É o plugin funcionando; nenhum comando separado é necessário. (Depois que você tiver memórias, ela mostra contagens em vez disso.)
O servidor MCP é executado diretamente da saída compilada incluída no plugin — sem busca npx, sem etapa de build e nada para compilar. O memesh armazena seus dados por meio de node:sqlite, que faz parte do próprio Node (22.13+), então uma atualização do Node não pode deixá-lo com um binário compilado para o runtime errado.
Isto instala apenas o plugin. Você pode executar comandos CLI via
npx @pcircle/memesh <command>se absolutamente não quiser uma instalação global, mas digitarmemeshsimples em um terminal relatarácommand not found. Para obter um comando realmemeshno shell, execute também a Opção B abaixo — ambos os caminhos coexistem e compartilham o mesmo banco de dados de memória. O diagrama "Caminhos de instalação em resumo" acima cobre isso.
Opção B — npm global (otimização opcional)
Se você quer o binário diretamente no seu PATH do shell (para que memesh, memesh-mcp, etc. simples funcionem em qualquer terminal sem a busca npx por chamada), ou se você quer expor memesh-mcp como um comando stdio de caminho fixo para clientes MCP que não são Claude Code (Codex CLI, Cursor, Cline, fluxos somente terminal):
npm install -g @pcircle/memesh
Notas de primeira instalação (uma vez):
- Nenhum compilador necessário — o mecanismo de banco de dados é o próprio
node:sqlitedo Node.sqlite-vec, que adiciona busca baseada em significado, é distribuído como um arquivo pré-compilado para macOS (arm64/x64), Linux (x64/arm64) e Windows x64; em qualquer outra plataforma ele simplesmente está ausente e a recordação permanece na busca por palavras-chave. Nada aqui executa um script de instalação, entãonpm install --ignore-scriptsinstala um memesh totalmente funcional.- A busca semântica (baseada em significado) é opcional — o caminho de recordação padrão é a busca por palavras-chave FTS5, que não requer modelo nem download. A busca baseada em significado precisa de um embedder: execute Ollama localmente ou configure um embedder em nuvem (veja "Traga seus próprios embeddings" abaixo). Sem um, o memesh usa apenas busca por palavras-chave.
Etapa 1.5: Conecte MeMesh ao Claude Code (apenas caminho npm)
Se você instalou via Opção A (/plugin install memesh@pcircle-memesh), pule esta etapa — o Claude Code conecta os hooks do plugin automaticamente.
Se você instalou via Opção B (npm install -g), a CLI está no seu PATH — mas nada está conectado ao Claude Code ainda: o pacote npm deliberadamente não executa scripts de instalação, e o plugin (Opção A) é o que registra o servidor MCP e os hooks dentro do Claude Code. O que o caminho npm pode conectar por conta própria são os hooks de sessão. Sem eles, você ainda pode usar memesh remember / recall manualmente, mas o loop de captura automática (sessões → lições → recordação na próxima sessão) fica silencioso.
memesh setup # checks local host wiring and reports what it finds
Ou as etapas individuais manualmente:
memesh install-hooks # adds memesh's hooks to ~/.claude/settings.json
memesh setup --check # machine-level verification: reads the hosts' own config, changes nothing
Os hooks coexistem com quaisquer hooks personalizados que você já tenha em ~/.claude/hooks/ — install-hooks escreve entradas aditivas e nunca sobrescreve as suas. Para remover depois: memesh uninstall-hooks.
Mesma memória do Codex CLI, Cursor e outros clientes MCP
memesh-mcp é um servidor MCP stdio simples, então qualquer host compatível com MCP pode falar com ele — não apenas Claude Code. Com a Opção B instalada (memesh-mcp no seu PATH), registre-o uma vez por host:
# OpenAI Codex CLI — writes [mcp_servers.memesh] into ~/.codex/config.toml
codex mcp add memesh -- memesh-mcp
Para o Cursor, adicione o mesmo servidor stdio em ~/.cursor/mcp.json (global) ou
.cursor/mcp.json (específico do projeto):
{
"mcpServers": {
"memesh": { "command": "memesh-mcp" }
}
}
Cada host local configurado lê e grava o mesmo ~/.memesh/knowledge-graph.db, então uma memória armazenada de um agente pode ser recuperada no Codex, Cursor ou outro cliente MCP. Verifique pelo host pedindo que ele chame a ferramenta recall, ou pelo terminal:
codex mcp list # memesh should be listed as enabled
Use
memesh-mcp, nãonpx -p @pcircle/memesh, como o comando configurado.npx -presolve para o pacote local sempre que o diretório de trabalho do host estiver dentro de um checkout deste repositório, executando silenciosamente o estado atual da árvore de trabalho em vez da versão instalada.
Integração nativa: Hermes Agent
Hermes Agent (NousResearch) tem um sistema de plugins MemoryProvider de primeira parte — o MeMesh se integra no mesmo nível dos backends de memória integrados do Hermes (honcho, mem0, hindsight), não como uma ponte HTTP. Diferente do modo MCP, onde você chama ferramentas manualmente, o sistema de provedores do Hermes executa recall/remember automaticamente a cada turno.
A integração mapeia os hooks prefetch() e sync_turn() do Hermes diretamente na API HTTP do MeMesh. Guia completo com estrutura de código do provedor, configuração e quatro armadilhas reais de uma implantação ao vivo: docs/platforms/hermes-agent.md
Integração nativa: OpenClaw
OpenClaw tem um sistema de plugins de capacidade de memória de primeira parte — o MeMesh se integra como um provedor de memória nativo no mesmo nível dos backends integrados do OpenClaw (LanceDB), não como uma ponte HTTP. O plugin registra via api.registerMemoryCapability() e expõe as ferramentas memory_recall/memory_store/memory_forget além de recuperação automática no hook before_prompt_build.
Diferença chave do Hermes: a captura automática do OpenClaw é limitada por limite (máx. 3 memórias/turno quando acionada), não a cada turno. A integração mapeia a API HTTP do MeMesh (/v1/recall, /v1/remember, /v1/forget). Contrato completo do plugin TypeScript, formato de configuração e armadilhas: docs/platforms/openclaw.md
Passo 2: Armazene uma decisão
Os exemplos de bash abaixo assumem que
memeshestá no seuPATH(Opção B). Usuários da Opção A (somente plugin) têm dois caminhos equivalentes: pergunte na conversa do Claude Code (a habilidade/memesh+ ferramentas MCP cobrem os mesmos fluxos), ou substituamemeshpornpx @pcircle/memeshem qualquer shell — mesmas flags, sem necessidade de instalação global.
memesh remember "Use OAuth 2.0 with PKCE for the new auth"
Ou use a forma explícita quando quiser um nome e tipo estáveis para filtragem posterior:
memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
Passo 3: Recupere depois
memesh recall "login security"
# → Finds "OAuth 2.0 with PKCE" even though you searched different words
É isso. O MeMesh agora está lembrando e recuperando entre sessões.
Se quiser verificar a instalação e a conexão local de ponta a ponta:
memesh doctor
Abra o painel para explorar sua memória:
memesh serve
Veja o que ele lembrou
A qualquer momento, um comando imprime o que seu agente sabe sobre o projeto atual — onde o trabalho parou, decisões, lições, atividade recente (embrulhado como dados de referência):
memesh briefing
Where "your-project" was left off (today):
- Goal: Ship the payment retry logic
- Next: Open the PR once CI is green
Decisions and direction for "your-project":
- [decision] Use FTS5 as the retrieval baseline
Este mesmo bloco é o que o Claude Code recebe automaticamente no início da sessão, e o que qualquer outro cliente MCP obtém da ferramenta briefing — o agente começa orientado em vez de reler o repositório, e você para de reexplicar a semana passada. O painel (memesh serve) é a visão visual completa.
Seus dados
- Um arquivo local. Tudo vive em
~/.memesh/knowledge-graph.db— SQLite, no seu disco. Sem conta na nuvem; nada sai da sua máquina a menos que você configure um embedder ou LLM na nuvem. - Backup = copiar esse arquivo. Restaurar = copiar de volta.
- Pause a captura a qualquer momento:
export MEMESH_AUTO_CAPTURE=false. - Exclua tudo: remova
~/.memesh/.
Para Quem É Isso?
| Se você é... | O MeMesh ajuda você a... |
|---|---|
| Um desenvolvedor usando Claude Code | Recuperar automaticamente decisões do projeto, lições específicas de arquivos e falhas passadas enquanto trabalha |
| Um usuário avançado de agentes de codificação | Compartilhar uma camada de memória local e um padrão de caixa de entrada local confiável entre ferramentas compatíveis com MCP |
| Um indivíduo usando Codex, Cursor, Claude Code ou outro cliente MCP | Usar uma camada de memória local entre agentes e sessões, e coordenar transferências através do armazenamento compartilhado |
| Um desenvolvedor integrando um agente | Adicionar memória local via MCP, HTTP ou CLI |
Projetado Primeiro para Agentes de Codificação
|
Claude Code / Desktop
Ferramentas MCP + hooks do Claude Code |
Qualquer Cliente HTTP
|
Qualquer LLM (formato OpenAI)
Cole ferramentas em qualquer chamada de API |
Por que não OpenMemory, Cursor Memories, Mem0 ou Zep?
| MeMesh | OpenMemory | Cursor Memories | Mem0 | Zep / Graphiti | |
|---|---|---|---|---|---|
| Melhor para | Memória local para agentes de codificação | Memória MCP local/entre clientes | Memória de projeto nativa do Cursor | Memória gerenciada de app/agente | Grafos de conhecimento temporais |
| Formato de instalação | npm install -g @pcircle/memesh | Fluxo de app/servidor local | Integrado ao Cursor | API na nuvem / SDK / MCP | Configuração de serviço/framework |
| Armazenamento | Um arquivo SQLite local | Pilha de memória local | Regras/memórias gerenciadas pelo Cursor | Pilha hospedada ou auto-hospedada | Banco de dados de grafo |
| Nuvem necessária | Não | Não para modo local | Depende da conta/configurações do Cursor | Sim para a plataforma | Geralmente sim/auto-hospedado |
| Hooks do Claude Code | Primeira classe | Ferramentas MCP | Não | Ferramentas MCP | Não específico do Claude Code |
| Painel | Integrado | Integrado | Configurações do Cursor | Painel da plataforma | Ferramentas de plataforma/grafo |
| Tradeoff | Cunha local simples, não escala empresarial | Pegada de app local mais ampla | Preso ao Cursor | Plataforma gerenciada forte, menos local-first | Modelo de grafo forte, configuração mais pesada |
O MeMesh troca infraestrutura gerenciada de escala empresarial por configuração local instantânea, armazenamento inspecionável e hooks de fluxo de trabalho para agentes de codificação.
Benchmarks — 95,60% R@5 no LongMemEval-S
A recuperação do MeMesh é apenas FTS5 — sem LLM, sem embeddings no caminho crítico. Medido contra o benchmark público LongMemEval-S (500 perguntas, licença MIT):
| Sistema | R@5 | Fonte |
|---|---|---|
MeMesh (Modo A, via recallEnhanced()) | 95,60% | benchmarks/longmemeval/RESULTS.md |
| MemPalace | 96,6% | Autorrelato do fornecedor |
| Supermemory | ~82% | Estimativa do fornecedor |
| Zep | 63,8% | Artigo do LongMemEval |
| Mem0 | 49,0% | Artigo do LongMemEval |
Re-executável em ~10 segundos. Instruções completas, SHA256 do conjunto de dados, resultados brutos por pergunta e análise de falhas conhecidas: benchmarks/longmemeval/REPRODUCE.md.
O Que Acontece Automaticamente no Claude Code
Você não precisa lembrar de tudo manualmente. O MeMesh tem 8 hooks que capturam e injetam conhecimento enquanto você trabalha:
| Quando | O que o MeMesh faz |
|---|---|
| A cada início de sessão | Carrega suas memórias mais relevantes + avisos proativos de lições passadas |
| Antes de editar arquivos | Recupera memórias ligadas ao arquivo ou projeto antes de o Claude escrever código |
| Quando você pede para lembrar | Detecta intenção de "lembre disso" / "guardar en memesh" / "sauvegarder dans memesh" / "記下來" (5 idiomas) e lembra o Claude de usar o memesh |
Após cada git commit | Registra o que você mudou, com estatísticas de diff |
| Quando o Claude para | Captura arquivos editados, erros corrigidos e gera automaticamente lições estruturadas a partir de falhas |
| Antes da compactação de contexto | Salva conhecimento antes que seja perdido pelos limites de contexto |
| Antes de comandos e edições arriscados | Dispara os guardiões de lições que você aceitou — um aviso no momento exato em que um erro registrado está prestes a se repetir |
| Quando uma sessão do Codex com opt-in inicia ou retoma | Registra esse thread ativo exato para wakeups de mensagem do MeMesh apenas com metadados; outros workspaces e sessões paradas não são anexados |
Desative a qualquer momento:
export MEMESH_AUTO_CAPTURE=false
Configuração
Toda a configuração é via variáveis de ambiente. Os padrões são apenas locais e zero-rede — você não precisa definir nada para obter um sistema funcional.
| Variável | Padrão | O que faz |
|---|---|---|
MEMESH_DB_PATH | ~/.memesh/knowledge-graph.db | Substitui a localização do banco de dados SQLite. |
MEMESH_AUTO_CAPTURE | true | Desativa completamente os hooks de captura automática (Stop, PreCompact). |
MEMESH_AUTO_DETECT_LLM | não definido (auto-detecção ativada) | Defina como 0 para impedir que o memesh use uma chave de API encontrada no seu ambiente de shell. Por padrão, se ANTHROPIC_API_KEY / OPENAI_API_KEY / OLLAMA_HOST estiver definido e você não configurou um provedor em ~/.memesh/config.json, o memesh o usa para recursos de LLM no lado de escrita (extração de lições, auto-tagging, dream). Os embeddings não são afetados — eles permanecem apenas por palavras-chave (FTS5) a menos que você defina explicitamente embedder.provider como ollama ou openai. |
MEMESH_AUTO_UPDATE | off | Política de auto-atualização. off (padrão) nunca atualiza automaticamente; patch permite X.Y.Z → X.Y.Z+N; minor adiciona X.Y.Z → X.Y+1.0; major permite qualquer aumento. Quando permitido, um npm install -g destacado dispara no final da sessão (hook Stop) para nunca bloquear seu trabalho — os resultados vão para ~/.memesh/auto-update.log. Também configurável como autoUpdate em ~/.memesh/config.json (env vence). Um aviso de depreciação do mantenedor nunca substitui off: atualize manualmente ou escolha uma política que permita o aumento. |
OPENAI_API_KEY | não definido | Sua chave OpenAI. Usada automaticamente para recursos de LLM, a menos que você defina MEMESH_AUTO_DETECT_LLM=0 ou configure um provedor explicitamente. |
OLLAMA_HOST | http://localhost:11434 | Substitui o endpoint do Ollama ao usar um provedor Ollama local. |
memesh doctor imprime a configuração resolvida para que você veja o que está ativo.
Provedores LLM de fallback (Modo Inteligente). No painel Configurações → "Provedores de fallback" você pode definir uma cadeia ordenada de failover — o memesh tenta cada provedor por vez quando seu principal está fora. Adicione um fallback local Ollama, ou um na nuvem (OpenAI / Anthropic, com chave de API). Tradeoff de privacidade: quando um fallback na nuvem é usado, o texto da memória — que pode ser privado — é enviado a esse provedor, então isso importa se você roda apenas local por privacidade.
Quando o npm sinaliza uma versão instalada como depreciada (tipicamente um aviso de segurança), o próximo início de sessão adiciona um banner forte ⚠️ MeMesh <ver> is DEPRECATED e memesh update-status mostra a mesma linha até você atualizar. A verificação é armazenada em cache em ~/.memesh/update-check.<version>.json para que uma falha de rede transitória não possa diminuir o aviso.
Painel
5 abas, 11 idiomas, zero dependências externas. Acesse em http://localhost:3737/dashboard quando o servidor estiver rodando.
| Aba | O que você vê |
|---|---|
| Início | O que o memesh fez por você — insights do dreamer em destaque: resumos semanais e propostas de padrões com aceitar/rejeitar em um clique; a pilha completa de análises (Pontuação de Saúde da Memória, linha do tempo de 30 dias, velocidade de PM + conectividade KG, padrões de trabalho) se dobra em um expansor sob demanda |
| Memórias | Toda a biblioteca em uma superfície — filtro instantâneo mais Enter para busca ranqueada pelo servidor (texto completo + vetorial), chips de escopo para a camada de trabalho (metas/decisões/lições/planos) vs evidência vs tudo vs arquivado, barra de composição de cluster, detalhe expansível por linha (lições mantêm sua visão estruturada de erro/causa raiz/correção/prevenção), arquivar/restaurar inline |
| Projeto | O histórico de um projeto — a visão de roadmap (fases, marcos, lições-chave) atrás de um seletor de projeto |
| Grafo | Grafo de conhecimento interativo com força direcionada, filtros de tipo, busca, modo ego, mapa de calor de recência |
| Configurações | Configuração do provedor LLM, seletor de idioma instantâneo |
Recursos Inteligentes
🧠 Busca Inteligente — Pesquise "segurança de login" e encontre memórias sobre "OAuth PKCE". O MeMesh usa FTS5 + sqlite-vec no caminho crítico, sem LLM, e o complemento vetorial ainda alcança palavras relacionadas.
🌏 Busca em idiomas sem espaços — Chinês, japonês, coreano, tailandês, laosiano, khmer e katakana de meia largura são indexados como pares de caracteres sobrepostos, então uma memória escrita como 「資料庫遷移前一定要先備份」 é encontrada ao buscar 「備份」 — não apenas pelo texto completo exato. O texto é normalizado (NFC) tanto na gravação quanto na consulta, então memórias digitadas no macOS ou com IME coreano ou vietnamita são encontradas em qualquer grafia.
📊 Classificação Pontuada — Resultados classificados por relevância (30%) + recência (25%) + frequência (18%) + confiança (17%) + impacto de recall (10%).
🔄 Evolução do Conhecimento — Decisões mudam. forget arquiva memórias antigas (nunca exclui). supersedes relações vinculam antigo → novo. Sua IA sempre vê a versão mais recente.
⚠️ Detecção de Conflitos — memesh dream conflicts faz o LLM julgar seus pares de memórias semanticamente mais próximos quanto a contradição, substituição ou duplicação, e encaminha o que encontrar como propostas. Nada se aplica automaticamente: você revisa com dream list / dream show, e somente uma proposta aceita cria a relação — após o que todo recall que tocar em qualquer uma das memórias carrega o aviso. Causalidade nunca é inferida de timestamps; os veredictos vêm do que as memórias realmente dizem.
🕸️ Conectividade do Grafo de Conhecimento — memesh kg backfill-relations --all-rules vincula entidades órfãs usando co-ocorrência de tags, agrupamento por projeto, contexto de sessão e similaridade de nomes — sem necessidade de LLM.
📦 Backup e migração pessoal — memesh export > memesh-backup.json → copie para outra máquina → memesh import memesh-backup.json
Pacotes importados permanecem pesquisáveis, mas o MeMesh não injeta automaticamente memórias importadas no contexto do host até que você as revise ou armazene novamente localmente.
Exemplo de Uso
"O MeMesh lembrou que escolhemos PKCE em vez de fluxo implícito há três semanas. Quando perguntei ao Claude sobre autenticação novamente, ele já sabia — sem precisar reexplicar." — Desenvolvedor solo, criando um SaaS
"Armazenei uma decisão do Claude Code e a recuperei no Codex no dia seguinte. A mesma memória local acompanhou meu trabalho em vez de um único agente." — Desenvolvedor solo usando múltiplos agentes de codificação
"O painel me mostrou que 90% das minhas memórias eram logs de sessão gerados automaticamente. Comecei a usar
rememberdeliberadamente para decisões de arquitetura. Mudou o jogo." — Desenvolvedor que descobriu o painel de análises
Receitas
Capture uma contradição antes que ela morda
Duas decisões, tomadas com semanas de diferença, que não podem ser ambas verdadeiras — o modo de falha que uma camada de memória existe para capturar:
memesh remember --name retry-policy --type decision \
--obs "All HTTP clients retry failed requests up to 5 times with exponential backoff."
# ...weeks later, someone decides the opposite...
memesh remember --name retry-policy-v2 --type decision \
--obs "HTTP clients must never retry automatically — fail fast and surface the error."
memesh dream conflicts # the judge flags the pair, with its reasoning
memesh dream show 1 # read the verdict, the excerpts, what accepting creates
memesh dream accept 1 # YOU decide — nothing is ever linked automatically
memesh recall "retry policy" # → Warning: Conflicts detected
A partir daí, qualquer assistente que recuperar qualquer uma das decisões é informado de que elas conflitam — em vez de citar com confiança aquela que encontrar primeiro.
Uma memória, três assistentes
O MeMesh é um servidor MCP, então o mesmo arquivo SQLite atende a todos os clientes MCP na máquina. Registre-o uma vez por ferramenta (comandos exatos em Comece Aqui) e uma decisão registrada no Claude Code é recuperada pelo Codex ou outro cliente MCP local configurado no meio da sessão — sem reexplicar, sem copiar e colar contexto entre fornecedores.
Registre decisões para que permaneçam encontráveis
A captura automática mantém o histórico da sessão, mas as memórias que valem a pena são as deliberadas:
memesh remember --name auth-approach --type decision \
--obs "JWT with RS256; PKCE over implicit flow because the client is public." \
--tags "project:myapp" "topic:auth"
Depois, vincule consequências às suas causas conforme elas acontecem — de qualquer cliente MCP,
em palavras simples: "lembre deste incidente como uma lição, influenciado por
abordagem-de-autenticação". A ferramenta remember aceita relações de forma livre, e caused /
influenced são o vocabulário causal documentado (causa → efeito, declarado
explicitamente — o MeMesh nunca infere causalidade de timestamps). Semanas depois,
memesh recall "why did we pick PKCE" retorna a decisão com suas consequências registradas
anexadas — raciocínio que você pode seguir, não apenas texto que correspondeu.
Desbloqueie o Modo Inteligente (Opcional)
O MeMesh funciona offline por padrão — o recall permanece estritamente sem LLM (95,60% R@5 no LongMemEval-S pronto para uso). Adicione uma chave de API LLM somente se quiser fluxos de análise aprimorados por LLM por cima: extração de sessão mais inteligente, marcação automática de novas memórias, geração de lições a partir de falhas e compressão dream:
memesh config set llm.provider anthropic
memesh config set llm.api-key sk-ant-...
Ou use a aba Configurações do painel (configuração visual):
memesh serve # opens dashboard → Settings tab
Transforme suas sessões passadas em memória. memesh dream run --from-transcripts lê as transcrições de sessão do Claude Code deste projeto, pede ao LLM as decisões e lições enterradas na conversa e as encaminha como propostas — nada entra no seu grafo automaticamente. Revise cada uma com memesh dream show <id> e aceite as que valem a pena manter. Para executá-lo em um agendamento, habilite memesh config set transcriptMining true e aponte uma entrada cron/launchd para memesh dream run --from-transcripts --if-due — ele se autolimita (padrão: uma vez a cada 24h por projeto) e permanece apenas em modo de proposta. Veja API_REFERENCE.
Busca semântica / embeddings (opcional)
Por padrão, o MeMesh faz recall somente por palavras-chave (FTS5) — sem chave de API, sem download de modelo, nada sai da sua máquina. A busca semântica (baseada em significado) é opcional e precisa de um embedder. Aponte um destes para ele:
memesh config set embedder.provider ollama # local, needs `ollama serve`
# or, for a hosted embedder:
memesh config set embedder.provider openai
O embedder é configurado independentemente do LLM de chat — alterar llm.provider nunca altera silenciosamente seus embeddings. Cada provedor fixa seu próprio modelo e largura (ollama → nomic-embed-text em 768, openai → text-embedding-3-small em 1536); o modelo não é selecionável separadamente, porque um índice vetorial é fixado em uma largura e um segundo modelo colocaria vetores de um espaço de embedding diferente nele.
Se você mudar para um embedder com dimensão diferente (ex.: 768 → 1536), nada é excluído. O MeMesh mantém o índice existente e informa ao abrir para executar memesh reindex, que constrói o novo índice ao lado do antigo e alterna somente quando cada memória tiver um vetor — então uma reconstrução interrompida não custa nada e retoma de onde parou. Durante essa janela, a busca semântica fica desligada e o recall roda apenas com busca por palavras-chave; recall relata isso como degraded em vez de sugerir que pesquisou. Valores suportados de embedder.provider: ollama (local), openai (hospedado). Com nenhum definido, o recall permanece na busca por palavras-chave.
| Nível 0 (padrão) | Nível 1 (Modo Inteligente) | |
|---|---|---|
| Busca | FTS5 + sqlite-vec, 95,60% R@5 | inalterado — recall é sem LLM em todos os níveis |
| Captura automática | Padrões baseados em regras | + LLM extrai decisões e lições |
| Marcação automática | Somente tags manuais | + LLM gera tags para novas memórias |
| Análise de falhas | Não disponível | + LLM converte erros de sessão em lições estruturadas |
| Compressão | Não disponível | dream comprime memórias verbosas |
| Custo | Grátis, sem chave de API | ~$0,0001 por chamada de análise (Haiku) |
Todas as 11 Ferramentas de Memória e Coordenação
| Ferramenta | O que faz |
|---|---|
remember | Armazena conhecimento com observações, relações e tags |
recall | Busca FTS5 + sqlite-vec com pontuação multifatorial (relevância, recência, frequência, confiança, impacto de recall) — sem LLM no caminho crítico |
forget | Arquivamento suave (nunca exclui) ou remoção de observações específicas |
export | Faz backup, migra ou move memórias como JSON entre agentes compatíveis |
import | Importa memórias com estratégias de mesclagem (pular / sobrescrever / anexar) |
learn | Registra lições estruturadas de erros (erro, causa raiz, correção, prevenção) |
task_state | Lê ou registra onde o trabalho está — objetivo, próximo passo, bloqueio, o que acabou de ser concluído |
briefing | A topologia de trabalho montada — o mesmo bloco que o Claude Code recebe no início da sessão, para qualquer cliente MCP |
user_patterns | Analisa seus padrões de trabalho — agenda, ferramentas, pontos fortes, áreas de aprendizado |
improvement | Encaminha uma melhoria de produto vinculada a evidências para revisão humana, ou lê seu status; agentes não podem aceitá-la ou rejeitá-la |
message | Envia, consulta, busca e confirma explicitamente mensagens duráveis de destinatário exato em uma única instância local do MeMesh |
Arquitetura
┌─────────────────┐
│ Core Engine │
│ operations │
└────────┬────────┘
┌─────────────────┼─────────────────┐
│ │ │
CLI (memesh) HTTP API (serve) MCP (memesh-mcp)
│ │ │
└─────────────────┼─────────────────┘
│
SQLite + FTS5 + sqlite-vec
(~/.memesh/knowledge-graph.db)
O núcleo é agnóstico de framework. A mesma lógica roda a partir do terminal, HTTP ou MCP.
Atualização
O marketplace de plugins do Claude Code fixa versões no momento da instalação e não atualiza automaticamente. Para obter uma nova versão:
Opção A — interface /plugin: desinstale memesh@pcircle-memesh e reinstale. O Claude Code busca a versão mais recente do marketplace.
Opção B — um comando (sem cliques na interface, idempotente; requer o CLI npm, npm install -g @pcircle/memesh):
memesh upgrade-plugin
Ele encontra a versão instalada do seu plugin, verifica os pré-requisitos e executa o script de atualização incluído para você. Pré-requisitos: node, npm e rsync no seu PATH (macOS inclui rsync; Debian/Ubuntu: sudo apt install rsync).
Usuários somente de plugin sem o CLI npm ainda podem executar o script manualmente — substitua sua versão instalada no caminho:
bash ~/.claude/plugins/cache/pcircle-memesh/memesh/<current-version>/scripts/upgrade-plugin.sh
# Installs from before v4.2.5 don't contain the script yet; use the
# npm-global copy instead (see "Install paths at a glance" above):
bash "$(npm prefix -g)/lib/node_modules/@pcircle/memesh/scripts/upgrade-plugin.sh"
O script avança o cache do marketplace, prepara a nova versão em ~/.claude/plugins/cache/, instala dependências de runtime e re-aponta installed_plugins.json. Reinicie o Claude Code depois para que o servidor MCP reconecte.
Instalações globais via npm (npm install -g @pcircle/memesh) podem se autoatualizar via memesh update. Checkouts de código-fonte: git pull && npm install && npm run build.
O início da sessão exibe um banner de uma linha (limitado a uma vez a cada 24h por versão) quando uma versão mais recente está disponível, e memesh doctor informa o alvo de atualização com o comando específico do canal.
Contribuindo
git clone https://github.com/PCIRCLE-AI/memesh
cd memesh && npm install && npm run build
npm test
npm run test:e2e-dashboard
Painel: cd dashboard && npm install && npm run dev
MIT — Feito por PCIRCLE AI