
agent-vault-proxy v0.9.0
Claves de API just-in-time para agentes de IA - y cualquier otro proceso que enrutes a través de ella: quien llama solo ve un marcador de posición.
agent-vault-proxy
Claves API just-in-time para agentes de IA y cualquier otro proceso que enrutes a través de él: el llamador solo ve un marcador de posición.
AVP te protege de los ladrones de credenciales (Shai-Hulud y similares) y de los agentes con inyección de prompt que filtran tus secretos. Es un proxy local que inyecta los secretos reales en las solicitudes en pleno vuelo, de modo que un agente comprometido o con inyección de prompt no tiene nada que robar.
Bajo el capó: un proxy HTTPS de loopback que obtiene las credenciales de Bitwarden Secrets Manager — en la nube o autoalojado — justo a tiempo y las inyecta en las solicitudes salientes, de modo que el proceso llamador nunca tiene los bytes reales de las credenciales en su espacio de direcciones.
Completamente open source, deliberadamente simple
Toda funcionalidad está en este repositorio bajo MIT. No hay niveles de pago, ni edición enterprise, ni una nube en la que debas confiar, ni telemetría: puedes leerlo todo de principio a fin (unos pocos miles de líneas) y ejecutarlo para siempre.
Todo el flujo de trabajo es un solo paso: pide a la skill incluida que enrute un servicio, te dice la única línea que tienes que pegar en Bitwarden (o en tu vault), la pegas y el agente queda intermediado. Listo. Como cada credencial intermediada es un binding, la configuración es la lista completa y auditable de exactamente qué secretos puede alcanzar cada agente — nada implícito, nada oculto.
Y la cuestión no es el lock-in. El objetivo es simplemente que haya menos claves reales dentro de los agentes de IA, en todas partes. Si AVP encaja, úsalo; si una de las alternativas encaja mejor con tu configuración, usa esa. Cualquier herramienta que mantenga el secreto real fuera de la memoria del agente es una victoria.
Pruébalo. 10 segundos.
1. Instala — Linux pipx, macOS brew:
pipx install agent-vault-proxy
# macOS: brew install inflightsec/avp/agent-vault-proxy
sudo avp setup --bws # paste your Bitwarden token — generates the CA, starts the daemon
2. Instala la skill para que tu agente escriba el binding por ti:
/plugin marketplace add inflightsec/agent-vault-proxy
/plugin install avp@agent-vault-proxy
3. Pide a la skill que intermedie un servicio — di "enruta la API de Stripe a través de AVP." Genera el marcador de posición e imprime la nota exacta que debes pegar en BitWarden; nunca ve tu clave.
4. Guarda el secreto en tu vault — añade la clave real a Bitwarden Secrets Manager (o a Google Secret Manager) con esa nota y luego enruta tu agente a través del proxy:
avp env && avp run claude
Listo: el agente solo envía el marcador de posición; AVP sustituye la clave real durante la transmisión.
En lugar de avp run, puedes exportar las variables del proxy y de la CA en el ~/.zshrc de tu agente (o en cualquier rc de shell): consulta Uso para ver el bloque canónico. Es persistente, pero enruta todo tu shell a través de AVP, no solo el agente que AVP lanza.
Míralo en acción
Añade un secreto con tu agente de IA — sin editar configuración
Dar de alta una nueva credencial intermediada no debería significar escribir el YAML del binding a mano. La skill de avp incluida permite que un asistente de IA (Claude Code, o cualquier agente que cargue skills) te guíe paso a paso: dices "enruta la API de Acme a través de AVP," pregunta por el esquema de autenticación y el host, y luego te dice exactamente qué añadir: el nombre del secreto más la anotación que debes pegar en el campo Notes de Bitwarden Secrets Manager (o en la anotación avp-binding de Google Secret Manager, o en los metadatos por secreto de un backend futuro). Sin editar la configuración de AVP, sin redesplegar — y el asistente nunca ve ni almacena el secreto; él propone, tú aplicas.
La nota en sí son dos líneas que se pegan en el campo Notes del secreto:
# avp-binding
api.acme.com
La línea marcadora es lo que hace que sea un binding: una nota cuya primera línea no sea # avp-binding sigue siendo lo que es — una descripción humana que nunca se interpreta (ADR-0025).
Instala la skill
Claude Code (recomendado) — instálala como plugin para que esté disponible en todos los proyectos y se actualice con /plugin marketplace update:
/plugin marketplace add inflightsec/agent-vault-proxy
/plugin install avp@agent-vault-proxy
Invícala como /avp:avp, o simplemente di "enruta la API de Acme a través de AVP" y se activa por sí sola.
Manual (cualquier agente que cargue skills en formato Anthropic) — copia o enlaza simbólicamente skills/avp/ en el directorio de skills de tu agente; Claude Code lee ~/.claude/skills/. Un enlace simbólico la mantiene actualizada al hacer git pull:
ln -s "$PWD/skills/avp" ~/.claude/skills/avp
Documentación
- ¿Es AVP para ti? — qué hace, qué deliberadamente no hace, por qué y cuándo recurrir a él (empieza aquí si lo estás evaluando)
- Inicio rápido — primera ejecución de 10 minutos que termina con una sustitución visible
- Conceptos — placeholder, binding, la CA, fail-closed — en términos sencillos
- Requisitos previos — configuración de Bitwarden Secrets Manager (haz esto primero)
- Instalación en Linux · Docker · macOS
- Uso — cómo apuntar tu agente al proxy
- Aislamiento en Linux — componer AVP con
bubblewrappara el sandboxing del sistema de archivos - bindings.example.yaml — esquema completo de configuración
- skill de avp — deja que un asistente de IA redacte tus bindings de notas/anotaciones (solo propone, sin editar configuración, sin redesplegar)
- Arquitectura — modelo de amenazas, invariantes G1–G9, endurecimiento (hardening), riesgos residuales
- Arquitectura de adaptadores — backends de vault (hoy se incluyen Bitwarden + Google Secret Manager,
staticpara desarrollo) y cómo añadir otro - Google Secret Manager — guarda secretos en GSM: configuración, autenticación sin claves (keyless) y pruebas de extremo a extremo
- Comparativa — frente a Vault Agent, Doppler,
op run,superfly/tokenizer, OneCLI y otras herramientas de credenciales para agentes (usa la que mejor encaje: la idea es que más agentes estén protegidos, no el lock-in) - CHANGELOG · SECURITY · CONTRIBUTING · CREDITS
El proxy nunca llama a casa. Las únicas conexiones salientes que realiza son al endpoint de BWS que configures y a las APIs upstream que tu agente esté llamando. Sin telemetría. El registro de auditoría en /var/log/agent-vault-proxy/audit.jsonl es solo local por defecto; el envío fuera del host (off-box) opcional lo reenvía — desde un sidecar independiente, nunca desde el proxy — solo a un colector que tú ejecutes y controles.
Licencia
MIT — consulta LICENSE. Toda funcionalidad se incluye aquí: sin open-core, sin edición enterprise, sin servicio alojado. Hazle fork, léelo de principio a fin, ejecútalo para siempre. El trabajo previo se reconoce en CREDITS.md.