Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.krypthq.com/llms.txt

Use this file to discover all available pages before exploring further.

Krypt organizes secrets into projects, each with three fixed environments. This page explains how they work together.

Projects

A project in Krypt represents one application or service — your frontend app, your API server, your mobile backend, etc. Each project has:
  • Its own set of secrets (environment variables)
  • Its own team members and permissions
  • Three separate environments
Create projects from the Krypt dashboard or list your existing ones with:
krypt list

Environments

Every project has three fixed environments:
EnvironmentPurposeExample DATABASE_URL
developmentLocal dev workpostgres://localhost:5432/myapp_dev
stagingPre-production testingpostgres://staging-db.internal:5432/myapp
productionLive applicationpostgres://prod-db.internal:5432/myapp
The same secret keys exist across environments but hold different values. This mirrors how most teams deploy — the same app runs in multiple places with different configuration.

The .krypt file

When you run krypt init, it creates a .krypt file in your project directory:
{
  "project": "my-app",
  "environment": "development"
}
This tells the CLI which project and default environment to use when you run krypt push, krypt pull, or krypt run from that directory.
Add .krypt to your .gitignore. It contains your local binding and should not be committed.

Switching environments

Override the default environment with the --env flag on any command:
krypt pull --env staging
krypt push --env production
krypt run --env staging -- npm test
krypt diff --envA development --envB production
The --env flag is temporary — it doesn’t change your .krypt file. Your default remains whatever you set with krypt init.

Why three fixed environments?

We considered supporting custom environment names but kept it to three. Most teams follow the development → staging → production flow, and three covers that without adding configuration complexity. If you need a separate environment for a feature branch, use a separate project (e.g. my-app-feature-x).

Next steps