Claude Code
your-project/.keynv.env{"mcpServers": {"keynv": {"command": "keynv-mcp"}, ...}}
keynv init- MCP server with use_secret refs
- Output redactor on every tool result
- Shell wrapper: keynv exec --
Self-hosted vault for your team’s API keys, database passwords, and SSH credentials. Your AI coding agent sees the alias literal — @billing.prod.db_password — never the value.
no credit card · self-host the same binary anytime
$ keynv exec --mysql -p@billing.prod.db_password# exit 0 · 142ms$ ps aux | grep mysqlmysql -p▒▒▒▒▒▒ -h ▒▒▒▒▒▒# argv redacted by output scanner
# resolved at fork-time, no env / no argvmysql -p$secret_via_stdin→ connected to db.prod.acme.internal$ select count(*) from payments;42,318# this output never reaches the agent's transcript
Developers leak credentials constantly — .env files committed to repos, keys left in shell history, tokens in tool outputs. AI agents permanently residing in your terminal made it worse: every command, every file, every diff is shipped to a vendor’s logs. Existing vaults (HashiCorp, Doppler, 1Password) are mature but none were designed around AI agents being there.
Add a secret with the CLI or web UI. Encrypted at rest with a per-project DEK; the master KEK lives in your OS keychain.
In code, configs, and bash you type @project.env.key. The literal alias is the only string the agent ever sees.
keynv exec spawns a subprocess with the real value injected via stdin. Tool outputs are scanned for leaks before they return.
Run keynv init in your project root — it scans existing.env files, uploads detected secrets to the vault, and writes a project-local .keynv.env that maps alias names to vault references. Safe to commit — alias literals only, never raw values.
your-project/.keynv.env{"mcpServers": {"keynv": {"command": "keynv-mcp"}, ...}}
keynv initany MCP-compatible agent{"mcpServers": {"keynv": {"command": "keynv-mcp"}}}
keynv-mcpany process · zero config# in your bash / zsh / fish$ keynv exec --pg_dump -d @reports.prod.dsn# subprocess gets the value via stdin;# your shell history sees only the alias
keynv exec -- pnpm devnpm install -g @keynv/clikeynv --versionfull first-run walkthrough → quickstart
The whole platform, on your infra. Single binary + SQLite + Litestream.
We run it for your team. Same binary, hosted region of your choice, 99.9% SLA.
HSM/KMS-backed KEK, SSO, on-prem audit export, named architect.
self-host stays free regardless of which tier you pick