SDK & CLI Documentation
Encrypt secrets locally with the zero-knowledge CLI and decrypt them only on devices verified with attestation and biometrics. The server never sees a plaintext value.
1. Install the CLI (writer / controller)
The CLI encrypts secrets on your machine and manages the device lifecycle. The server only stores ciphertext.
# CLI + tooling controller (Node.js >= 22)
npm install -g @koove/secrets-cli2. Initialize the app and store a secret
# Crea la app: genera la identidad controladora (keyfile cifrado)
# y el código de recuperación (24 palabras BIP39, se muestra UNA vez)
koove app-init
# Guarda un secreto — se cifra en tu máquina y solo sube el sobre cifrado
koove set DATABASE_URL "postgres://..." --env prodImportant: the recovery code (24 words) is shown once and never stored. Save it: without it and without devices, secrets are unrecoverable.
3. Consume secrets from your mobile appAvailable on npm
App Attest (iOS) and Play Integrity (Android), verified end-to-end on physical devices: real attestation → server-gated registration → local decryption behind biometrics.
# SDK móvil (React Native / Expo)
npm install @koove/sdk expo-local-authentication expo-secure-storeimport { KooveClient } from '@koove/sdk';
const koove = new KooveClient({
apiUrl: 'https://koove.io/api',
appToken: process.env.KOOVE_APP_TOKEN,
});
// 1) El dispositivo se verifica con attestation (App Attest / Play Integrity)
await koove.registerDevice();
// 2) Descifra el secreto EN EL DISPOSITIVO tras la biometría.
// El valor en claro nunca sale del dispositivo verificado.
const dbUrl = await koove.getSecret('DATABASE_URL', { env: 'prod' });4. Lifecycle & kill-switch
Add, revoke and recover devices, and rotate keys — all with idempotent, audited commands.
# Aprobar un dispositivo nuevo (re-envuelve los secretos para él)
koove device-approve
# Revocar un dispositivo (kill criptográfico: lo saca de todos los sobres)
koove device-revoke <deviceId>
# Break-glass: descifrar con el código de recuperación
koove recover-show DATABASE_URL --env prod
# Rotar la identidad controladora (sin downtime)
koove controller-rotateHonest note: revoking removes the device from the recipient set, but a secret already downloaded and cached is not un-delivered. For a total kill, rotate the secret value.
Open source and auditable
The client SDK and the encryption primitives (@koove/crypto) are open source: the zero-knowledge promise can be verified, not just believed.
View on GitHub →