MeMesh
MeMesh 是跑在你自己電腦上的 AI Agent 協作層。記憶、指定收件人的訊息和改善提案,都放在同一個 SQLite 檔案裡。Claude Code、Codex、Cursor、Gemini,或你自己接的本機模型,都能透過 MCP、HTTP 或 CLI 使用;不綁單一廠商,也不用先把資料送上雲端。開源、MIT 授權、免費使用。
Documentação
MeMesh
Uma camada de colaboração local para agentes de codificação de IA.
Um único arquivo SQLite. Sem Docker. Sem necessidade de nuvem.
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 chamarremember; 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_statepara registrar uma meta declarada, próximo passo, bloqueio ou conclusão, emessagepara 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
| Plataforma | Como | Notas |
|---|---|---|
| Claude Code | Plugin: hooks, ferramentas MCP, habilidade /memesh | Captura e recordação automáticas completas |
| Codex CLI | Plugin, ou servidor MCP (memesh-mcp) | Instalação de plugin sem configuração, ou codex mcp add memesh -- memesh-mcp |
| Gemini CLI | Servidor MCP (memesh-mcp) | gemini mcp add -s user memesh memesh-mcp |
| Cursor, Cline e outros clientes MCP | Servidor 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 Agent | Plugin nativo de provedor de memória | docs/platforms/hermes-agent.md |
| OpenClaw | Plugin nativo de memória | Somente fonte; não publicado nem testado ao vivo: docs/platforms/openclaw.md |
| Seus próprios scripts e aplicativos | API HTTP de memesh serve | docs/platforms/universal.md |
| ChatGPT, Gemini web e outros chats hospedados | API HTTP através de uma ponte local que você executa | docs/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, digitarmemeshem um terminal dizcommand not foundaté que você também executenpm 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:
forgetarquiva 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_packagepara 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
| Ferramenta | O que faz |
|---|---|
work_package | Prepara 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. |
remember | Armazena 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) |
recall | Busca local FTS5 com pontuação multifatorial (relevância, recência, frequência, confiança, impacto de recordação) |
forget | Arquiva suavemente (nunca exclui) ou remove 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á — meta, próximo passo, bloqueio, o que acabou de ser concluído |
briefing | A 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_patterns | Analisa seus padrões de trabalho — agenda, ferramentas, pontos fortes, áreas de aprendizado |
improvement | Prepara uma melhoria de produto vinculada a evidências para revisão humana, ou lê seu status; agentes não podem aceitar ou rejeitar |
message | Descobre 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 setupmanual é 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-sessionpermanece 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 relatanative_message_too_large, um roteador local inacessível relatarouter_unreachable, e outras sessões indisponíveis ou rejeitadas relatamrecipient_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 reportmostra 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
--projectcopiado 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