MeMesh

MeMesh 是跑在你自己電腦上的 AI Agent 協作層。記憶、指定收件人的訊息和改善提案,都放在同一個 SQLite 檔案裡。Claude Code、Codex、Cursor、Gemini,或你自己接的本機模型,都能透過 MCP、HTTP 或 CLI 使用;不綁單一廠商,也不用先把資料送上雲端。開源、MIT 授權、免費使用。

Documentação

🌐 English | 繁體中文

MeMesh

Uma camada de colaboração local para agentes de codificação de IA.
Um único arquivo SQLite. Sem Docker. Sem necessidade de nuvem.

npm MIT Node MCP


O que ele faz

Alternar entre sessões ou agentes de codificação pode significar repetir uma decisão, explicar a mesma arquitetura ou revisitar uma correção que já foi encontrada.

O MeMesh permite que agentes compartilhem memória e troquem mensagens localmente. Seus principais usos são: carregar suas preferências, decisões e lições entre sessões; enviar trabalho, perguntas, progresso e resultados entre agentes; e manter um registro de onde o trabalho parou para que uma sessão posterior tenha contexto para verificar. Claude Code e Codex são exemplos principais; Cursor e outros clientes MCP podem usar as integrações documentadas. A captura e entrega automáticas dependem da integração do host abaixo.

   you work with the agent
            |
            v
   +------------------+      +------------------+
   |  Claude Code     |      |  Claude Code     |
   |  capture         |      |  recall          |
   |  sessions,       | ---> |  at session      |
   |  commits, fixes  |      |  start and       |
   |  (automatic)     |      |  before edits    |
   +------------------+      +------------------+
            |                         ^
            v                         |
   +----------------------------------------+
   |  ~/.memesh/knowledge-graph.db           |
   |  decisions, lessons, links between them |
   +----------------------------------------+
  • Captura, lembretes, recordações e salvaguardas no momento certo. O MeMesh inclui 10 hooks (dez comandos de hook) em suas integrações com Claude Code e Codex: nove hooks do Claude Code são executados no início da sessão, antes de edições de arquivos, após git commit, após um plano ser aprovado ou uma pergunta ser respondida, quando o Claude para (duas vezes: capturando o conhecimento da sessão e bloqueando a parada uma vez por mensagem de agente pendente), antes da compactação de contexto, quando você diz "lembre disto" (5 idiomas) e antes de um comando arriscado que repete uma lição aceita. Os hooks de plano/pergunta e "lembre disto" apenas lembram o agente de chamar remember; o décimo comando lida com Codex SessionStart e SessionEnd para registrar e encerrar uma sessão CLI Codex comum elegível.
  • Uma memória para todas as suas ferramentas. Uma decisão armazenada no Claude Code está disponível para Codex ou Cursor no dia seguinte.
  • Agentes podem deixar mensagens uns para os outros. Uma caixa de entrada durável sobrevive a reinicializações; no macOS ou Linux, uma thread CLI Codex comum com o plugin MeMesh pode manter uma janela de fila nativa pós-turno limitada e consumir a mensagem aceita quando essa mesma thread for retomada.
  • Mantenha um registro de trabalho. O Claude Code pode salvar sua resposta substantiva mais recente para a próxima sessão no mesmo projeto. O briefing nomeia uma fonte de handoff conhecida do Claude Code ou Codex, para que a resposta de outro host seja distinguível; substituir um handoff atualiza seu autor. Use task_state para registrar uma meta declarada, próximo passo, bloqueio ou conclusão, e message para enviar locais de evidências ou perguntas de acompanhamento a um destinatário exato.
  • Um painel para navegar por tudo: 4 abas, 11 idiomas, em http://localhost:3737/dashboard.

Funciona com

PlataformaComoNotas
Claude CodePlugin: hooks, ferramentas MCP, habilidade /memeshCaptura e recordação automáticas completas
Codex CLIPlugin, ou servidor MCP (memesh-mcp)Instalação de plugin sem configuração, ou codex mcp add memesh -- memesh-mcp
Gemini CLIServidor MCP (memesh-mcp)gemini mcp add -s user memesh memesh-mcp
Cursor, Cline e outros clientes MCPServidor MCP (memesh-mcp)Aponte o cliente para memesh-mcp; um cliente que não reporta raiz de workspace também precisa de MEMESH_PROJECT_ROOT
Hermes AgentPlugin nativo de provedor de memóriadocs/platforms/hermes-agent.md
OpenClawPlugin nativo de memóriaSomente fonte; não publicado nem testado ao vivo: docs/platforms/openclaw.md
Seus próprios scripts e aplicativosAPI HTTP de memesh servedocs/platforms/universal.md
ChatGPT, Gemini web e outros chats hospedadosAPI HTTP através de uma ponte local que você executadocs/platforms/README.md

Os nove hooks do Claude Code fornecem captura automática, recordação, lembretes e salvaguardas. O plugin Codex carrega o mesmo arquivo de hook: uma vez que o Codex possa executar os hooks do plugin, seu hook SessionStart injeta o mesmo bloco de memória e inicia o companheiro de mensagens para threads CLI comuns elegíveis. Quais dos outros hooks disparam sob Codex ainda não foi verificado. Com o plugin Codex, chame briefing apenas quando esse bloco estiver ausente; em clientes somente MCP, chame briefing no início da sessão. Use recall para perguntas específicas.

Recordação e captura são locais e determinísticas: busca SQLite FTS5, ferramentas de memória explícitas e hooks baseados em regras. Esta versão não configura nem chama um provedor de LLM, embeddings ou vetores. Configurações de provedores aposentados de versões anteriores permanecem no disco, mas são ignoradas; memesh doctor nomeia as chaves de nível superior sem ler ou imprimir seus valores.


Instalação

Instalações de plugin e a CLI global npm compartilham um único banco de dados. A maioria dos usuários do Claude Code quer o plugin mais a CLI; o Codex pode usar seu próprio plugin ou o servidor MCP da CLI.

   Claude Code chat                Terminal, Codex, Cursor
         |                                  |
         v                                  v
   +-----------------+              +------------------+
   | A: plugin       |              | B: npm global    |
   | /plugin install |              | npm install -g   |
   | hooks + tools   |              | memesh CLI       |
   | + /memesh skill |              | + memesh-mcp     |
   +-----------------+              +------------------+
         |                                  |
         +---------------+------------------+
                         v
            ~/.memesh/knowledge-graph.db
               (one file, both paths)

A. Dentro do Claude Code (hooks, ferramentas e a habilidade /memesh são configurados para você):

/plugin marketplace add PCIRCLE-AI/memesh
/plugin install memesh@pcircle-memesh

Reinicie o Claude Code. Uma linha ◉ MeMesh aparece no topo da próxima sessão.

B. Em um terminal (requer Node 22.13+):

npm install -g @pcircle/memesh
memesh doctor          # checks local install health and prints fixes
memesh install-hooks   # only if you skipped A: wires Claude Code, keeps your own hooks

Para uma instalação Codex sem configuração, execute codex plugin marketplace add PCIRCLE-AI/memesh e codex plugin add memesh@pcircle-memesh. A alternativa manual é codex mcp add memesh -- memesh-mcp. Para Cursor, adicione { "mcpServers": { "memesh": { "command": "memesh-mcp" } } } a ~/.cursor/mcp.json. Um cliente que não reporta raiz de workspace precisa de MEMESH_PROJECT_ROOT (o diretório absoluto do projeto) no ambiente do servidor, ou um argumento project em cada chamada. O banner do médico no painel pode aplicar os dois reparos locais recuperáveis que sabe verificar; ele nunca altera arquivos apenas porque a página foi aberta.

O plugin não instala a CLI. Após /plugin install, digitar memesh em um terminal diz command not found até que você também execute npm install -g @pcircle/memesh. Se você usa apenas o chat do Claude Code, somente A é suficiente.

Atualização: Plugin Claude Code: memesh upgrade-plugin (ou npx @pcircle/memesh upgrade-plugin sem a CLI). Plugin Codex: codex plugin marketplace upgrade pcircle-memesh && codex plugin add memesh@pcircle-memesh. CLI global npm: memesh update. Instalando com um agente de IA? Aponte-o para llms-install.md.


Começando

memesh remember "Login uses OAuth 2.0 with PKCE"
memesh recall "login"
# -> finds the note

memesh briefing        # what the agent knows about this project
memesh serve           # starts the local server and prints the dashboard URL

Mantenha memesh serve em execução e abra a URL impressa. No Claude Code, você nem precisa do terminal para ferramentas de memória: diga "lembre disto" no chat e, assim que houver algo para mostrar, o briefing chega sozinho no início da sessão.

Duas coisas que valem a pena saber quando você tiver memórias:

  • forget arquiva uma memória em vez de excluí-la. Uma memória mais recente pode substituir uma mais antiga.
  • Um agente em execução pode chamar work_package para preparar um resumo de calendário ou turnos visíveis limitados da transcrição recente elegível do Claude Code. O modo de transcrição exige a raiz de arquivo MCP única correspondente do cliente; raízes ausentes ou ambíguas e falhas de varredura limitada falham de forma segura. O envio retém turnos de origem editados e apenas prepara para revisão humana pendente; agentes não podem aplicar ou rejeitar, e o MeMesh não chama nenhum provedor. Os limites exatos de descoberta estão na referência da API.

Para um handoff, o hook Stop do Claude Code salva sua resposta substantiva mais recente como uma nota de projeto substituível. Uma nota recente e confiável aparece antes das memórias classificadas na próxima sessão do Claude Code e em briefing em qualquer cliente; é um lembrete para verificar, não uma garantia de reinício de tarefa. Registre apenas o estado de trabalho que você realmente conhece com task_state e envie locais de evidências ou perguntas de acompanhamento com message (guia de mensagens entre agentes). Uma mensagem armazenada está disponível para recuperação, mas entrega, busca e aceitação de fila nativa não significam que o destinatário concluiu a tarefa.

No briefing, decisões recentes do projeto têm prioridade sobre atividade rotineira, e até cinco lições do projeto são selecionadas separadamente. O handoff, o estado de tarefa exibido, memórias classificadas, memória global em full e o índice injetado compartilham um limite de bloco de memória de 4000 caracteres. Se o índice disser que mais memórias foram omitidas, use recall; memesh briefing --index mostra o índice independente sob seus limites separados de 40 linhas/3072 bytes.

Referência completa de comandos e ferramentas: docs/api/API_REFERENCE.md. Como é construído: docs/ARCHITECTURE.md. Contribuindo: CONTRIBUTING.md.


Todas as 12 Ferramentas de Memória e Coordenação

FerramentaO que faz
work_packagePrepara um resumo de calendário não confiável limitado ou pacote de transcrição do Claude Code sob uma raiz de workspace MCP correspondente; envia um resultado estrito para revisão humana pendente, ou adia sem alteração durável. O envio de transcrição retém turnos de origem editados limitados; nenhum caminho de arquivo, raciocínio oculto, provedor, embedding ou dado vetorial é exposto.
rememberArmazena conhecimento como observações, relações e tags — ou passe texto livre como note e o título, observações e nome são derivados; replace corrige uma memória no lugar; uma nova decisão precisa de why (sua razão e o que a faria deixar de valer)
recallBusca local FTS5 com pontuação multifatorial (relevância, recência, frequência, confiança, impacto de recordação)
forgetArquiva suavemente (nunca exclui) ou remove observações específicas
exportFaz backup, migra ou move memórias como JSON entre agentes compatíveis
importImporta memórias com estratégias de mesclagem (pular / sobrescrever / anexar)
learnRegistra lições estruturadas de erros (erro, causa raiz, correção, prevenção)
task_stateLê ou registra onde o trabalho está — meta, próximo passo, bloqueio, o que acabou de ser concluído
briefingA topologia de trabalho montada para qualquer cliente MCP — um handoff de projeto elegível precede memórias classificadas em todos os níveis; minimal então mostra as decisões, lições, conhecimento e atividade recente deste projeto, além de memórias sem projeto; standard adiciona estado de tarefa recente e um índice de memória durável limitado; e full adiciona outros projetos e memória global; project + recipient exatos podem revelar apenas as entregas não buscadas daquele destinatário
user_patternsAnalisa seus padrões de trabalho — agenda, ferramentas, pontos fortes, áreas de aprendizado
improvementPrepara uma melhoria de produto vinculada a evidências para revisão humana, ou lê seu status; agentes não podem aceitar ou rejeitar
messageDescobre agentes ativos e troca mensagens não confiáveis de destinatário exato. Payload JSON durável máx.: 64 KiB; envelope nativo completo máx.: 16 KiB com falhas distintas de native_message_too_large e recipient_unavailable. Aceitação nativa, descoberta, sondagem e busca nunca implicam confirmação ou disposição

As letras miúdas

Classificação pontuada — Resultados classificados por relevância (30%) + recência (25%) + frequência (18%) + confiança (17%) + impacto de recordação (10%).

Mensagens entre agentes, as regras exatas (guia completo: docs/platforms/agent-messaging.md):

  • Funciona hoje: um remetente via MCP, HTTP ou CLI pode enviar de forma durável um único payload codificado em JSON não confiável de no máximo 65.536 bytes UTF-8 (64 KiB) para um destinatário local nomeado. Um receptor pode buscá-lo separadamente, retomar de um cursor opaco após reinicialização e registrar ingestão, confirmação, disposição do fluxo de trabalho e ativação do host como fatos separados.
  • Com o plugin MeMesh Codex habilitado, cada thread CLI Codex comum iniciada ou retomada com uma identidade de thread válida e diretório de trabalho existente registra-se automaticamente sob uma identidade com escopo de thread; nenhum agent setup manual é necessário. SessionStart lança um companheiro privado do proprietário. SessionEnd mantém uma janela de fila ociosa limitada de 45 segundos, a retomada substitui a geração exata anterior e a expiração remove o registro. Uma mensagem aceita durante essa janela ociosa chega ao thread como um aviso curto quando o mesmo thread é retomado, e o agente então busca o corpo na caixa de entrada; não é uma afirmação de que uma UI interrompida foi despertada. memesh agent setup codex-session permanece disponível apenas quando um workspace precisa de um principal nomeado estável. O envelope nativo completo, incluindo metadados de roteamento e payload, é limitado separadamente a 16.384 bytes (16 KiB). Um envio de sessão exata retorna sucesso somente após essa fila nativa aceitá-lo; um envelope completo superdimensionado relata native_message_too_large, um roteador local inacessível relata router_unreachable, e outras sessões indisponíveis ou rejeitadas relatam recipient_unavailable. Dados de recuperação com escopo permanecem duráveis para todas as falhas do lado do remetente e do destinatário. Alvos principais retêm comportamento durável de armazenar e encaminhar. Aceitação nativa não é confirmação ou disposição, e mensagens nativas não devem conter segredos.
  • Uma sessão Codex interrompida, ausente ou desconectada não é despertada ou substituída, e uma entrega nativa de sessão exata com falha não é reproduzida automaticamente; o remetente deve tentar novamente deliberadamente. Seus dados de recuperação com escopo permanecem disponíveis; memesh message storage report mostra o que está armazenado. Entrega nativa funciona apenas em macOS e Linux.
  • Este caminho nativo documentado cobre o Codex CLI comum. Não assuma que o Codex Desktop ou uma tarefa não anexada registra-se a menos que essa sessão exata em execução apareça em message discover; isso é um limite de evidência, não uma afirmação de que esses hosts são universalmente incompatíveis.
  • Emparelhar o Claude Channel com registro automático do Codex não precisa de nenhum valor --project copiado entre os dois: cada host deriva seu próprio projeto de roteamento de seu próprio diretório de trabalho (Claude) ou --workspace (Codex), então iniciar ambos no mesmo repositório os coloca no mesmo projeto automaticamente.

Licença MIT