Secrets for AI coding agents and the humans around them

Let Claude Code and Cursor use your secrets without ever seeing them

Your agent needs a real API key to run a command, so you paste it into the chat and from then on it lives in the transcript. With envmanager run the agent writes a placeholder, we fill in the real value the moment the command starts, and we scrub it out of the output again. The rest of your team gets one encrypted place for every .env, synced to Vercel, Railway, Render, Dokploy and Coolify.

Start 14-Day Free Trial, No Credit Card
$envmanager run --only STRIPE_KEY -- npm run seed
EnvManager Dashboard — manage environment variables across projects and environments
"Worked flawlessly integrating into Dokploy. Not all did."
Ben, runs production on a self-hosted Dokploy instance, imported 21 variables on day one

Add a secret once. That is the whole workflow.

Store the value, mark it as a secret, and every environment, teammate, and deploy target picks it up from there.

One click between development, staging, and production.
Every change keeps its history, so you can see what a value was before.

From scattered .env files to secure vault in 3 steps

1

Import your .env files

Paste or drag-and-drop your existing .env files. EnvManager encrypts every value with AES-256 on import.

2

Set roles and environments

Define who can access production vs staging. Invite your team with granular, per-environment permissions.

3

Pull it, run it, or sync it

envmanager pull writes your local .env, envmanager run lets an agent or script use a secret without seeing it, and sync targets push the same values to Vercel, Dokploy or wherever you deploy.

Security that doesn't slow you down

Every .env shared over Slack is a secret exposed, every key pasted into an agent chat is in a transcript for good, and every developer who leaves still has your production keys. We built EnvManager to fix all three, and we use it for our own projects every day.

Know exactly who changed what, and when

Every secret change is versioned with an immutable audit trail. Roll back a bad rotation instantly. Pass compliance audits without scrambling.

10:42
SJ
rotated STRIPE_KEY
10:45
AM
accessed production

Your secrets never leave the vault unencrypted

AES-256 encryption at rest via Supabase Vault. Secrets are decrypted only at the moment of access, by authorized users only.

Interns can't access production

Grant access per project and environment. Developers see staging, leads see production. Revoke instantly when someone leaves the team.

Dev
Admin

Your agent uses the key without ever reading it

You tell us which one or two variables the command needs, we inject them when the process starts, and anything the command prints comes back with those values replaced by ***. That stops the accidental leaks into chat, logs and commits, which is the everyday problem. It is not a sandbox though. Anything holding your CLI credential could still pull the value another way, so keep every run scoped with --only and the worst case stays small.

$ envmanager run --only DATABASE_URL -- npm run migrate

Connecting to ***

12 migrations applied

$ envmanager pull

Synced 24 variables to .env

New: Proxy Functions

Call Stripe from your static site without leaking keys

Static sites expose every API key in the browser. Proxy functions route those calls through EnvManager, injecting secrets server-side. No serverless function to write, no infrastructure to manage.

Pre-built templates for Stripe, Brevo, OpenAI, and more
Token auth, CORS protection, and rate limiting built in
Included with every plan: 25 proxy functions and 5,000 calls/month
Learn more about proxy functions
your-frontend.js

// No API key in your frontend code

const res = await fetch(proxyUrl, {'{'}

method: 'POST',

headers: {'{'} 'x-proxy-token': token {'}'},

body: JSON.stringify({'{'} to: email {'}'}),

{'}'})

// EnvManager injects BREVO_API_KEY server-side

// Your secret never reaches the browser

Connects to your existing stack

Sync secrets directly to GitHub, Vercel, Railway, Render, Dokploy, and Coolify. No copy-pasting between dashboards.

Vercel
Railway
Render
GitHub
Dokploy
Coolify
Dokploy and Coolify

Run your own PaaS? Your secrets finally get a home too.

If you deploy on Dokploy or Coolify, your environment variables live inside each application's settings page, and keeping twelve of those in sync by hand is how staging ends up with production keys. We treat both as proper sync targets, the same as Vercel. Connect your instance with an API token, pick the application, and every change you make here lands there on the next sync. Keys you removed here get removed on the platform as well.

Works with self-signed certificates and VPN-only instances
Scope a sync to one service so the api gets its keys and the worker gets its own
Same flat price, so a fleet of small apps doesn't cost extra
How the Dokploy and Coolify sync works
sync targets · production
Dokploy · api
synced 2 min ago
Dokploy · worker
synced 2 min ago
Coolify · frontend
synced 2 min ago
Vercel · marketing-site
synced 2 min ago
1 stale key removed from Dokploy · worker (OLD_QUEUE_URL)

The cost of doing nothing

Most secret leaks aren't from sophisticated attacks. They're from your team's daily workflow.

Keys pasted into an AI chat

The provider stores that transcript, it sits in your searchable history, and it usually ends up in a log somewhere as well. Rotating the key afterwards doesn't pull it back out of any of those places.

No offboarding

When a developer leaves, do you rotate every secret they had access to? With .env files, you can't even know which ones they saw.

Secrets in git history

Accidentally committed a key? Even after removing it, it lives in git history forever. Bots scan public repos in seconds.

48 founding spots left at $9 a month

Free for 14 days, no card. Paste your .env, and if you're not migrated and syncing in 30 minutes we do it with you on a call.