Haldir

Identidade, segredos e auditoria para agentes de IA. O modo proxy intercepta toda chamada de ferramenta MCP.

Documentação

Haldir — A Camada de Guardião para Agentes de IA

tests codecov type-checked: mypy Smithery PyPI PyPI Downloads License: MIT Security: SECURITY.md GitHub Stars SafeSkill 89/100

A camada de governança open-source para agentes de IA. Identidade, segredos, auditoria e aplicação de políticas — licença MIT, auto-hospedado ou use nossa nuvem.

O Haldir impõe governança em toda chamada de ferramenta de agente de IA: sessões com escopo definido e limites de gastos, segredos criptografados que o modelo nunca vê, trilha de auditoria à prova de adulteração com encadeamento por hash, aprovações humanas no fluxo e um proxy que intercepta toda chamada MCP antes que ela chegue às suas ferramentas. SDKs nativos para LangChain, CrewAI, AutoGen e Vercel AI SDK.

Haldir quickstart: install, create a scoped session, check permission, log the action to the hash-chained audit trail

Haldir architecture: Agent → Proxy → (Gate/Vault/Watch/Policy) → Upstream APIs

CLI

$ haldir overview

  Haldir tenant overview
  acct_xyz123  ·  tier pro  ·  2026-04-19T18:42:11+00:00

  Status     ● ok
  Actions      4,217 / 50,000   ████░░░░░░░░░░░░░░░░    8.4%
  Spend      $ 47.30 this month
  Sessions        12 active  ·  3/10 agents
  Vault            8 secrets  ·  62 accesses this month
  Audit        1,847 entries  ·  0 flagged (7d)  ·  chain ✓
  Webhooks         2 registered  ·  541 deliveries (24h)  ·  99.82% success
  Approvals        1 pending

Instale uma vez e controle toda a plataforma pelo terminal:

pip install haldir
haldir login                           # one-time; stashes API key
haldir overview --watch                # top-style live dashboard
haldir status                          # green/yellow/red component pills
haldir ready                           # exits 0/1, perfect for CI
haldir audit tail --agent my-bot       # the last N entries
haldir audit export --format=jsonl --out audit-2026-04.jsonl
haldir audit verify                    # hash chain integrity check
haldir webhooks deliveries             # last 20 retry attempts
haldir migrate up                      # apply pending schema migrations

Todo comando aceita --json para scripts. haldir --help para a superfície completa.

Duas formas de executar o Haldir

Auto-hospedadoNuvem (haldir.xyz)
PreçoGratuito para semprePlano gratuito + planos pagos
RecursosTudoTudo — mesma API, mesmos SDKs
Você executaAPI + PostgresNada
Melhor paraIndústrias regulamentadas, ambientes isolados, "preciso ser dono dos dados""Só quero que funcione"

Auto-hospedagem em 5 minutos

git clone https://github.com/ExposureGuard/haldir.git
cd haldir
cp .env.example .env
python3 -c 'import base64, os; print(base64.urlsafe_b64encode(os.urandom(32)).decode())'
# paste the output into .env as HALDIR_ENCRYPTION_KEY, then:
docker compose up -d
curl http://localhost:8000/health

Guia completo de auto-hospedagem: SELF_HOSTING.md

Ou use nossa nuvem

pip install haldir

Pronto — aponte para https://haldir.xyz, sem cadastro, API ao vivo.


Ao vivo agora: haldir.xyz · Documentação da API · Especificação OpenAPI · Smithery

🧪 Aceitando 5 parceiros de design agora. 30 dias grátis, acesso total, linha direta com o fundador. Se você está levando agentes de IA para produção, envie um e-mail para sterling@haldir.xyz.

Performance

O Haldir é rápido o suficiente para ficar no caminho crítico de toda chamada de ferramenta de agente sem se tornar um gargalo.

Throughput HTTP de servidor único (gunicorn com 4 workers, 32 clientes concorrentes, backend SQLite otimizado, toda requisição passa pela stack completa de middleware — autenticação, validação, idempotência, métricas, logging estruturado):

EndpointRPSp50p95p99
GET /healthz1.63819,1 ms32,5 ms41,6 ms
GET /v1/status1.38222,2 ms30,8 ms45,4 ms
GET /v1/sessions/:id90329,2 ms95,5 ms172,1 ms
POST /v1/sessions (create)1.14227,7 ms35,2 ms39,9 ms
POST /v1/audit (hash-chain write)1.09228,7 ms37,6 ms52,6 ms

Hardware: Intel Core i3-1215U de 12ª geração (8 núcleos, 8 GB de RAM). O SQLite está configurado com WAL + synchronous=NORMAL + mmap de 256 MiB + armazenamento temporário em memória — o p99 da consulta de sessão caiu 52 % em comparação com o caminho sem otimização. Implantações com Postgres (pool configurável via HALDIR_PG_POOL_MIN/MAX) reduzem ainda mais o p99; ative via DATABASE_URL=postgresql://....

Custo de primitivas (Python puro, sem I/O):

Primitivap50Observações
Vault.store_secret (criptografia AES-256-GCM + vínculo AAD)< 10 µsem memória, sem escrita em banco
Vault.get_secret (descriptografia AES-256-GCM + verificação AAD)< 10 µsem memória
AuditEntry.compute_hash (SHA-256 sobre payload canônico)< 10 µs
Gate.check_permission via REST~50-120 msrede + ida e volta ao banco, na frente do Cloudflare
Watch.log_action via REST~50-150 msinclui consulta à cadeia + escrita no banco
Envelope completo de ferramenta governada (verificação + registro)~100-250 ms

Agentes normalmente aguardam 500-3000 ms por uma resposta do LLM e 100-1000 ms por uma chamada de API upstream, então a sobrecarga do Haldir fica dentro do ruído. Reproduza localmente:

# Concurrent HTTP throughput (launches a local gunicorn, ~60s total)
python bench/bench_http.py --duration 10 --concurrency 32 --workers 4

# Primitive cost only (no API key needed)
python bench/bench_primitives.py --local

# End-to-end against the hosted service
export HALDIR_API_KEY=hld_...
python bench/bench_primitives.py

Conformidade

Um único endpoint gera um pacote de prova de controle pronto para auditoria, cobrindo oito seções, cada uma ancorada a um critério de confiança do SOC2:

haldir compliance evidence --since 2026-01-01 --out evidence-q1-2026.md
#SeçãoSOC2
1Identidade (tenant, assinatura, período)
2Controle de acesso (API keys + escopos por chave)CC6.1
3Criptografia (AES-256-GCM, vínculo AAD)CC6.7
4Trilha de auditoria (contagem de entradas, integridade da cadeia de hash)CC7.2
5Governança de gastos (limites por sessão, registros de pagamento)CC5.2
6Aprovações humanas (ciclo de vida de solicitação/decisão)CC8.1
7Alertas externos (taxa de sucesso de entrega de webhooks)CC7.3
8Assinatura de documento (auto-hash SHA-256)

O pacote se autentica: um SHA-256 sobre o JSON canônico das seções 1-7. Um auditor que receber um pacote arquivado pode re-chamar /v1/compliance/evidence/manifest e confirmar que o digest corresponde — prova de que o documento não foi modificado após a emissão.

JSON para upload no cofre de evidências, Markdown para o momento "mostre isso ao auditor" — ambos do mesmo endpoint /v1/compliance/evidence.

Por que o Haldir

Agentes de IA estão chamando APIs, gastando dinheiro e acessando credenciais sem nenhuma supervisão. O Haldir é a camada que faltava:

Sem o HaldirCom o Haldir
Agente com acesso ilimitadoSessões com escopo e permissões
Segredos em variáveis de ambiente em texto puroCofre criptografado com AES e controle de acesso
Sem limites de gastosAplicação de orçamento por sessão
Nenhum registro do que aconteceuTrilha de auditoria imutável
Nenhuma supervisão humanaFluxos de aprovação com webhooks
Agente fala diretamente com as ferramentasProxy intercepta e aplica políticas

Início Rápido

pip install haldir
from sdk.client import HaldirClient

h = HaldirClient(api_key="hld_xxx", base_url="https://haldir.xyz")

# Create a governed agent session
session = h.create_session("my-agent", scopes=["read", "spend:50"])

# Store secrets agents never see directly
h.store_secret("stripe_key", "sk_live_xxx")

# Retrieve with scope enforcement
key = h.get_secret("stripe_key", session_id=session["session_id"])

# Authorize payments against budget
h.authorize_payment(session["session_id"], 29.99)

# Every action is logged
h.log_action(session["session_id"], tool="stripe", action="charge", cost_usd=29.99)

# Revoke when done
h.revoke_session(session["session_id"])

Produtos

Gate — Identidade e Autenticação de Agentes

Sessões com escopo, permissões, limites de gastos e TTL. Sem sessão = sem acesso.

curl -X POST https://haldir.xyz/v1/sessions \
  -H "Authorization: Bearer hld_xxx" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": "my-bot", "scopes": ["read", "browse", "spend:50"], "ttl": 3600}'

Vault — Segredos Criptografados e Pagamentos

Armazenamento criptografado com AES. Agentes solicitam acesso; o Vault verifica o escopo da sessão. Autorização de pagamento com orçamentos por sessão.

curl -X POST https://haldir.xyz/v1/secrets \
  -H "Authorization: Bearer hld_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "api_key", "value": "sk_live_xxx", "scope_required": "read"}'

Watch — Trilha de Auditoria e Conformidade

Registro imutável de cada ação. Detecção de anomalias. Rastreamento de custos. Exportações de conformidade.

curl https://haldir.xyz/v1/audit?agent_id=my-bot \
  -H "Authorization: Bearer hld_xxx"

Proxy — Camada de Aplicação de Políticas

Fica entre agentes e servidores MCP. Toda chamada de ferramenta é interceptada, autorizada e registrada. Suporta aplicação de políticas: allow lists, deny lists, limites de gastos, rate limits, janelas de tempo.

# Register an upstream MCP server
curl -X POST https://haldir.xyz/v1/proxy/upstreams \
  -H "Authorization: Bearer hld_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "myserver", "url": "https://my-mcp-server.com/mcp"}'

# Call through the proxy — governance enforced
curl -X POST https://haldir.xyz/v1/proxy/call \
  -H "Authorization: Bearer hld_xxx" \
  -H "Content-Type: application/json" \
  -d '{"tool": "scan_domain", "arguments": {"domain": "example.com"}, "session_id": "ses_xxx"}'

Approvals — Humano no Fluxo

Pausa a execução do agente para revisão humana. Notificações via webhook. Aprove ou negue pelo dashboard ou pela API.

# Require approval for spend over $100
curl -X POST https://haldir.xyz/v1/approvals/rules \
  -H "Authorization: Bearer hld_xxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "spend_over", "threshold": 100}'

Servidor MCP

O Haldir está disponível como servidor MCP com 10 ferramentas para Claude, Cursor, Windsurf e qualquer IA compatível com MCP:

{
  "mcpServers": {
    "haldir": {
      "command": "haldir-mcp",
      "env": {
        "HALDIR_API_KEY": "hld_xxx"
      }
    }
  }
}

Ferramentas MCP: createSession, getSession, revokeSession, checkPermission, storeSecret, getSecret, authorizePayment, logAction, getAuditTrail, getSpend

Endpoint HTTP MCP: POST https://haldir.xyz/mcp

Arquitetura

Agent (Claude, GPT, Cursor, etc.)
    │
    ▼
┌─────────────────────────────┐
│       Haldir Proxy          │  ← Intercepts every tool call
│  Policy enforcement layer   │
└──────┬──────────┬───────────┘
       │          │
  ┌────▼────┐ ┌───▼────┐
  │  Gate   │ │ Watch  │
  │identity │ │ audit  │
  │sessions │ │ costs  │
  └────┬────┘ └────────┘
       │
  ┌────▼────┐
  │ Vault   │
  │secrets  │
  │payments │
  └────┬────┘
       │
       ▼
  Upstream MCP Servers
  (your actual tools)

Referência da API

Documentação completa em haldir.xyz/docs

EndpointMétodoDescrição
/v1/keysPOSTCriar API key
/v1/sessionsPOSTCriar sessão de agente
/v1/sessions/:idGETObter informações da sessão
/v1/sessions/:idDELETERevogar sessão
/v1/sessions/:id/checkPOSTVerificar permissão
/v1/secretsPOSTArmazenar segredo
/v1/secrets/:nameGETRecuperar segredo
/v1/secretsGETListar segredos
/v1/secrets/:nameDELETEExcluir segredo
/v1/payments/authorizePOSTAutorizar pagamento
/v1/auditPOSTRegistrar ação
/v1/auditGETConsultar trilha de auditoria
/v1/audit/spendGETResumo de gastos
/v1/approvals/rulesPOSTAdicionar regra de aprovação
/v1/approvals/requestPOSTSolicitar aprovação
/v1/approvals/:idGETVerificar status da aprovação
/v1/approvals/:id/approvePOSTAprovar
/v1/approvals/:id/denyPOSTNegar
/v1/approvals/pendingGETListar pendentes
/v1/webhooksPOSTRegistrar webhook
/v1/webhooksGETListar webhooks
/v1/proxy/upstreamsPOSTRegistrar upstream
/v1/proxy/toolsGETListar ferramentas do proxy
/v1/proxy/callPOSTChamar via proxy
/v1/proxy/policiesPOSTAdicionar política
/v1/usageGETEstatísticas de uso
/v1/metricsGETMétricas da plataforma

Descoberta de Agentes

O Haldir é descoberto por meio de todos os principais protocolos:

URLProtocolo
haldir.xyz/openapi.jsonOpenAPI 3.1
haldir.xyz/llms.txtDocumentação legível por LLM
haldir.xyz/.well-known/ai-plugin.jsonPlugins do ChatGPT
haldir.xyz/.well-known/mcp/server-card.jsonDescoberta MCP
haldir.xyz/mcpMCP JSON-RPC
smithery.ai/server/haldir/haldirRegistro Smithery
pypi.org/project/haldirPyPI

Licença

MIT

Links