Launching today

keyshroud
Let AI coding agents use your API keys without seeing them
0 followers
Let AI coding agents use your API keys without seeing them
0 followers
Coding agents cat your dotenv file and the key ends up in the transcript. keyshroud keeps secrets in your own Vaultwarden or Bitwarden vault, injects them into the commands your agent runs, and masks every value before the model reads it. Works with Claude Code, Codex, Cursor, OpenCode, Gemini CLI and pi. New secrets go through a hidden-input dialog, never the chat. Tell your agent "Read keyshroud.dev/install.md and set me up." Free, MIT, no telemetry.







Hi Product Hunt š
I built keyshroud after watching a coding agent cat a dotenv file while debugging. The token went straight into the transcript, and from there to the model provider's logs.
The usual fixes didn't fit. .gitignore stops commits, not reads. Most vault MCP servers hand plaintext to the model. 1Password's op run does masking well, but I self-host Vaultwarden.
So keyshroud does three things:
⢠Secrets stay in your own Vaultwarden or Bitwarden vault. Projects commit .env.refs files with lines like GH_TOKEN=bw://GitHub CLI token.
⢠"keyshroud run -- your-command" injects the real values into the command and masks them in anything the agent reads: the token shows up as redacted:GH_TOKEN, even when the command fails.
⢠Agent integrations do it automatically: Claude Code hooks, a pi/omp extension, a skill for Codex, Cursor, OpenCode and Gemini CLI, and an MCP server for chat-only clients.
New secrets go through a hidden-input dialog on your desktop, so they never touch the chat. keyshroud setup gives agents their own vault account, so they never hold your personal master password. The master password isn't stored by default either: keyshroud asks when the vault is locked, and sessions end after 30 minutes. Runs on macOS, Linux and Windows.
You can also let your agent install it: "Read https://keyshroud.dev/install.md and set up keyshroud for me."
What it is not: a sandbox. A malicious or prompt-injected agent can still send a value somewhere on purpose. keyshroud stops the accidental leaks, which are the common ones.
No backend, no telemetry, MIT. I'd love to hear which agent or vault you want supported next.