Pular para o conteúdo principal

Guia do Claude-Mem: memória persistente para o Claude Code

Aprenda a instalar e configurar o claude-mem, o plugin do Claude Code que dá memória persistente às suas sessões com compressão estruturada e recuperação.
Actualizado 17 de set. de 2026  · 12 min leer

Explore com IA

ChatGPTClaudePerplexity

Há algumas semanas, instalei o claude-mem em todos os meus projetos. De lá para cá, ele registrou 6.814 observações em 259 sessões, cobrindo dez bases de código diferentes — tudo guardado em um arquivo SQLite de 39 MB no meu laptop.

Antes disso, toda sessão do Claude Code começava do zero. Eu abria uma nova sessão e gastava os primeiros dez minutos reexplicando a estrutura do projeto. E aquele bug de autenticação que a gente tinha corrigido no dia anterior? O Claude não fazia ideia. Ele relia arquivos que já tinha analisado e acabava nas mesmas suposições erradas que já tínhamos corrigido.

O claude-mem é um plugin do Claude Code que resolve isso capturando o que acontece durante uma sessão e deixando tudo disponível para as próximas. 

Neste artigo, vou mostrar como ele funciona por baixo dos panos, como instalar sem cair nas armadilhas mais comuns, como ajustar para caber no seu orçamento e o que você precisa saber antes de rodá-lo em produção.

O que é o claude-mem?

O claude-mem é um plugin do Claude Code que:

  • Conecta nos eventos do ciclo de vida da sessão (início, cada chamada de ferramenta, encerramento)
  • Comprime as saídas brutas das ferramentas em observações estruturadas usando IA
  • Armazena tudo em um banco SQLite local em ~/.claude-mem/claude-mem.db
  • Injeta as partes relevantes quando você inicia uma nova sessão

Ele roda como plugin, não como um servidor MCP. 

Essa distinção importa: plugins disparam automaticamente em eventos como início da sessão e cada chamada de ferramenta, enquanto servidores MCP ficam ociosos até o Claude decidir chamá-los. 

Com uma abordagem baseada em MCP, a recuperação só acontece quando o Claude decide pedir. O claude-mem captura e injeta sem o Claude precisar escolher fazer isso.

Diagrama comparando a arquitetura de plugin vs servidor MCP para memória do Claude Code, mostrando que plugins disparam automaticamente em cada evento do ciclo de vida, enquanto servidores MCP só ativam quando o Claude decide chamá-los

Tudo fica na sua máquina, e a compressão usa a autenticação do seu Claude Code, então não é preciso chave de API ou conta separada.

Para colocar no ar, basta rodar dois comandos dentro de uma sessão do Claude Code:

/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem

Depois disso, reinicie o Claude Code. 

O erro mais comum é rodar npm install -g claude-mem, que só instala a biblioteca SDK. Os hooks não são registrados, o worker não inicia e nada funciona. 

O caminho pelo marketplace de plugins é o único que entrega a configuração completa. O único pré-requisito é Node.js 18+. Todo o resto (Bun, uv, SQLite) é instalado automaticamente na primeira execução.

Para verificar se a instalação funcionou mesmo, cheque três coisas. Primeiro, curl http://localhost:37777/api/health deve retornar {"status":"ok"}. Se falhar, o worker em background não iniciou. A causa mais comum é usar Node.js abaixo da versão 18. 

Segundo, confira se ~/.claude/hooks.json contém entradas do claude-mem. Se o arquivo não listar o claude-mem em PostToolUse e SessionStart, os hooks não foram registrados e nada será capturado, mesmo que o worker esteja vivo. 

Terceiro, abra http://localhost:37777 no navegador para ver o visualizador web, que mostra as observações chegando em tempo real enquanto você trabalha.

Painel do visualizador web do claude-mem mostrando fluxo de observações em tempo real durante uma sessão do Claude Code

A primeira sessão não injeta contexto em SessionStart porque o banco está vazio, mas as observações começam a acumular a partir da primeira chamada de ferramenta. 

Já na segunda sessão, o claude-mem terá um resumo da sessão e um lote de observações para injetar. 

Seguir esse checklist de verificação antes evita descobrir, três sessões depois, que nada foi capturado. O visualizador web é o sinal mais confiável: se você vê observações surgindo após uma chamada de ferramenta, está tudo conectado corretamente.

Como o claude-mem funciona

Depois de instalado, o claude-mem roda silenciosamente em segundo plano em cinco hooks do ciclo de vida. Entender o papel de cada um ajuda a explicar o comportamento da ferramenta.

Captura e compressão

Os cinco hooks acompanham a linha do tempo natural de uma sessão:

  • SessionStart consulta o banco e injeta um índice comprimido do trabalho recente na sua janela de contexto
  • UserPromptSubmit registra a sessão e armazena seu prompt
  • PostToolUse dispara após cada chamada de ferramenta e envia a saída bruta para um worker em background fazer a compressão
  • Stop gera um resumo em nível de sessão quando você pausa ou fica inativo
  • SessionEnd marca a sessão como concluída

Fluxo mostrando os cinco hooks do ciclo de vida do claude-mem em ordem: SessionStart injeta contexto passado, UserPromptSubmit registra o prompt, PostToolUse captura após cada chamada de ferramenta (em loop), Stop gera o resumo da sessão, SessionEnd marca a conclusão

SessionStart monta esse índice injetado a partir de resumos de sessão, títulos de observações agrupados por tipo e carimbos de data e hora: um mapa pesquisável do trabalho recente que o Claude pode consultar durante a sessão, sem você precisar fazer nada.

PostToolUse dispara após cada chamada de ferramenta. Ele envia a saída bruta para um worker em background via HTTP POST não bloqueante (média de 8 ms), e o worker comprime em uma observação estruturada usando o Claude Agent SDK. 

A estrutura é assim:

Campo

O que contém

type

Um entre decision, bugfix, feature, refactor, discovery, change

title

Uma string concisa e pesquisável

facts

Um array de fatos discretos (~50 tokens, barato de carregar)

narrative

Uma explicação em prosa (~155–500 tokens, carregada só sob demanda)

concepts

Tags semânticas como how-it-works, problem-solution, gotcha, trade-off

A captura por chamada é o que separa o claude-mem de ferramentas que resumem só no fim da sessão com uma chamada única de IA. 

Se sua sessão cair no meio de um refactor, essas ferramentas perdem tudo desde a última sessão concluída. O claude-mem mantém cada observação até a última chamada de ferramenta.

O hook Stop produz algo diferente: um resumo em nível de sessão com campos como request, investigated, learned, completed e next_steps. Eles dão ao Claude um mapa geral do que aconteceu sem precisar carregar cada observação individual.

Recuperação

Armazenar milhares de observações é uma coisa. Carregar as certas na janela de contexto sem torrar tokens é outra.

A abordagem ingênua é despejar contexto histórico no prompt. A documentação do claude-mem traz números: um carregamento ingênuo típico envia 35.000 tokens para a janela de contexto, dos quais uns 2.000 são realmente relevantes. Uma taxa de sinal de 6%. 

Um sistema de recuperação em três camadas eleva isso para mais de 80% ao permitir que o Claude carregue o contexto de forma progressiva via claude-mem:

Diagrama em funil mostrando o sistema de recuperação em três camadas do claude-mem com custos de tokens: camada 1 (search) 50–100 tokens por resultado, camada 2 (timeline) 100–200 tokens, camada 3 (get_observations) 500–1000 tokens, substituindo a abordagem ingênua de 35.000 tokens

  • Camada 1, search retorna um índice compacto com IDs de observação, títulos, datas e tipos. Custo: 50–100 tokens por resultado. Você vê o que existe sem carregar.
  • Camada 2, timeline fornece contexto cronológico ao redor de uma observação específica, mostrando o que aconteceu antes e depois. Custo: 100–200 tokens por resultado.
  • Camada 3, get_observations busca registros completos por ID em lotes. Custo: 500–1.000 tokens por resultado. Traga só o que realmente precisa.

Essa disciplina de recuperação não se impõe sozinha.

O claude-mem registra uma ferramenta MCP literalmente chamada __IMPORTANT cuja única função é lembrar o Claude de seguir esse padrão em três etapas. 

Sem ela, o Claude pula as camadas baratas e busca tudo em nível de detalhe máximo, jogando fora toda a arquitetura. O fato de precisarem adicionar uma ferramenta nomeada só para impor disciplina de recuperação dá uma noção realista de como o sistema precisou ser desenhado em torno do comportamento real do Claude.

Essas ferramentas de recuperação não são usadas só no início da sessão.

Durante a sessão, quando você pergunta algo ao Claude sobre trabalhos anteriores, ele pesquisa a memória diretamente. 

Você pode pedir para analisar seus padrões de trabalho entre sessões, achar detalhes que você esqueceu ("onde salvei aquela chave de API?", "como implementamos o fluxo de auth?") ou retomar um projeto que você não toca há semanas. 

Quando você alterna entre várias bases de código e sessões, os detalhes escapam da sua própria memória mais rápido do que parece. O claude-mem cobre essa lacuna dando ao Claude acesso a tudo que aconteceu, até o que você mesmo já esqueceu.

Depois de três semanas, 61% das minhas observações estão como discovery. O Claude captura principalmente o que aprende sobre a base de código, e não só as mudanças que faz. 

Ao longo de 259 sessões, tenho 1.729 resumos de sessão, em média 6–7 por sessão. Essa continuidade entre sessões só é possível porque a captura roda continuamente, não apenas no final.

Essa é a diferença entre resumir uma sessão e realmente lembrar dela.

Configurando o claude-mem

Todas as configurações do claude-mem ficam acessíveis pela interface web em http://localhost:37777, na aba Settings. Você também pode defini-las via variáveis de ambiente ou editar ~/.claude-mem/settings.json diretamente.

A primeira configuração importante é CLAUDE_MEM_MODEL, que controla qual modelo faz a compressão. O padrão é haiku, que já é a opção mais barata da linha de modelos do Claude.

configurações avançadas do claude-mem mostrando seleção de modelo e provedor

Você também pode trocar totalmente o provedor de compressão com CLAUDE_MEM_PROVIDER, que aceita claude, gemini ou openrouter.

Rodar a compressão no Gemini Flash Lite ou em um modelo gratuito do OpenRouter como xiaomi/mimo-v2-flash:free zera o custo adicional além da sua assinatura do Claude Code. 

Eu rodo no haiku com 30 observações por sessão. Com cerca de 400 tokens de entrada e 150 de saída por compressão, dá algo como 16.500 tokens por sessão. Nas tarifas do haiku, um mês de uso intenso sai muito abaixo de um dólar.

Depois de três semanas em dez projetos, a qualidade da compressão não tem sido um problema.

Duas configurações controlam quanto contexto é carregado no início da sessão:

  • CLAUDE_MEM_CONTEXT_OBSERVATIONS: total de observações injetadas em SessionStart (padrão 50, faixa 1–200)
  • CLAUDE_MEM_CONTEXT_FULL_COUNT: quantas delas aparecem com detalhe expandido com o campo narrative completo (padrão 5, faixa 0–20)

O restante exibe só título, tipo e data. Toda a injeção de contexto é limitada ao diretório do projeto em que você está trabalhando, então observações de outros projetos não poluem seu contexto. 

Você pode pré-visualizar exatamente o que será injetado e ajustar essas quantidades por projeto pela interface web.

página de configurações do claude-mem mostrando contagens por projeto, filtros por tipo e prévia da economia de contexto

Algo para esperar: na primeira semana em um projeto novo, sua janela de contexto pode encher mais rápido que o usual. 

Eu quase desinstalei o claude-mem nesse começo porque as sessões batiam no limite de contexto mais cedo do que antes. 

O que acontecia era o claude-mem aprendendo o projeto do zero, registrando um volume alto de novas observações que eram todas injetadas no início da sessão. 

Depois de cerca de uma semana, o volume de descobertas novas caiu porque o Claude já tinha mapeado a base de código, e as sessões passaram a durar mais do que antes de eu instalar o plugin. 

Se você sentir esse overhead inicial, reduza CLAUDE_MEM_CONTEXT_OBSERVATIONS temporariamente e aumente de novo quando o período de aprendizado estabilizar.

CLAUDE_MEM_SKIP_TOOLS permite excluir ferramentas específicas da captura.

Os padrões já ignoram ferramentas muito ruidosas como TodoWrite, AskUserQuestion e BashTool. Provavelmente você não vai mexer nisso a menos que tenha uma ferramenta customizada gerando saída que não quer armazenar. É uma lista separada por vírgulas, então adicionar ferramentas é simples.

Se você trabalha com chaves de API ou credenciais, envolva-as com tags <private> dentro dos seus prompts para excluir esse conteúdo do armazenamento.

O claude-mem remove tudo que estiver dentro dessas tags antes de criar a observação. 

Ele não varre conteúdos de arquivo proativamente, então variáveis de ambiente carregadas do disco não correm risco, mas qualquer coisa que você colar diretamente em um prompt, sim. A tag <private> é uma proteção opt-in: você precisa lembrar de usá-la.

claude-mem vs memória nativa e alternativas

O Claude Code já vem com recursos de memória, mas nenhum deles captura contexto automaticamente. 

CLAUDE.md são arquivos markdown estáticos carregados no início da sessão, úteis para regras e preferências do projeto, mas limitados a cerca de 200 linhas antes que a aderência caia. Sem busca, sem recuperação. Você escreve as instruções uma vez e torce para o Claude segui-las.

O Auto Memory, adicionado no Claude Code v2.1.59, deixa o próprio Claude decidir o que salvar entre sessões. Ele guarda anotações não estruturadas em ~/.claude/projects/<project>/memory/ e carrega as primeiras 200 linhas de um arquivo MEMORY.md na inicialização. 

Na prática, o que é salvo nem sempre é o que você gostaria, e não há como buscar ou filtrar depois. Você acaba com um arquivo de texto com decisões às quais o Claude pode ou não dar atenção.

O comando /compact fecha o conjunto nativo ao resumir sua conversa para liberar espaço de contexto. Arquivos CLAUDE.md sobrevivem porque são relidos do disco, mas todo o resto desaparece: instruções conversacionais, contexto de meio de sessão, qualquer coisa que você disse mas não registrou em algum lugar.

O claude-mem cobre a lacuna que nenhum dos anteriores resolve: captura contínua automática com compressão estruturada e recuperação consciente de tokens. E não é o único plugin que faz esse trabalho.

Ferramenta

Arquitetura

Armazenamento

Busca

Momento da captura

Preço

Entre máquinas

Memória de time

Claude nativo

Nativo

Markdown local

Nenhuma

Manual

Grátis

Via git sync

Via CLAUDE.md compartilhado

claude-mem

Plugin (hooks)

SQLite local + FTS5

Palavra-chave FTS5

Por chamada de ferramenta

Grátis

Não

Não

memsearch

Plugin (hooks + skill)

Markdown local + Milvus

Híbrido denso + BM25

Fim da sessão

Grátis

Não

Não

supermemory

Plugin (hooks + nuvem)

Nuvem

Semântica + temporal

Fim da sessão

Pago

Sim

Sim

mem0 (self-hosted)

Servidor MCP

Qdrant local + Ollama

Vetor semântico

Fim da sessão

Grátis

Não

Não

memsearch é a alternativa gratuita mais próxima se você quiser arquivos markdown em vez de um banco e não quer um processo em background rodando. Ele faz a recuperação em um subagente isolado, então os resultados de busca não se misturam com a sua janela de contexto principal. Use se preferir uma configuração mais simples e não precisar de captura por chamada.

supermemory é a pedida certa se você precisa de sincronização entre máquinas e memória compartilhada do time, embora exija assinatura paga. 

A stack self-hosted do mem0 segue outro caminho: Qdrant e Neo4j para rastreamento de entidades baseado em grafo, zero custo extra, mas uma configuração mais pesada — só vale se você já roda essa infraestrutura.

O claude-mem fica no meio. Totalmente local, grátis, captura por chamada com compressão estruturada. O trade-off é um worker em background na porta 37777 e algumas arestas ainda por aparar.

Limitações e problemas conhecidos do claude-mem

A parte de segurança é a maior preocupação.

Uma auditoria comunitária em fevereiro de 2026 classificou o risco como ALTO, e os issues seguem em aberto. 

A API HTTP na porta 37777 não tem autenticação: qualquer processo na sua máquina pode ler todas as observações armazenadas, ver suas configurações (incluindo chaves de API em texto claro) e injetar memórias arbitrárias no banco. 

O binding padrão do host era 0.0.0.0 em vez de 127.0.0.1, o que, em VMs na nuvem ou máquinas sem firewall, expõe a API na rede. 

As ferramentas smart_unfold e smart_outline também têm vulnerabilidade de path traversal sem checagem de limites de diretório.

Rode isso somente em máquina pessoal de desenvolvimento.

A confiabilidade também tem algumas arestas.

A integração com ChromaDB tem um vazamento conhecido de subprocessos: um usuário rastreou 184 processos órfãos em 19 horas, consumindo cerca de 16 GB de RAM. 

A causa raiz foi um modelo ONNX corrompido acionando loops de retry infinitos. Fique com o FTS5 (o mecanismo de busca full-text nativo do SQLite), que funciona sem o ChromaDB e tem sido confiável na minha experiência.

 No macOS com Apple Silicon, o cold start do worker pode exceder o timeout fixo de 5 segundos quando o ChromaDB está ativado, fazendo o hook SessionStart falhar. Isso não afeta setups só com FTS5. Há também um bug ativo em que as ferramentas MCP search e timeline têm schemas de parâmetro vazios, então o Claude não consegue passar queries para elas. get_observations funciona bem.

Nada disso é impeditivo para desenvolvimento local em máquina pessoal. Mas vale saber antes de instalar algo que tem acesso a todo o histórico das suas sessões.

Considerações finais

Três semanas depois, o principal que eu percebo é o que eu deixei de fazer. Não reexplico a estrutura do projeto no início de cada sessão. Não refaço o caminho de debug que já percorremos. O Claude já chega com contexto e a gente começa de onde parou.

A arquitetura torna isso possível de um jeito que abordagens mais simples não conseguem. Capturar só no fim da sessão significa perder tudo se a sessão cair. Despejar histórico sem camadas de recuperação significa gastar tokens com ruído. As escolhas de design aqui são intencionais — saber disso ajuda você a ajustar a ferramenta, e não apenas confiar cegamente.

As lacunas de segurança acima são reais e continuam abertas. Vale a pena rodar em máquina pessoal de desenvolvimento. Não vale rodar em VM na nuvem ou máquina compartilhada até corrigirem esses pontos. Mas, para desenvolvimento local solo, os trade-offs são administráveis.

Se quiser se aprofundar, o curso da DataCamp Introduction to Claude é um ótimo ponto de partida para entender como o Claude Code funciona antes de adicionar plugins por cima.

FAQs do claude-mem

O que é o claude-mem e qual problema ele resolve?

O claude-mem é um plugin do Claude Code que captura o que acontece em cada sessão de codificação, comprime as saídas brutas das ferramentas em observações estruturadas e injeta o contexto relevante quando você inicia uma nova sessão. Ele resolve o problema da “lousa em branco”, em que toda sessão do Claude Code começa sem memória do trabalho anterior, obrigando você a reexplicar a estrutura do projeto e decisões passadas toda vez.

Como instalo o claude-mem?

Rode dois comandos dentro de uma sessão do Claude Code: /plugin marketplace add thedotmack/claude-mem e depois /plugin install claude-mem, então reinicie o Claude Code. O erro comum é rodar npm install -g claude-mem, que só instala a biblioteca SDK sem registrar os hooks nem iniciar o worker em background. O único pré-requisito é Node.js 18 ou superior; o restante é instalado automaticamente.

Como o claude-mem é diferente de CLAUDE.md e Auto Memory?

Arquivos CLAUDE.md são markdown estáticos sem busca ou recuperação, e passam de ~200 linhas a aderência cai. O Auto Memory deixa o Claude decidir o que salvar, mas é não estruturado e não pesquisável. O claude-mem captura automaticamente após cada chamada de ferramenta, comprime observações em um esquema tipado com campos como type, title, facts e narrative, e recupera por um sistema de três camadas que carrega só o que é relevante em vez de despejar tudo no contexto.

O claude-mem gera custo extra?

O claude-mem usa a sua autenticação existente do Claude Code para a compressão, então não há chave de API ou conta separada. O modelo padrão de compressão é o haiku, o mais barato da linha do Claude. Você também pode trocar o provedor para Gemini ou OpenRouter para rodar a compressão em modelos gratuitos, levando o custo adicional a zero além da sua assinatura do Claude Code.

O claude-mem é seguro para usar?

O claude-mem armazena todos os dados localmente na sua máquina, mas uma auditoria de segurança comunitária em fevereiro de 2026 o classificou como ALTO risco. A API HTTP na porta 37777 não tem autenticação, o que permite que qualquer processo local leia observações e configurações. A recomendação é usar apenas em máquina pessoal de desenvolvimento, não em VMs na nuvem ou servidores compartilhados. Prefira FTS5 para busca em vez de ChromaDB para evitar um vazamento conhecido de subprocessos.


Bexruz (Bex) Tuychiev's photo
Author
Bexruz (Bex) Tuychiev
LinkedIn

Sou criador de conteúdo em ciência de dados há mais de 2 anos e um dos perfis com maior alcance no Medium. Gosto de escrever artigos detalhados sobre IA e ML, com uma pitada de sarcasmo — porque alguém precisa deixar o assunto menos monótono. Já publiquei mais de 130 artigos e um curso na DataCamp, com outro em andamento. Meu conteúdo já alcançou mais de 5 milhões de visualizações, e 20 mil pessoas passaram a me seguir no Medium e no LinkedIn. 

Temas
Inteligência Artificial
Modelos de idiomas grandes

Principais cursos da DataCamp

Curso

Introdução aos modelos Claude

3 h
14.6K
Aprenda a trabalhar com o Claude usando a API da Anthropic para resolver tarefas do mundo real e criar aplicativos com inteligência artificial.
Ver detalhesRight Arrow
Começar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Primeiros passos com o Claude 3 e a API do Claude 3

Saiba mais sobre os modelos Claude 3, benchmarks de desempenho detalhados e como acessá-los. Além disso, descubra a nova API Python do Claude 3 para geração de texto, acesso a recursos de visão e streaming.
Abid Ali Awan's photo

Abid Ali Awan

Tutorial

DeepSeek-Coder-V2 Tutorial: Exemplos, instalação, padrões de referência

O DeepSeek-Coder-V2 é um modelo de linguagem de código de código aberto que rivaliza com o desempenho do GPT-4, Gemini 1.5 Pro, Claude 3 Opus, Llama 3 70B ou Codestral.
Dimitri Didmanidze's photo

Dimitri Didmanidze

8 min

Tutorial

DCLM-7B da Apple: Configuração, exemplo de uso, ajuste fino

Comece a usar o modelo de linguagem grande DCLM-7B da Apple e saiba como configurá-lo, usá-lo e ajustá-lo para tarefas específicas.
Dimitri Didmanidze's photo

Dimitri Didmanidze

9 min

Tutorial

Como criar aplicativos LLM com o tutorial LangChain

Explore o potencial inexplorado dos modelos de linguagem grandes com o LangChain, uma estrutura Python de código aberto para criar aplicativos avançados de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

Um guia para iniciantes na engenharia de prompts do ChatGPT

Descubra como fazer com que o ChatGPT forneça os resultados que você deseja, fornecendo a ele as entradas necessárias.
Matt Crabtree's photo

Matt Crabtree

6 min

Tutorial

Como treinar um LLM com o PyTorch

Domine o processo de treinamento de grandes modelos de linguagem usando o PyTorch, desde a configuração inicial até a implementação final.
Zoumana Keita 's photo

Zoumana Keita

8 min

Ver MaisVer Mais