{"slug": "envault-a-local-minimum-encrypted-vault-for-coding-agents", "title": "Envault –- A local, minimum, encrypted vault for coding agents", "summary": "Envault, a new open-source tool from developer MildyNora, provides a local, encrypted vault that lets coding agents like Claude Code, Codex, and opencode use API keys and secrets without ever seeing the plaintext values. The tool, available as a prebuilt binary or from source for macOS, Windows, and Linux, encrypts secrets with age, stores the private key in the OS keychain, and masks secrets from command output, with features including Touch ID/Windows Hello gating and an audit log.", "body_md": "**A local, minimum, encrypted secrets vault for coding agents — let your AI works with your keys and secret, but never sees them.**\n\n**English** · [简体中文](/MildyNora/envault/blob/master/README.zh-CN.md)\n\nStore your API keys, tokens, and passwords once. Your coding agent refers to them\n**by name** and runs commands through envault — the plaintext only ever exists\ninside the process envault launches, never in the model's context, a `.env`\n\n, or\nyour chat history.\n\nThe only one command\n\nyourun is— it opens the dashboard above, where you add keys and change settings. Every other`envault`\n\n`envault …`\n\ncommand below (`run`\n\n,`link`\n\n,`request`\n\n, …) is written by yourcoding agent, which learns them from the skill envault installs. You rarely type them yourself.\n\n**Prebuilt binary — no Rust needed:**\n\n```\ncurl -fsSL https://raw.githubusercontent.com/MildyNora/envault/master/install.sh | bash\n# Windows (PowerShell)\nirm https://raw.githubusercontent.com/MildyNora/envault/master/install.ps1 | iex\n```\n\nOr **from source** (needs [Rust](https://rustup.rs)):\n\n```\ngit clone https://github.com/MildyNora/envault.git && cd envault && ./install.sh\n```\n\nAny of these installs the binary, creates your vault, and sets up the agent skill. Runs on macOS, Windows, and Linux; re-run to upgrade.\n\nRun ** envault**. Everything is inside the TUI (shown above): add and edit\nsecrets, toggle\n\n**Touch ID** and the\n\n**audit log**, and\n\n**rotate** your keypair — no commands to memorize. Changing a setting or rotating is gated behind Touch ID / Windows Hello, so an agent can't do it in your place.\n\nYour agent only ever sees **names and age-encrypted ciphers**. It maps a name to\nan environment variable and runs your command through envault, which injects the\nreal value and **masks it out of the output**:\n\n``` bash\n$ envault link OPENAI_API_KEY openai\n$ envault run -- python app.py      # value injected · output masked\n```\n\nWhen it needs a key you haven't stored, it would not ask you to paste it into chat —\nit **requests** a window opens for you:\n\nYou paste it once (the agent never sees it) or decline. `envault skill install`\n\nteaches this workflow to Claude Code, Codex, and opencode. Or you can manually set up the keys and tell the agent their names.\n\n**The commands your agent runs** — you don't need these\n\n| Command | What it does |\n|---|---|\n`envault ls --json` |\nlist secret names (never values) |\n`envault link <VAR> <name>` |\nmap an env var to a name |\n`envault run -- <cmd>` |\nrun with secrets injected + output masked |\n`envault request <name>` |\nask you for a secret it doesn't have |\n`envault fill <name>` |\ntype a secret into a browser field (opt-in) |\n`envault import <.env>` |\nencrypt a dotenv file into the vault |\n\nSecrets are [age](https://age-encryption.org)-encrypted; the private key lives in\nyour **OS keychain** and never touches disk in the clear. Full design and threat\nmodel: [ docs/how-it-works.md](/MildyNora/envault/blob/master/docs/how-it-works.md).\n\nenvault keeps secrets **out of your agent's context and your files** — the\nprompt-leak and accidental-exposure threat. It is **not a runtime sandbox**: In a very rare case a genuinely malicious process running as *you* can still use a secret through `envault run`\n\n, and a fully compromised machine can halt the audit log. If that's your threat model, you need OS-level isolation. Details in [SECURITY.md](/MildyNora/envault/blob/master/SECURITY.md).\n\nIssues and PRs welcome — see [CONTRIBUTING.md](/MildyNora/envault/blob/master/CONTRIBUTING.md). Found a\nvulnerability? Please **don't** open a public issue — [SECURITY.md](/MildyNora/envault/blob/master/SECURITY.md).\n\n[MIT](/MildyNora/envault/blob/master/LICENSE) · beta — verify the keychain / biometric paths on your own hardware.", "url": "https://wpnews.pro/news/envault-a-local-minimum-encrypted-vault-for-coding-agents", "canonical_source": "https://github.com/MildyNora/envault", "published_at": "2026-08-29 16:24:06+00:00", "updated_at": "2026-08-29 16:48:50.186218+00:00", "lang": "en", "topics": ["ai-tools", "ai-safety", "developer-tools"], "entities": ["Envault", "MildyNora", "Claude Code", "Codex", "opencode", "age", "Touch ID", "Windows Hello"], "alternates": {"html": "https://wpnews.pro/news/envault-a-local-minimum-encrypted-vault-for-coding-agents", "markdown": "https://wpnews.pro/news/envault-a-local-minimum-encrypted-vault-for-coding-agents.md", "text": "https://wpnews.pro/news/envault-a-local-minimum-encrypted-vault-for-coding-agents.txt", "jsonld": "https://wpnews.pro/news/envault-a-local-minimum-encrypted-vault-for-coding-agents.jsonld"}}