seekrit
▓▒░ zero-knowledge · end-to-end encrypted ░▒▓

Secrets your server
can never read.

seekrit is an end-to-end encrypted secrets manager for teams, machines, and AI agents. Keys are generated and used entirely on your side, so the backend — running on Cloudflare's global edge — only ever holds ciphertext. One command injects the right secrets everywhere your code runs.

seekrit — zsh
$ seekrit run -- ./start-server
DATABASE_URL=██████████████████████████
STRIPE_KEY=█████████████████
decrypted 2 secrets · acme/storefront/production
server listening on :3000
▓▒░ the console

Every secret, every environment, one grid

The dashboard is the human side of the same key hierarchy: one row per secret name, one column per environment. Values arrive as ciphertext and are decrypted in your tab when you reveal them — the environment key is unwrapped locally with your private key, so the server hands over nothing it could read itself.

app.seekrit.dev/northwind/checkout-api
An application page in the seekrit console: a matrix with one row per secret name and one column per environment, values revealed after unlocking the keyring
An environment with no service token yet is flagged in its header, and secrets composed in from a group are listed separately from the application's own.
Take a tour of the dashboard →
▓▒░ built for agents · MCP

Give an AI agent secrets, not your secrets

Agents build, deploy, and run your code — which means they need real credentials. seekrit hands them the access without handing over the values, through a hosted MCP server an agent can self-register with and connect to in a single request — no human, no install.

# self-register, then point any MCP client at the hosted server
$ curl -sX POST https://mcp.seekrit.dev/signup -d '{"orgName":"Acme Storefront","orgSlug":"acme-storefront"}'
→ connect: https://mcp.seekrit.dev/mcp

A hosted MCP server, no install

seekrit runs an MCP server at mcp.seekrit.dev. An agent with no account POSTs /signup, gets a machine credential and a fresh org, and connects with HTTP Basic — no human, no browser, no toolchain.

One credential, two servers

The hosted server provisions and reads structure; a local server (npx -y @seekrit/mcp) does anything that touches a value. The same credential drives both, and they share one org — so they compose.

Secrets never touch the transcript

run_command injects decrypted secrets into a child process and returns only its output — and the crypto runs on the agent's machine, so zero-knowledge holds for agents too. The hosted server can never decrypt.

Connect an agent to the MCP server →

Built around one rule

01

Zero-knowledge

Secrets are encrypted in your browser or CLI before they ever leave the machine. The server stores ciphertext and nothing else — a full database dump reveals no secret values.

02

One key per environment

Every environment has its own AES-256 data key, wrapped individually to each member and service token. Grant or revoke access without touching a deployment.

03

Everywhere your app runs

Local dev, Docker builds, CI pipelines, Kubernetes, and ephemeral AI-agent sandboxes — one command injects the right environment, decrypted at the edge of your control.

04

Audited by default

Every read, write, grant, and revocation lands in an append-only trail with actor attribution. Nothing happens to a secret without a record.

How it works

Envelope encryption end to end. The passphrase, private keys, and plaintext secrets never reach the API.

  1. 01

    Create in the browser

    Generate a keypair protected by your passphrase, then spin up an org, app, and environment. The environment's data key is born in your tab and wrapped to your public key.

  2. 02

    Encrypt client-side

    Add secrets in the web dashboard. Each value is encrypted with the environment key locally; only the ciphertext is uploaded.

  3. 03

    Decrypt anywhere

    The CLI, service tokens, and AI agents unwrap the same key with their own private key — in CI, a container, or a sandbox — and hand plaintext only to your process.

▓▒░ any scale

Globally distributed, zero-knowledge, at any scale

Because encryption is the client's job, the server is stateless ciphertext storage — the easiest thing in the world to distribute. seekrit runs on Cloudflare's edge, so it scales from a single laptop to a fleet of agents with no infrastructure of your own.

Runs on the global edge

The API is a Cloudflare Worker backed by D1, served from Cloudflare's network worldwide. There is no region to pick and no cluster to run — it's close to your workloads by default.

Reads are cached at the edge

Every container, CI job, and agent resolves its secrets on boot. Encrypted values and per-principal wrapped keys are cached at the edge — keyed per caller, so no two tenants ever share an entry.

From one dev to tens of thousands

A single org can drive tens of thousands of resolves a day without breaking a sweat. Any change purges only the affected environments, so caches stay correct without going stale.

Made for every runtime

Application ENVLocal developmentDocker builds & deploysCI pipelinesKubernetesAI agent sandboxesCLI on any machine

Encrypt something secret.

Spin up the console, or wire the CLI into your pipeline in a few commands.