Secrets manager

A zero-knowledge secrets manager for developers

A secrets manager stores your API keys, tokens and credentials encrypted, with control over who reads them, rotation and audit. Koove adds what generalist tools don't: secrets only decrypt on cryptographically verified consumers — and not even we can read them.

Why .env is not a secrets manager

A .env file is plaintext on disk: it sneaks into commits, gets pasted into Slack, lives duplicated on every laptop, and has no rotation, no audit trail, no revocation. The moment you have a second developer or a deployment, .env is a leak waiting for a date.

AI coding assistants (Claude Code, Cursor, Copilot) multiplied the problem: the #1 security failure in AI-generated code is exposed secrets — hardcoded keys and .env files pushed to repos.

A secrets manager fixes this by centralizing encrypted values and serving them only to consumers that should read them, with every access logged.

How Koove works: encrypt locally, upload only the envelope

With Koove, a secret is encrypted ON YOUR MACHINE before it leaves it (envelope encryption: AES-256-GCM for the value, X25519 + HKDF to seal the key per recipient). The server stores ciphertext only — it holds no private keys, so it cannot read anything. That's real zero-knowledge, and it's verifiable: the primitives are open source.

Migrating takes one command: import your whole .env and every key ends up encrypted for your authorized consumers.

# Install the CLI (Node.js >= 22)
npm install -g @koove/secrets-cli

# Create your app: controller identity + BIP39 recovery code
koove app-init

# Store a secret (encrypted locally; only the envelope is uploaded)
koove set DATABASE_URL "postgres://..." --env prod

# Or migrate your entire .env at once
koove import .env --env prod

Only verified consumers decrypt

On the mobile edge, a device becomes a recipient only after passing real cryptographic attestation — Apple App Attest (verified end-to-end on a physical device) or Google Play Integrity — and local decryption is gated by biometrics. On backend and CI/CD, authorized consumers with their own identity.

The server decides WHICH public keys are eligible (attestation gates), but it never wraps or sees the data key. The writer encrypts directly for the authorized set.

Full lifecycle, with honest limits

Zero-downtime key rotation, per-device revocation with a cryptographic kill (strips the revoked device from every envelope), a 24-word BIP39 recovery code for the worst day, server-side anomaly detection, and canary tokens that turn a theft into a confirmed alert.

And the limit others won't tell you: no system can "un-deliver" a secret a device already decrypted and cached. For a total kill, you rotate the value. We say it in the CLI, in the docs, and here.

Koove or a generalist manager?

Your situationHonest recommendation
Your consumer is a mobile app (React Native/Expo)Koove — attestation + device-bound biometrics
The provider must NOT be able to read (contractual/regulatory)Koove — zero-knowledge by construction
You build with AI assistants and want zero secrets in the repoKoove — the AI drives the CLI directly
Hundreds of Kubernetes services with dynamic secretsVault or Infisical — no shame: compare for yourself
Your whole stack lives in one cloud and trusting it is fineYour cloud's native manager may be enough

Frequently asked questions

Can Koove read my secrets?

No — and it's not a promise, it's architecture: the server holds no private keys, only sealed envelopes. The encryption primitives (@koove/crypto) are open source so your security team can verify it.

What if I lose all my devices?

The 24-word BIP39 recovery code (shown exactly once when you create the app) decrypts your secrets. Lose your devices AND the code, and the secrets are unrecoverable — that's the price of real zero-knowledge, and we'd rather tell you.

Is it open source?

Open-core: everything running on YOUR side (primitives, CLI, mobile SDK) is open source, on npm and GitHub. The control plane is closed — and by design it never sees a plaintext secret.

How much does it cost?

There's a free developer plan; paid plans add advanced attestation, device lifecycle and the backend/CI tier. Current pricing is on the plans page.

Your first encrypted secret in under 10 minutes

Free account, no card. Or review the architecture first — we like that.