O que é o Claude-Mem e como ele dá memória persistente ao Claude Code?

O Claude-Mem é um projeto open source de Alex Newman (@thedotmack) que dá memória persistente ao Claude Code: ele captura o que o agente faz na sessão, comprime com IA e injeta o contexto relevante de volta nas sessões seguintes. A conexão é por hooks de ciclo de vida (SessionStart, UserPromptSubmit, PostToolUse, Stop e SessionEnd), e as observações ficam num banco SQLite local em ~/.claude-mem/claude-mem.db, com busca híbrida via FTS5 e Chroma. Instala com npx claude-mem install ou pelo marketplace de plugins, e o custo depende do provedor de compressão que você escolher
Fala aí, beleza? O Claude Code é excelente dentro da sessão e completamente amnésico fora dela
Tu passa duas horas explicando a arquitetura do projeto, decide junto com ele por que aquele job ficou daquele jeito, mata um bug chato, aí dá /clear e pronto: sessão nova, contexto zerado, tudo de novo do começo
O Claude-Mem nasceu pra atacar exatamente isso. É um projeto open source criado e mantido por Alex Newman (@thedotmack), licenciado sob Apache License 2.0, com código no repositório oficial no GitHub, e a proposta é bem direta: capturar tudo que o agente faz durante a sessão, comprimir com IA e injetar o contexto relevante de volta nas sessões seguintes
Neste post eu te conto o que o Claude-Mem é, como ele funciona por dentro, onde a memória fica guardada, como instalar, os dois erros de instalação mais comuns e quanto custa cada modo de compressão
Um detalhe que já vale adiantar: ele não é exclusivo do Claude Code. A descrição oficial lista compatibilidade com Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode e outros
Domine o Claude Code do básico ao avançado
Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!
Como o Claude-Mem funciona por dentro: hooks, compressão e observações
A ligação com o agente acontece por hooks de ciclo de vida
Que hooks? São pontos do fluxo do agente onde uma ferramenta externa consegue se plugar. No caso do Claude-Mem, a lista oficial é: SessionStart, UserPromptSubmit, PostToolUse, Stop e SessionEnd
Ou seja, ele não fica lendo sua tela nem adivinhando nada. Ele escuta os eventos que o próprio agente emite: começou sessão, você mandou um prompt, uma ferramenta rodou e devolveu saída, o agente parou, a sessão acabou
E aí entra a parte mais interessante, que é a compressão
Saída de ferramenta é gorda. Um grep grandão, o retorno de um build, o dump de um arquivo inteiro: isso facilmente ocupa de 1.000 a 10.000 tokens e some do contexto pouco depois
O Claude-Mem pega essa saída e transforma em uma observação semântica de cerca de 500 tokens, categorizada por tipo: decision, bugfix, feature, refactor, discovery e change, com tags de conceitos e referências de arquivos
Sacou a diferença? Não é log, é resumo com significado. Em vez de guardar o texto bruto do que aconteceu, guarda o que aquilo QUER dizer pro projeto: isso aqui foi uma decisão, isso aqui foi correção de bug, isso aqui mexeu em tais arquivos
Pra gerar essas observações, o projeto usa o Claude Agent SDK
Onde a memória fica guardada e como o Claude-Mem busca nela
A memória é local por padrão, e isso é um ponto forte do projeto
O banco fica em ~/.claude-mem/claude-mem.db, e a pasta ~/.claude-mem/ guarda também o version marker, o settings.json e os logs
O banco é SQLite 3 (via módulo nativo bun:sqlite), com FTS5 pra busca full-text e modo WAL pra leitura e escrita concorrentes. Lá dentro moram três coisas: sessions, observations e summaries
Se você já mexeu com SQLite em qualquer projetinho, é exatamente aquilo: um arquivo só, na sua máquina, sem servidor no meio
Busca híbrida: FTS5 mais Chroma
Só full-text não resolve tudo, porque nem sempre você lembra a palavra exata que foi usada três semanas atrás
Por isso o projeto usa também um banco vetorial Chroma pra busca semântica, introduzido na v5.0.0, com a variável CLAUDE_MEM_CHROMA_PATH apontando pra ~/.claude-mem/chroma
Os dois juntos formam a busca híbrida: o literal e o "parecido com isso"
A skill mem-search e o progressive disclosure
A busca na memória é feita pela skill mem-search (que foi renomeada de "search"), e ela trabalha em três camadas:
search(query, limit, orderBy)pra achar os candidatostimeline(anchor, depth_before)pra ver o entorno daquele momentoget_observations(ids)pra puxar o conteúdo completo só do que interessa
A consulta aceita a sintaxe FTS5 do SQLite, então dá pra usar AND, OR, NOT e busca por campo com title:, content: e concepts:
Esse desenho em camadas tem nome: progressive disclosure. A ideia é não jogar a memória inteira na cara do modelo logo no início. Segundo o projeto, isso representa cerca de 2.250 tokens economizados por início de sessão em comparação com a abordagem via MCP
O viewer
Tem também uma interface web, feita em React + TypeScript, servida pelo próprio worker na porta definida em CLAUDE_MEM_WORKER_PORT
É por ali que você olha o que está sendo guardado. E o Context Settings Modal do viewer é a forma recomendada de configurar o comportamento
Como instalar o Claude-Mem no Claude Code
São dois caminhos oficiais, os dois de um passo só. Bora ver na prática?
- Instalação por
npx, direto no terminal:
npx claude-mem install
- Ou, se você prefere resolver de dentro do próprio agente, pelo marketplace de plugins do Claude Code:
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
- Depois de instalar, é só usar o Claude Code normalmente. Nos dois métodos a configuração dos hooks e o start do worker são automáticos, e o contexto de sessões anteriores passa a aparecer sozinho nas sessões novas
O erro comum deste passo: achar que npm install -g claude-mem resolve. Não resolve! Esse comando instala apenas o SDK/biblioteca, sem registrar os hooks do plugin e sem iniciar o serviço worker
- Passo opcional, se você quer rodar a partir do código-fonte:
git clone https://github.com/thedotmack/claude-mem.git
npm install
npm run build
- E, pra controlar o worker na mão, existem scripts próprios:
npm run worker:start
npm run worker:stop
npm run worker:restart
npm run worker:logs
npm run worker:status
O worker:status e o worker:logs são teus amigos quando parecer que nada está sendo capturado. Antes de sair mexendo em configuração, olhe se o worker está de pé
Dois problemas comuns de instalação do Claude-Mem (e como resolver)
Caso 1: instalei e não acontece nada
Sintoma: você rodou a instalação, abriu o Claude Code, e nenhum contexto aparece, nenhuma observação é criada
Causa: provavelmente você usou npm install -g claude-mem. Esse caminho traz só o SDK/biblioteca: ele não registra os hooks do plugin nem sobe o worker, e sem hook não tem captura
Solução: instale por um dos dois métodos oficiais, npx claude-mem install ou o marketplace de plugins dentro do Claude Code. Os dois configuram os hooks e iniciam o worker automaticamente
Caso 2: o hook de setup acusa divergência de versão
Sintoma: você atualizou o Claude-Mem por fora e, na sessão seguinte, o hook de setup reclama que o version marker não bate
Causa: o upgrade feito por fora deixa o estado local fora de sincronia, com dependências de runtime faltando e o marker desatualizado
Solução: rode o comando de reparo
npx claude-mem repair
Ele instala as dependências de runtime que estiverem faltando e atualiza o marker
Prevenção: mantenha a instalação e a atualização pelos caminhos oficiais. Atalho por fora sempre cobra o pedágio depois 🙂
E o /clear, apaga minha memória?
Essa dúvida aparece sempre, então vale o parágrafo
Não apaga. O /clear limpa a conversa visível e reinjeta contexto recente das sessões anteriores, enquanto a sessão subjacente continua registrando observações
Ou seja, aquele reflexo de limpar o contexto pra o agente parar de se perder deixa de custar tão caro
Quanto custa rodar o Claude-Mem: comparativo dos provedores de compressão
O projeto é open source (Apache License 2.0), mas gerar observação é chamada de IA, e chamada de IA tem conta pra alguém pagar
Por isso o Claude-Mem oferece escolha de provedor pra compressão, e o README compara as quatro opções pelo custo por 1.000 observações:
| Provedor | Custo por 1.000 observações | Onde a conta cai | Observação |
|---|---|---|---|
| CMEM Pro | US$ 0 | US$ 30/mês, com cloud sync incluído | Opção recomendada no README |
| OpenRouter ou chave compatível com OpenAI | cerca de US$ 2,73 | Cobrado de você, no provedor | Você leva sua própria chave |
| Chave Gemini | cerca de US$ 3,39 | Cobrado de você, no provedor | Você leva sua própria chave |
| Plano Anthropic | cerca de US$ 8,91 | Cobrado no seu plano Claude | Aproveita a autenticação que o Claude Code já tem, sem chave de API separada |
Repare no detalhe da última linha, porque ele muda a decisão pra muita gente: rodando pelo plano Anthropic, o Claude-Mem usa a autenticação existente do Claude Code pra fazer a compressão
É o caminho de menor atrito pra começar (zero configuração de chave), e também o de maior custo por 1.000 observações na comparação do README
E olha o detalhe do CMEM Pro: o custo por 1k é zero, mas o que está em jogo ali é a assinatura de US$ 30/mês, que já vem com o cloud sync incluído. Guarde essa peça, porque ela volta logo abaixo no aviso de privacidade
Para quem o Claude-Mem faz sentido
Nem toda ferramenta serve pra todo mundo, então vamos aos cenários que os recursos verificados sustentam:
- Projeto longo, onde decisão se perde entre sessões. As observações do tipo
decisionebugfixexistem justamente pra isso: guardar o porquê, não só o que aconteceu - Quem vive dando
/clear. Se limpar contexto faz parte do teu fluxo, ter reinjeção automática do contexto recente muda o jogo - Quem quer tudo local. O padrão é SQLite na tua própria máquina, dentro de
~/.claude-mem/ - Quem usa mais de um agente. Como a compatibilidade listada vai além do Claude Code (OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode e outros), a memória não fica presa a uma ferramenta só
- Quem trabalha em mais de um computador. Aí entra o cloud sync do Pro, que replica o banco entre dispositivos pelo hub da conta cmem.ai
- Times. Pra esse público, o caminho a olhar é o Server Beta, que eu explico na próxima seção
Vale dizer que o Claude-Mem faz parte de uma safra crescente de projetos que estendem o agente por fora, junto com coisas como o Ponytail para o Claude Code
E se o teu caso é o de trabalhar em máquinas diferentes, cuidado pra não confundir as peças: o Claude Code é a ferramenta de terminal, e a conversa sobre o aplicativo de desktop do Claude é outra história
Um aviso de privacidade antes de ligar o cloud sync
Esse aqui merece atenção de verdade
O cloud sync (cmem.ai Pro) funciona por push/pull HTTP contra um hub por usuário, com log ordenado e WebSocket opcional como camada de velocidade, e roda dentro do próprio worker, sem daemon separado
Só que o conteúdo enviado pro hub, na tua conta cmem.ai, inclui as narrativas das observações e o texto integral dos prompts
Se você trabalha com código ou informação sensível, essa é a linha do post pra ler duas vezes antes de ativar. Local por padrão é uma coisa, sincronizado é outra
O que a linha v13 do Claude-Mem trouxe
A linha v13 é a versão principal atual do projeto, e ela trouxe um runtime opcional chamado Server Beta
O pacote do Server Beta inclui:
- pipeline de eventos para observações em Postgres + BullMQ
- auth por API key
- escopo de time/projeto
- audit log
- três provedores de IA (Anthropic, OpenAI e Google)
- servidor MCP dedicado
- stack Docker/Compose
- superfície REST
/v1
Junto com essa linha veio também o relicenciamento pro Apache License 2.0, a licença sob a qual o projeto está hoje
Agora a parte tranquilizadora, porque "nova arquitetura" costuma dar calafrio em quem já tem coisa rodando: o Server Beta é opt-in, e a instalação padrão continua funcionando sem breaking changes
Na prática, o que isso significa pra você?
Se você é dev individual, não muda nada: segue com npx claude-mem install, banco local, worker, viewer, vida que segue
Se você é de time, é justamente esse o caminho a olhar. Escopo de time/projeto, auth por API key e audit log são exatamente os itens que faltam quando a memória deixa de ser de uma pessoa e passa a ser de um grupo
Conclusão
O Claude-Mem resolve um problema concreto e chato de quem trabalha com agente de código: o contexto que morre no fim da sessão
A receita é honesta e fácil de entender: hooks capturam, a IA comprime em observações curtas e categorizadas, o SQLite guarda na tua máquina e a busca híbrida devolve só o pedaço que importa
Se você quiser experimentar, o caminho mais curto é esse:
- instalar com
npx claude-mem installou pelo marketplace de plugins - abrir o viewer pra ver as observações sendo criadas de verdade enquanto você trabalha
- decidir o provedor de compressão pelo comparativo de custo ANTES de deixar rodando no dia a dia
Esse terceiro passo é o que mais gente pula, e é o que aparece na fatura depois 😀
Até o próximo post!
Perguntas frequentes
Claude-Mem funciona só com Claude Code ou dá pra usar com outros agentes?
Não é exclusivo do Claude Code. A descrição oficial do projeto lista compatibilidade com Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode e outros agentes.
Claude-Mem é gratuito ou tem custo pra rodar?
O projeto em si é open source, sob Apache License 2.0. O que tem custo é a geração das observações, e o README compara quatro opções por 1.000 observações: CMEM Pro sai por US$ 0 por 1k (com plano de US$ 30/mês incluindo cloud sync), OpenRouter ou chave OpenAI fica por volta de US$ 2,73 por 1k, chave Gemini US$ 3,39 por 1k, e usando seu próprio plano Anthropic o custo fica em torno de US$ 8,91 por 1k, cobrado no seu plano Claude.
Dar /clear no Claude Code apaga a memória guardada pelo Claude-Mem?
Não. O /clear limpa a conversa visível e reinjeta contexto recente das sessões anteriores, mas a sessão continua registrando observações por trás dos panos. A captura não para.
O Claude-Mem manda meus dados pra nuvem por padrão?
Por padrão não, a memória fica local no banco SQLite em ~/.claude-mem/claude-mem.db. O cloud sync é um recurso do CMEM Pro que precisa ser ligado, e quando ativado ele sobe as narrativas das observações e o texto integral dos prompts pra conta cmem.ai do usuário.
Qual a diferença entre instalar com npx claude-mem install e com npm install -g claude-mem?
São coisas bem diferentes. O npx claude-mem install (ou o caminho pelo /plugin marketplace) configura os hooks e sobe o worker automaticamente. Já o npm install -g claude-mem só instala o SDK/biblioteca, sem registrar hook nenhum e sem iniciar o serviço worker, então sozinho ele não faz o Claude-Mem funcionar.
Fiz um upgrade manual do Claude-Mem e ele parou de reconhecer a versão, o que eu faço?
Isso acontece quando o hook de setup detecta divergência no version marker depois de uma atualização feita por fora do fluxo normal. O comando de reparo é npx claude-mem repair, que instala as dependências de runtime que estiverem faltando e atualiza o marker.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
