Docs
Conceptsince 1.0.0-alpha.3

Glossary

Every word penv and its docs use, with the plain phrase first and the precise term beside it.

Read the left column out loud to a colleague. Read the middle column to a security questionnaire. The rows are ordered by the term in the middle.

The words

Say thisThe termWhat it means
What gets mixed into the seal so a value only opens where it belongsAADThe extra data bound into an encrypted value. penv uses the value's full address
Encrypted, each value under its own keyAES-256-GCMThe cipher every stored value is sealed with
Where a value livesaddress{org}/{project}/{environment}, plus the key's own name
A run your coding agent is drivingagent sessionA session penv detected as an agent, which turns on masking and JSON output
A person's yes before a value printsapprovalThe request penv reveal creates under an agent, answered in the console within 10 minutes
The record of who did whataudit logThe append-only list of every action in your workspace
How long we keep the record of who did whataudit log retention7 days on Free, 90 on Pro, contractual on Enterprise
A key the server can check a signature againstbound keypairHow a plain server proves who it is when it can prove nothing else
A key name your build tool copies into the browserbundler prefixNEXT_PUBLIC_, VITE_, PUBLIC_, EXPO_PUBLIC_, NUXT_PUBLIC_ or REACT_APP_. penv treats such a key as public
Your own encryption keyBYOKAn Enterprise workspace pointing penv at a key it owns in AWS, Google, Azure or Vault
The encrypted copy on your laptopcacheWhat makes a warm penv run start in milliseconds. Fresh for 60 seconds in development
What penv promises, in its own wordsclaimThe sentence penv guard --check prints. It differs between local mode and cloud mode
The cloud holds the valuescloud modeYour schema names a project and you hold a credential
What proves who you arecredentialpcu_ for a person, pck_ for a machine
A line above a key that says something about itdecorator@type=url, @rotate=90d and the rest of the vocabulary
Signing in by approving a code in your browserdevice-code loginWhat penv login does. No password reaches the command line
Signed data agreementDPAThe data processing agreement your legal team asks for
A key in your .env that your schema never heard ofdriftWhat penv check reports so the two files stay in step
Short-lived valuesdynamic parameterA key with no stored value, minted on request and given a lease
The marker that says the cloud mints this one@dynamicFromThe schema decorator naming the engine behind a short-lived value
The shared vocabulary the schema is written in@env-specvarlock's decorator specification, which penv follows word for word
Encrypted, each value under its own keyenvelope encryptionA fresh key per value, itself encrypted by your workspace's key
Which copy of a value you getenvironmentdevelopment, staging, production, or any name you make in the console
The keys and settings your app needsenvironment variablesThe names your code already reads, such as DATABASE_URL
The tag that says whether anything changedETagWhat penv run sends so an unchanged environment costs one small request
The number a command leaves behindexit code0 ok, 1 error, 2 auth, 3 validation, 4 confirmation required, 5 no credential, 6 environment refused
A counter that catches a copied keygeneration counterAdvanced on every bound-keypair login, so a clone locks out both machines
The rules that keep your agent out of .envguardWhat penv guard writes into each harness's own config
The tool your coding agent runs insideharnessClaude Code, Codex, Cursor, Amp, Copilot CLI, Gemini, Cline or Windsurf
The thing a harness calls before it does somethinghookpenv hook claude-code and its siblings. The hook is the penv binary itself
Where your workspace's master key is heldKMSThe key management service that wraps every per-value key
The typed file penv writes for your languagelanguage targetA folder holding a template and a target.toml. ts and py ship built in
How long a minted credential lastsleaseThe expiry attached to a short-lived value, recorded without the credential itself
Values in a file on your disklocal modeNo @penv= header, or no credential yet. development is the only environment
Your CI or server logs in like a person doesmachine identityAn identity bound to one project and environment, holding a role, taking no seat
The list of every command penv hasmanifestWhat penv help --json prints. The docs, the completions and the agent skill all read it
Values scrubbed out of your program's outputmaskingOn by default under an agent. Covers base64, hex, percent-encoded and JSON-escaped forms
No stored key to stealOIDC token exchangeYour pipeline's own signed token traded for a 15 minute penv credential
The one-time secret that binds a serverpce_What penv machine enroll takes. It can never be used as a credential
A machine's credentialpck_Issued in the console, or minted by an exchange with 15 minutes on it
A person's credentialpcu_Left in your keychain by penv login, good for 30 days from last use
The environment to readPENV_ENVRead when --env says nothing
The machine credential a pipeline hands penvPENV_TOKENTakes precedence over the keychain
Person, or the machineprincipalWhoever a request is acting as. The audit entry calls it the actor
One app or serviceprojectThe middle part of an address, named by the @penv= header
Which environment reads a value, and who may write itroleGranted in the console at workspace, project or environment level
Replacing a value on a schedulerotation@rotate=90d in the schema, and the set-new-version form in the console
Sign in with your company loginSAMLThe protocol behind that sign-in
The one file you commitschema.env.schema. Key names, types, and what a good value looks like
Your identity provider adds and removes people for youSCIMThe directory sync that provisions and deprovisions members
Only what that job needsscopeThe project and environment a credential or a role is limited to
One safe place for the keys and settings your apps needsecret storeWhat penv.cloud is
A value penv hides in outputsensitiveInferred true unless the key is bundler-prefixed or marked @sensitive=false
Which run of your agent askedsession idStamped on every cloud request and onto the audit entry
Uptime promiseSLAThe availability commitment in an Enterprise contract
Sign in with your company loginSSOSingle sign-on through your own identity provider
Confirm it is youstep-upThe second check the console asks for before a sensitive action
WorkspacetenantYour company or team. The billing and membership boundary
The rule that says a token is a given machinetrustAn issuer, an audience and one exact subject. It holds no secret
Your CI or server logs in like a person doesworkload identityThe same idea as a machine identity, in other vendors' words

Words you may meet that penv no longer uses

The command line was rewritten in Rust for 1.0 and these went with the old one. They appear in older posts and in other tools.

The old wordWhat replaced it
penv.config.ts, defineConfigNothing. There is no config file, only .env.schema
provider, filesystem providerNothing. penv reads .env in local mode and the cloud in cloud mode
the four-scope cascade, .local filesOne environment per run, chosen by --env, PENV_ENV or the default
.enc files, the local envelope, PENV_KEY_*Values live in the cloud, and the local copy is sealed with a key in your keychain
$PENV_HOME, .penv/state.penv/targets for remembered answers, and the platform cache directory
penv doctorpenv check
penv rotatepenv set, plus @rotate in the schema
PENV_DELIVERY, PENV_CLOUD_TOKENPENV_TOKEN
materialize a parameterwrite a .env with penv pull

Next: back to how penv works.