HALLUX
Verifica se um pacote, módulo ou DOI existe em seu registro (npm, PyPI, crates.io, Go, Maven, NuGet, DOIs) antes de um agente instalar, importar ou citar. Sinaliza nomes que modelos inventam e os que foram registrados desde então. Gratuito, sem chave.
Servidor MCP hospedado
npx add-mcp 'https://api.blvkware.dev/hallux/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
HALLUX
Um registro de identificadores que não existem, mas que modelos confiantes acreditam que existem. Verifique um nome de pacote no registro antes que qualquer coisa o instale e descubra se o nome é um que modelos de linguagem inventam.
Um agente escreve pip install requests-oauth2-helper. O nome é plausível, o agente está confiante e o pacote nunca existiu. Ou a instalação falha e o agente queima um loop de tentativas, ou alguém já registrou esse nome porque viu um modelo emiti-lo mil vezes.
O segundo caso é chamado de slopsquatting. É o único ataque à cadeia de suprimentos em que a lista de alvos do atacante é gerada para ele, gratuitamente, pelas próprias ferramentas das vítimas.
Experimente agora
Sem conta, sem chave, sem cadastro. Um comando:
curl https://api.blvkware.dev/hallux/v1/check/pkg.pypi/requests-oauth2-helper
{
"namespace": "pkg.pypi",
"value": "requests-oauth2-helper",
"verdict": "absent",
"confidence": 1,
"evidence": {
"registryStatus": "not_found",
"nearestExisting": [
"requests-oauthlib",
"requests",
"requests-toolbelt"
]
},
"recommendation": "do_not_install",
"successor": "requests-oauthlib"
}
Seis veredictos
| Veredicto | Significado | O que fazer |
|---|---|---|
| exists | Presente no registro autoritativo agora. | Prossiga. |
| deprecated | Existe, mas foi aposentado, removido ou substituído. | Prossiga com a substituição fornecida. |
| absent | Não presente e sem registro de um modelo tê-lo inventado. | Pare. Provavelmente um erro de digitação ou um nome privado. |
| phantom | Não presente, e modelos o emitem repetidamente. | Pare. Uma alucinação com histórico comprovado. |
| squat | Era um phantom, e alguém o registrou desde então. | Bloqueie. Trate como hostil até prova em contrário. |
| unknown | Registro inacessível ou fora da cobertura. | Sua política decide. Nunca leia como permissão. |
HALLUX nunca retorna "exists" sob incerteza. Quando um registro não pode ser alcançado, a resposta é unknown, com um código de motivo. Isso é aplicado no código, não prometido em um documento: um registro dizendo não e um registro não respondendo são valores diferentes de tipos diferentes, então um não pode ser confundido com o outro.
Squat é o que ninguém mais oferece
Todo registro publica o que contém. Nenhum publica o que não contém, porque a ausência é ilimitada. A parte útil da ausência, os nomes que modelos realmente alcançam, só pode ser acumulada ao longo do tempo amostrando modelos de produção e confirmando contra o registro que o nome não está lá.
Uma vez que o livro-razão registrou um nome que modelos continuam inventando, a mesma verificação carrega esse histórico. Este é o exemplo da especificação, não uma resposta ao vivo:
{
"namespace": "pkg.pypi",
"value": "requests-oauth2-helper",
"verdict": "phantom",
"confidence": 0.97,
"evidence": {
"registryStatus": "not_found",
"attestations": 412,
"observedFrom": ["gpt-class", "claude-class", "llama-class"],
"nearestExisting": ["requests-oauthlib"]
},
"recommendation": "do_not_install",
"successor": "requests-oauthlib"
}
Esse registro é o que torna o quarto veredicto possível. Um nome que modelos inventam e que um estranho depois registra é um ataque à cadeia de suprimentos visível antes da primeira instalação. Qualquer outra ferramenta olhando para esse pacote vê um pacote real em um registro real e diz para instalá-lo.
Como um nome se torna um phantom. Uma atestação é um modelo, em uma classe de prompt, em um dia. Um nome se torna um phantom com dez atestações de pelo menos duas famílias de modelos, e somente após sua ausência ser confirmada independentemente duas vezes, com pelo menos 24 horas de intervalo, contra o registro autoritativo. Phantoms sem atestação em 180 dias são arquivados em vez de excluídos e ainda respondem.
O método é publicado na íntegra, porque credibilidade é o produto aqui. A especificação traz a semântica dos veredictos, os namespaces, o formato de recibo e a metodologia do corpus.
Cobertura
7 namespaces respondem hoje: cite.doi, pkg.crates, pkg.go, pkg.maven, pkg.npm, pkg.nuget, pkg.pypi.
Namespaces nomeados na especificação, mas ainda não ativos, retornam unknown com um motivo, nunca um erro. O fluxo de controle de um agente não quebra quando HALLUX ganha um namespace e não quebra quando encontra um que ainda não foi construído.
Chame de um agente
O endpoint em lote aceita até 100 identificadores em uma única ida e volta, que é o formato que um pipeline de CI ou uma estrutura de agente deseja. Respostas em um nível pago carregam um recibo Ed25519 sobre o resultado, para que um operador possa provar após um incidente que a verificação aconteceu e o que ela disse.
Há também um servidor MCP expondo a mesma capacidade como ferramentas, para que um agente de codificação possa verificar um comando antes de executá-lo sem que ninguém configure uma integração. Ele responde em https://api.blvkware.dev/hallux/mcp via Streamable HTTP, sem conta e sem chave:
claude mcp add --transport http hallux https://api.blvkware.dev/hallux/mcp
Qualquer outro host MCP aceita o mesmo endereço. As ferramentas são hallux_check_command, para chamar antes de uma instalação, hallux_check_manifest, após editar um arquivo de dependências, e hallux_check para identificadores; hallux_watch é recusado até que armazenamento durável seja configurado. Cada identificador que uma ferramenta resolve conta contra o nível aberto, como qualquer outra verificação.
Preços
HALLUX nunca é pago a mais porque bloqueou você. HALLUX nunca é pago a mais porque bloqueou você. A cobrança é uma função dos identificadores enviados, não dos veredictos retornados. Um fornecedor de verificação pago por descoberta tem uma razão comercial para encontrar mais.
Isso não é uma promessa, é uma propriedade. A função que precifica uma solicitação recebe uma contagem de identificadores e não tem parâmetro pelo qual um veredicto possa alcançá-la, e a suíte de testes resolve o mesmo lote sob quatro estados diferentes de registro e afirma uma única cobrança.
Apenas o nível aberto está disponível hoje. Os níveis pagos e os watches abaixo são precificados e documentados, mas nenhum canal de pagamento está conectado ainda, então nenhum deles pode ser comprado. O nível aberto não precisa de conta nem chave.
| Nível | Para quem é | Preço |
|---|---|---|
| Open | Qualquer agente ou desenvolvedor, sem conta | Grátis, 500 identificadores por dia |
| Metered | Um agente individual ou uma pequena equipe | $0,0008 por identificador |
| Team | Uma empresa colocando em CI | $299/mês ou $2.990/ano |
| Feed | Registros, fornecedores de IDE, plataformas de CI, fornecedores de segurança | $1.500/mês ou $15.000/ano |
| Embedded | Uma plataforma enviando dentro do próprio produto | a partir de $2.500/mês |
O nível aberto é de 500 identificadores por dia para cada cliente, e todo o tráfego gratuito junto vem de um pool de 50.000 por dia. O pool é o que mantém um nível gratuito sem conta honesto: ninguém pode torná-lo maior fingindo ser muitos clientes. Tráfego pago nunca o toca, e a página de limites diz como ambos são relatados.
O gasto metered para no preço Team. Acima de 373.750 identificadores em um mês calendário, a conta passa para Team e não é mais metered. Um pipeline de build pergunta sobre os mesmos poucos milhares de pacotes estabelecidos o dia todo, essas respostas custam nada para servir, e uma fatura feita delas pareceria um imposto sobre fazer a coisa certa.
Watches custam $0,02 por identificador assistido por mês, 100 incluídos no Team e ilimitados no Feed. Eles são precificados no que você escolheu assistir, nunca em se um disparou. Um compromisso anual é de doze meses cobrados como dez.
Preços legíveis por máquina, idênticos aos números acima e gerados da mesma fonte, estão em /hallux/v1/pricing e no catálogo de agentes.
De onde veio
HALLUX incorpora o pkgguard, um gate de segurança de pacotes de código aberto que você pode executar na frente do seu próprio gerenciador de pacotes, e recebe seu suprimento de observações do slopbench, que mede com que frequência um modelo nomeia uma dependência à qual nenhum pacote responde. Ambos são Apache 2.0 e gratuitos para usar por conta própria.
BlvkWare.