Click the eye.
Every key you've saved, with a masked hint so you know which one it is. Click a row to copy it. The clipboard clears itself after 30 seconds. Paste NAME=value to add a new one.
Envy
A tiny Mac app that keeps the keys you reuse in your Keychain and drops them into any project as a ready .env. Even when your coding agent is the one asking.
For macOS. Lives in your menu bar. One email when it ships.
Envy ships a small command line tool. Coding agents run it like any shell command, and they only ever learn which names were written.
~/code/rag-demo $ envy list ANTHROPIC_API_KEY OPENAI_API_KEY GEMINI_API_KEY HF_TOKEN # names only, never values ~/code/rag-demo $ envy fill --from .env.example --to .env waiting for approval in the menu bar… ✓ ANTHROPIC_API_KEY written ✓ CLAUDE_API_KEY written · OPENAI_API_KEY already set · PINECONE_API_KEY not in Envy
Anything that can run a shell command. The approval names who is asking, and that label grants nothing on its own.
Setup is one paste into CLAUDE.md or AGENTS.md.
Envy is an eye in your menu bar and one shortcut. That's the whole app.
Every key you've saved, with a masked hint so you know which one it is. Click a row to copy it. The clipboard clears itself after 30 seconds. Paste NAME=value to add a new one.
Type two letters. an finds ANTHROPIC_API_KEY, hf finds HF_TOKEN. Tab picks a few keys, Return copies them as ready .env lines. ⌘K has the rest: export lines, JSON, or straight into a folder.
Drop a .env.example on the eye. Envy shows the names it will write and the target, never the values. CLAUDE_API_KEY gets your ANTHROPIC_API_KEY. Real values you already set are left alone, and the file goes into .gitignore.
Envy never gives a key's value to any command or agent. It writes the file itself, after you approve.
No account. No sync. No network calls. Your keys stay on your Mac.
No command returns a value.
No flag, output format, URL scheme or AppleScript either. The envy tool contains no Keychain code at all. It gets back names, paths and statuses.
Encrypted and locked with your Mac login. Other apps get a macOS prompt.
The prompt shows names and the full path. Unanswered, it denies itself after 2 minutes.
The clipboard clears after 30 seconds and clipboard managers are asked to skip it.
Targets must be plain files inside the project folder. Symlinks, hard links, pipes and devices are refused before any prompt appears.
What Envy doesn't control: once a .env is written it's an ordinary file, and what a tool does with it is up to that tool. Any app can read a copy you make during its 30 seconds. UI scripting could in theory click Approve until Touch ID on Approve ships.
No. The menu-bar list, the ⌥⌘E palette and drag-and-drop work on their own. The command line is there when you want it.
No. Envy reads the secrets you export in your shell config and any .env you drop in. It only lists what looks like a secret and asks before replacing anything.
Yes. envy exits 0 when done, 2 when denied, 3 with no answer in 2 minutes and 4 when the target is outside the project. If Envy isn't running, envy starts it and waits.
Every one of them, in Settings › Shortcuts. Envy refuses combinations that would break typing or clash with another app, and tells you why.
No. There's no account, no sync and no network call. Values live in your login Keychain.
Not decided yet. That's what the waitlist is for. You'll get one email when it's ready.
Join the waitlist and get Envy when it ships.