
agent-vault-proxy v1.1.1
Chaves de API just-in-time para agentes de IA - e qualquer outro processo que você roteie através dela: o chamador só vê um placeholder.
Keys on the Wire
Seu agente de IA nunca guarda suas chaves de API. Ele envia um placeholder; o segredo real é trocado no fio.
Impede ladrões de credenciais (Shai-Hulud e similares) e agentes com prompt injection de vazarem seus segredos. Um agente comprometido não tem nada para levar.
Como funciona
- Seu agente envia uma requisição com um placeholder, não a chave.
- O Keys on the Wire troca pelo segredo real do seu vault, em trânsito.
- O agente nunca vê a chave. Nada para vazar, nada para roubar.
Por baixo dos panos, é um proxy HTTPS em loopback. Ele busca cada credencial do seu vault no momento certo e a injeta na requisição de saída, de modo que o processo chamador (seu agente, ou qualquer outra coisa que você roteie por ele) nunca guarda os bytes reais.
Backends de vault: macOS Keychain, Bitwarden Secrets Manager, Google Secret Manager, AWS Secrets Manager, static (sem vault, para experimentar) e env. No Mac, o backend Keychain não precisa de conta em vault na nuvem nem de dependência extra: seus segredos ficam onde já estão. (kow setup ainda usa Bitwarden por padrão; passe o backend que você quiser.) Veja Arquitetura de adaptadores.
Veja em ação
Início rápido
1. Instale (Linux pipx, macOS brew):
pipx install 'keys-on-the-wire[bitwarden]'
# macOS: brew install inflightsec/keys-on-the-wire/keys-on-the-wire
sudo kow setup --bws
2. Instale a skill para que seu agente escreva o binding por você:
/plugin marketplace add inflightsec/keys-on-the-wire
/plugin install kow@keys-on-the-wire
3. Faça o broker de um serviço. Diga "roteie a API do Stripe pelo Keys on the Wire." A skill gera o placeholder e imprime a nota exata para colar no seu vault. Ela nunca vê sua chave.
4. Adicione a chave real ao seu vault com essa nota, depois roteie seu agente pelo proxy:
kow env && kow run claude
Pronto. O agente só envia o placeholder; o Keys on the Wire troca pela chave real no fio.
Novo nisso? O guia de início rápido percorre a primeira execução por completo, e Pré-requisitos cobre a configuração do vault. Prefere variáveis de ambiente do shell em vez de kow run? Veja Uso.
Antes de apontar para chaves de produção
- Teste atrás de um processo.
kow run -- <command>define as variáveis do proxy e da CA apenas nesse processo; seu shell de login nunca as herda. Escopo para um único processo. - Fail-closed é o único modo. Se o kow estiver fora do ar, as chamadas roteadas falham; um binding que nega retorna 503 em vez de passar a requisição sem proteção.
- Ele impede roubo, não uso indevido. O kow tira a chave do contexto do agente; ele não julga por que uma API está sendo chamada. Restringir um binding com
methods:epaths:é a alavanca, e isso é aplicado. É para você? traça o limite completo. - Autenticação além de cabeçalhos estáticos já vem: refresh OAuth2 e client-credentials, JWT bearer, GitHub App, HMAC e AWS SigV4, com presets para Google, Microsoft, Auth0, Slack, Atlassian e Okta.
Faça o broker de um servidor MCP
Cada servidor MCP mantém um token de longa duração em texto claro na configuração do seu cliente, legível por todos os outros servidores que o cliente carrega. kow mcp install troca esse segredo permanente por um placeholder e roteia a saída do servidor pelo proxy:
kow mcp install github --host api.github.com --env-var GITHUB_PERSONAL_ACCESS_TOKEN \
--server-cmd "npx -y @modelcontextprotocol/server-github"
Ele imprime a nota do vault e o comando exato claude mcp add --env. Design e modelo de ameaças: ADR-0040.
O binding é uma linha
Integrar uma credencial não é YAML escrito à mão. A skill kow incluída pergunta o formato de autenticação e o host, depois diz exatamente o que colar no campo Notes do seu segredo:
# kow-binding
api.acme.com
Essa linha marcadora é o que faz dele um binding; sem ela, a nota permanece uma descrição humana comum, nunca interpretada (ADR-0025). O assistente propõe, você aplica. Ele nunca vê nem armazena o segredo.
Documentação
Comece aqui — É para você? se estiver avaliando · Pré-requisitos para configurar seu vault · Início rápido para uma primeira execução em 10 minutos.
Entenda — Conceitos para placeholder, binding, CA e fail-closed em termos simples · Arquitetura para o modelo de ameaças, as invariantes G1 a G9 e riscos residuais.
Instale e opere — Linux · Docker · macOS · Uso · Processo único · Isolamento no Linux · Isolamento no macOS · Google Secret Manager
Referência — bindings.example.yaml é o esquema completo de configuração · Arquitetura de adaptadores para backends de vault e como adicionar um · Comparação com Vault Agent, Doppler, op run e outros · CHANGELOG · SECURITY · CONTRIBUTING · CREDITS