O que o Helpike coleta
Esta página é o contrato. Ela descreve tudo que o Helpike envia sobre o seu uso, em que circunstância, e como desligar. Se algo aqui divergir do que o software faz, é bug — e a lista de campos está congelada por um teste no código-fonte. O acordo em si é a seção 5 dos termos de uso; esta página é o detalhamento campo a campo por trás dele.
helpike-mcp),
que é quem o seu assistente consulta, não faz requisição de rede nenhuma por causa de telemetria —
nem uma. Nada nesta página muda isso.
As duas camadas
Camada 0 — o log do CDN (sempre ativa, como em qualquer download)
O app faz requisições HTTPS a este site: quando você baixa o instalador, o catálogo, um DocPack ou
o modelo — e também de hora em hora, sozinho, para perguntar se existe versão nova
(/download/latest.json, com a versão, o sistema e a arquitetura na query string). O app
aberto também recarrega o catálogo a cada 30 minutos.
Como todo servidor da internet, o CDN registra a linha de cada uma dessas requisições: data, caminho pedido, status, bytes, IP e User-Agent. Isso vale para qualquer arquivo que você baixe de qualquer lugar, e existe desde antes de qualquer decisão nossa. O que o projeto faz com essas linhas:
- agrega por dia, nunca por requisição;
- conta downloads por plataforma e por pacote;
- estima máquinas distintas por um digest de
IP + User-Agentsalgado com um segredo que troca todo mês — o que torna impossível ligar as observações de dois meses à mesma máquina; - nunca guarda o IP no banco. Ele existe só na memória, durante a agregação, e o log bruto expira do armazenamento em 45 dias.
O User-Agent do app é Helpike/2.3.0 (macos; aarch64) e o do sidecar é
helpike-mcp/0.1.0 (macos; aarch64). Nome do produto, versão, sistema e arquitetura —
nada mais.
Camada 1 — o beacon (declarado nos termos de uso)
Depois que você aceita os termos de uso — a tela que o app mostra na primeira abertura, cuja seção 5 declara isto — o app faz uma requisição GET por dia, com os contadores do dia anterior. Antes desse aceite, nada é enviado.
O aceite não é retroativo. Aceitar marca o dia de ontem como já reportado: o que
foi registrado antes de os termos serem lidos nunca é enviado. Exportar DO_NOT_TRACK
interrompe o envio na hora, inclusive no meio de um envio em andamento.
Não existe servidor recebendo isso: o alvo é um arquivo de 3 bytes no mesmo CDN, e a linha que o CDN escreve no log de acesso é a coleta.
O payload literal
O app mostra esta URL na própria tela. Ela é montada pela mesma função que faz o envio:
GET https://helpike.com/beacon.txt
?v=1
&i=0123456789abcdef0123456789abcdef
&d=2026-08-23
&a=2.3.0&o=macos&r=aarch64
&fd=41&pk=7&pb=3120&ao=3&am=214&sc=5&em=95
&q=88&q0=4&t=12&p50=31&p95=84&md=1
&cl=claude-code:4,cursor:1
&tp=rails,turbo,rubyllm
| Campo | Significado |
|---|---|
v | versão do formato |
i | id da instalação: 16 bytes aleatórios, gerados nesta máquina |
d | o dia (fechado) a que os números se referem, UTC |
a · o · r | versão do app · sistema · arquitetura |
fd | dias desde a primeira execução |
pk · pb | pacotes instalados · MB em disco |
md | 1 se o modelo de embedding está instalado |
ao · am | vezes que o app abriu · minutos com a janela aberta |
sc | sessões de assistentes MCP |
em | minutos engajados: janelas de 5 min com pelo menos um evento MCP |
q · q0 · t | buscas · buscas com zero resultado · outras chamadas de ferramenta |
p50 · p95 | latência das buscas, em ms |
cl | assistentes que conectaram, com quantas sessões cada |
tp | até 8 pacotes que responderam às buscas |
O que NUNCA é enviado
- O texto das suas buscas. Nunca, nem truncado, nem em hash.
- Caminhos de projeto, nomes de arquivo ou de diretório.
- Títulos ou conteúdo das páginas que a busca retornou.
- Nome da máquina, do usuário do sistema, e-mail, telefone.
- Qualquer hash dos itens acima — hash de caminho ainda é rastreio de projeto.
Não existe conta, login, sessão ou cookie em lugar nenhum do produto.
tp é a única exceção aparente, e não é: um slug de pacote (rails) é dado
público do catálogo, e é a única forma de responder "quais pacotes as pessoas realmente consultam
depois de baixar". Só nomes que existem no catálogo publicado são enviados — um
pacote que você mesmo construiu e copiou para ~/.helpike/packs é filtrado antes do
envio, porque o nome dele é um diretório e um arquivo do seu disco. Sem catálogo acessível,
tp sai vazio.
Como desligar
No ambiente: exportar DO_NOT_TRACK=1 ou
HELPIKE_NO_TELEMETRY=1. É reconsultado antes de cada envio, então vale sem reiniciar
o app. DO_NOT_TRACK é a convenção entre ferramentas; a variável do Helpike existe
para calar só este app.
Não existe chave no app. A camada 1 está declarada na seção 5 dos termos de uso e começa junto com o uso do produto; o que o app oferece na tela é a transparência — o painel de dados de uso em Início mostra a URL literal que seria enviada e o id desta instalação.
Para trocar de identificador, apague ~/.helpike/install.json: um novo é gerado na
próxima execução e nada liga um ao outro. Para apagar o que já foi enviado, mande o i
que o app mostra nessa mesma tela para
support@helpike.com — todas as linhas daquele id somem.
O mesmo endereço recebe relatos de segurança.
O que fica na sua máquina, e onde
| Arquivo | O que é |
|---|---|
~/.helpike/activity.jsonl | tudo que os assistentes fizeram, com o texto das buscas. Escrito desde sempre, nunca enviado. O botão "Limpar histórico" em Início apaga. |
~/.helpike/appuse.jsonl | uma linha a cada 5 min com o app aberto |
~/.helpike/usage/<dia>.json | o resumo diário — exatamente os números da tabela acima |
~/.helpike/install.json | o id da instalação, a revisão dos termos aceita e o dia do aceite |
Todos são texto, legíveis com cat. Apagar qualquer um é seguro.
Por que existe
O projeto é gratuito, não tem receita e é mantido por uma pessoa. As perguntas que a telemetria responde são as que decidem no que trabalhar: quais pacotes valem manutenção, quantas pessoas o usam de fato, e — a mais cara delas — quando o tráfego de download vai passar da cota gratuita do CDN e começar a custar centenas de dólares por mês.
A alternativa honesta a medir é adivinhar. A alternativa desonesta é medir sem contar.