Skip to main content

Loopback HTTPS proxy that fetches API credentials from Bitwarden Secrets Manager just-in-time and injects them into outbound requests, so the calling process never holds the real credential bytes in its address space.

Project description

agent-vault-proxy

Just-in-time API keys for AI agents and any other process you route through it: the caller only ever sees a placeholder.

AVP protects you from credential stealers (Shai-Hulud and similar) and prompt-injected agents leaking your secrets. It's a local proxy that injects real secrets into requests in-flight, so a compromised or prompt-injected agent has nothing to steal.

PyPI License: MIT CI

How agent-vault-proxy substitutes secrets on the wire

Under the hood: a loopback HTTPS proxy that fetches credentials from Bitwarden Secrets Manager — cloud or self-hosted — just-in-time and injects them into outbound requests, so the calling process never holds the real credential bytes in its address space.

Try it. 10 seconds.

$ pipx install agent-vault-proxy            # pipx puts `avp` on $PATH for sudo
$ sudo avp setup --static
$ sudo avp secret add STRIPE_API_KEY         # prompts; no echo added secret 'STRIPE_API_KEY'
  next: run `avp env` to refresh ~/.config/avp/env
$ avp env
$ avp run claude                             # auto-loads ~/.config/avp/env, sets proxy, exec

avp run reads the placeholder env file itself, so the real key never enters your shell — not even as a placeholder. Add more secrets later by repeating secret add + avp env.

No Bitwarden account? --static keeps secrets in a local YAML file owned by the service user. Upgrade later by editing backend: in /etc/agent-vault-proxy/bindings.yaml (setup never overwrites an existing config).

On Mac: brew install inflightsec/avp/agent-vault-proxy

See it in action

agent-vault-proxy demo: prompt injection vs. credential isolation

Add a secret with your AI agent — no config editing

Onboarding a new brokered credential shouldn't mean hand-writing binding YAML. The bundled avp-bindings skill lets an AI assistant (Claude Code, or any agent that loads skills) walk you through it: you say "route the Acme API through AVP," it asks the auth shape and host, then tells you exactly what to add — the secret name plus the annotation to paste into the Bitwarden Secrets Manager Notes field (or the Google Secret Manager avp-binding annotation, or a future backend's per-secret metadata). No AVP config edit, no redeploy — and the assistant never sees or stores the secret; it proposes, you apply.

Install the skill

Claude Code (recommended) — install it as a plugin, so it's available in every project and updates with /plugin marketplace update:

/plugin marketplace add inflightsec/agent-vault-proxy
/plugin install avp@agent-vault-proxy

Invoke it as /avp:avp-bindings, or just say "route the Acme API through AVP" and it triggers on its own.

Manual (any agent that loads Anthropic-format skills) — copy or symlink skills/avp-bindings/ into your agent's skills directory; Claude Code reads ~/.claude/skills/. A symlink keeps it current on git pull:

ln -s "$PWD/skills/avp-bindings" ~/.claude/skills/avp-bindings

Docs

The proxy never phones home. The only outbound connections it makes are to the BWS endpoint you configure and the upstream APIs your agent is calling. No telemetry. The audit log under /var/log/agent-vault-proxy/audit.jsonl is local-only by default; optional off-box shipping forwards it — from a separate sidecar, never the proxy — only to a collector you run and control.

License

MIT — see LICENSE. Prior art acknowledged in CREDITS.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_vault_proxy-0.8.0.tar.gz (670.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_vault_proxy-0.8.0-py3-none-any.whl (165.2 kB view details)

Uploaded Python 3

File details

Details for the file agent_vault_proxy-0.8.0.tar.gz.

File metadata

  • Download URL: agent_vault_proxy-0.8.0.tar.gz
  • Upload date:
  • Size: 670.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for agent_vault_proxy-0.8.0.tar.gz
Algorithm Hash digest
SHA256 cc0a01ec6dc6d955d39e60e8f08491094b46586fc2e0e35c591105d9f961202f
MD5 9290fe39dcef25169e8eb6fad3929e24
BLAKE2b-256 e03638bf0574338061cd1f59143fec38ac03740f5322a52a6f8ae635a7bf3145

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_vault_proxy-0.8.0.tar.gz:

Publisher: release.yml on inflightsec/agent-vault-proxy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agent_vault_proxy-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_vault_proxy-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a193e73ad4d3235b7a7e66794394afc9aa7368c7523f011b10479d888237e95
MD5 842da5f30a3e9899aab6347b25b75496
BLAKE2b-256 f65c7d8b9c4d4fb2cb4b6d61492e9bc6dc2f5c8a51f2844742cd8d79cd754035

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_vault_proxy-0.8.0-py3-none-any.whl:

Publisher: release.yml on inflightsec/agent-vault-proxy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page